ソフトウェア

脚光は浴びないが重要なオープンソースソフトウェアを維持する開発者に報酬を分配する「OpenFare」とは?


世の中には多種多様なオープンソースソフトウェアやライブラリが存在し、その多くが無償のボランティアによって開発・維持されています。オープンソースソフトウェアは社会に多大な影響を及ぼす一方で、開発者に対する利益の還元がないことはさまざまな問題を引き起こしています。この問題を解決するため、オープンソースソフトウェアの開発者に対して適切な報酬を分配するためのツール「OpenFare」が公開されました。

GitHub - openfare/openfare: Micropayment funded software.
https://github.com/openfare/openfare

Funding the Next Million Public Software Contributors | HackerNoon
https://hackernoon.com/funding-the-next-million-open-source-contributors

現代では国際的な大企業もオープンソースのソフトウェアやライブラリを製品に使用しており、「オープンソースソフトウェアの開発者は10兆円以上の価値をもたらしている」という推定もあります。その一方で、オープンソースの開発現場の多くは持続可能な収入を得られていないと指摘されており、大企業がオープンソースソフトウェアを利用して多額の利益を得ているにもかかわらず、オープンソースソフトウェアの保守者(メンテナ)や貢献者(コントリビューター)は相応の対価を受け取っていません。

Googleで働くソフトウェアエンジニアのフィリッポ・バルソルダ氏は、Javaのログ出力ライブラリであるApache Log4jでゼロデイ脆弱性の「CVE-2021-44228」が発見された際、パッチを当てたメンテナはGitHub上でわずか3人しかいなかったと指摘。少数のボランティアが世界中に影響を与えた脆弱性の改善に取り組んだにもかかわらず、メンテナに報酬が支払われていないことは問題だと主張しています。


もちろん、全てのコントリビューターやメンテナーが報酬を期待しているわけではありません。しかし、オープンソースソフトウェアで重要な役割を果たす開発者が燃え尽き症候群になってしまったり、嫌気が差して開発から離れてしまったりすると、世の中に甚大な影響が及ぶ可能性もあります。

実際に、2022年1月には人気オープンソースライブラリの「colors.js」「faker.js」の開発者であるMarak氏が、意図的に破損したバージョンをリリースしたことが報じられました。Marak氏がこのような行動を起こした理由は、オープンソースソフトウェアに金銭的な支援を行わず、メリットだけを享受する大企業への不満があったとみられています。

大企業は無償利用せず金銭的支援を行えと警告したのに改めないので作者がついに激怒、毎週2000万回以上ダウンロードされるcolors.jsとfaker.jsを破壊し使用不能に - GIGAZINE


ソフトウェア開発者のrndhouse氏は、開発者自らが寄付を募ったり企業とスポンサーシップを結ぼうとしたりする試みは失敗に終わってきたとして、開発者に報酬を分配するためのツール「OpenFare」をGitHub上で公開しています。rndhouse氏はGitHubページで、「目標は次なる100万人のソフトウェアコンテンツクリエイターに資金を提供することです」と述べており、脚光を浴びにくいメンテナにも報酬を分配する仕組みを構築できると主張しています。

OpenFareは支援者や購入者の支払い方法を定義する分散型プロトコルであり、あらゆる規模のオープンソースまたは商用ソフトウェアが資金調達するために使用可能とのこと。システムは「OpenFareライセンス」「コードで定義された支払い計画書」「何千ものソフトウェア依存関係全体にわたる支払い管理ツール」からなっています。OpenFareライセンスはMITライセンスに類似していますが、OpenFareライセンスでは条件を満たした一部ユーザーを「商用ユーザー」に設定し、コードで定義した支払いプランの対象にすることができるとのこと。開発者はOpenFareツールを使ってプロジェクトの最上位ディレクトリに専用ファイルを生成することで、細かい支払方法や膨大なソフトウェアの依存関係全体にわたる支払い義務を管理可能だそうです。

rndhouse氏は、「OpenFareを使用すると支払い計画はコードで定義されます。これは商用ユーザーにとって、数千のソフトウェア依存関係における支払い義務をプログラムで管理できることを意味しており、開発者にとっては、コピー&ペーストで設定できることを意味します」「企業が年間1ドル(約115円)の使用料を支払う必要があるソフトウェアライブラリを考えてみましょう。そのライブラリは、商業プロジェクトのソフトウェアの依存関係ツリーの奥深くに埋め込まれています。OpenFareはツリー全体を解析して支払い義務を見つけ、ライブラリで定義された支払いプランに基づいて、小額の支払いができるのです」と述べています。なお、GitHubのページ上に挙げられた例では、送金サービスのPayPalやライトニングネットワークが支払い方法に指定されていました。


OpenFareは記事作成時点ではプロジェクトの初期段階であり、rndhouse氏はHacker NewsやRedditのスレッドでフィードバックを募っています。ユーザーから寄せられた「現時点では支払いを定義する以外に何ができるのか明らかではない」という指摘に対し、rndhouse氏は「私の目的はアイデアの周囲にコミュニティを構築し、早期にフィードバックを得ることです。確かに多くの問題があるのは明らかです。たとえば、資金分配に必要なインフラを効果的にアウトソーシングするような決済ポータルは今のところ共有していません」と述べています。

FOSS donations which reach the roots | Hacker News
https://news.ycombinator.com/item?id=29909068

OpenFare: Decentralized payment plans for source available software. : programming
https://www.reddit.com/r/programming/comments/rioihe/openfare_decentralized_payment_plans_for_source/

OpenFareの取り組みに対しては、「問題は『オープンソースの開発者に報酬を分配する適切なメカニズムがないこと』ではなく、『誰もオープンソースの開発者に報酬を支払おうとしないこと』であり、そもそも解決する問題を間違えている」といった指摘もあります。これに対してrndhouse氏は、OpenFareの目的はあくまで開発者が資金を受け取るメカニズムの整備であり、寄付を募ることは別の課題だと回答しています。その上で、YouTuberやゲーム配信者など多くのコンテンツクリエイターが報酬を受け取っている現代では、オープンソースのソフトウェアエンジニアが自分の分け前を求める余地があると主張しています。

他にも、コミュニティ上では「ユーザーが支払い義務を怠った時に検出する方法はあるのか?」「支払義務を回避するユーザーに法的な責任を負わせられるのか?」「継続的にプロジェクトの維持に協力するメンテナや、たまにしか貢献していないが重要な部分を担ったコントリビューター、過去に一度だけバグを修正したコントリビューターなどに対する分配をどうやって調整するのか?」といったトピックについて議論されていました。

この記事のタイトルとURLをコピーする

・関連記事
オープンソースソフトウェアの保守を職業として成立させるために必要なアイデアとは? - GIGAZINE

オープンソースソフトウェアの開発者は10兆円以上の価値をもたらしているという指摘 - GIGAZINE

「オープンソースの開発現場の多くは持続可能なほどの収入を得られていない」という指摘 - GIGAZINE

JavaのLog4jライブラリで発見された脆弱性「Log4Shell(CVE-2021-44228)」はなぜ世界中に大きな影響を与えるのか? - GIGAZINE

Log4jライブラリのゼロデイ脆弱性「Log4Shell」で脆弱なサーバーを標的にした攻撃が続発中、仮想通貨マイナーのインストール・ボットネット拡散・データ盗難などやりたい放題 - GIGAZINE

Java・Log4jライブラリの脆弱性「Log4Shell」に対応する方法などをまとめたチートシートが公開中、影響のあるプロダクトも一目で明らかに - GIGAZINE

JavaのLog4jライブラリで「Log4Shell」に加えて新たな脆弱性「CVE-2021-45046」が発覚、アップデートで対応可能 - GIGAZINE

大企業は無償利用せず金銭的支援を行えと警告したのに改めないので作者がついに激怒、毎週2000万回以上ダウンロードされるcolors.jsとfaker.jsを破壊し使用不能に - GIGAZINE

in ソフトウェア, Posted by log1h_ik

You can read the machine translated English article here.