執筆:Juan Galt
翻訳:AididiaoJP、Foresight News
オープンソースとクローズドソースの争いは、ビットコイン、ひいては暗号資産業界全体で10年以上続いている。ビットコイン支持者は長年、グローバル金融インフラは公開の形で構築されなければならず、透明性と監査可能性は実際の資金を扱う以上、妥協できない原則だと主張してきた。しかし、アプリケーション層や伝統的金融は多くの場合、この主張を受け入れない。
最近起きたColdcardハードウェアウォレットの盗難事件は、「オープンソース」という言葉の本当の意味を改めて大きな注目の的にした。ユーザーの損失は1億ドル超のビットコイン(1500BTC以上)に上る。この事件は、筋金入りのビットコインユーザーでさえ、オープンソースソフトウェア開発の哲学やその機能不全が起きる場面についての理解がかなり限られているという気まずい現実を露呈した。
原則と用語
オープンソース関連の用語は単純ではない。フリー・オープンソースソフトウェア(FOSS)とフリー/オープンソースソフトウェア(FLOSS)は、正式なユーザーの自由の定義を満たすソフトウェアを指す。
フリーソフトウェア財団(FSF)は、4つの基本的自由によって「フリーソフトウェア」を定義している。
- 自由0:望むままに、あらゆる目的でプログラムを実行する。
- 自由1:プログラムがどのように動作するかを研究し、必要に応じて改変する(ソースコードを入手できることが前提)。
- 自由2:他者を助けるためにコピーを再配布する。
- 自由3:改良したバージョンを他者に配布する(こちらもソースコードが前提となる)。
FSFは、「free」が無料ではなく自由を意味すると強調している。オープンソース推進者がよく口にする決まり文句は、「『free speech(言論の自由)』の『free』であって、『free beer(無料のビール)』ではない」というものだ。
Open Source Initiative(OSI)のオープンソース定義は、さらに10項目の実践基準を挙げている。それには、ロイヤルティの支払いなしに自由に再配布できること、ソースコードが改変に適した形で提供されること、派生作品の作成と配布が認められること、いかなる個人・集団・利用分野(商業利用を含む)も差別しないことなどが含まれる。この10項目の基準を完全に満たすライセンスだけが、正式に「オープンソース」と呼ばれることができる。
「ソースコード閲覧可」(source available)や「ソースコード可視」は別物だ。コードは公開されて読めるが、ライセンスが商業販売権を制限している場合がある。Coldcardのファームウェアはその一例で、MITライセンスを採用しながら追加のライセンス条件を付けている。この条項は、ソフトウェアの「販売」を明示的に禁止しており、その定義は、料金やその他の対価と引き換えにソフトウェアを第三者へ提供し、製品またはサービスの価値が完全にまたは実質的に当該ソフトウェア自体に由来する場合とされている。つまり、Coldcardのファームウェアは商業用途に使えない。
ライセンス条件には極めて率直に「これはオープンソースか?違う」と書かれている。同条項を加えると、ソフトウェアはオープンソース定義の多くの要素を満たすものの、すべては満たさないため、オープンソースと呼ぶべきではないと指摘している。
これらの違いは重要だ。ソースコードを公開することは、検査される可能性を生み出すだけであり、自由ソフトウェア定義やオープンソース定義にあるすべての権利を実際に付与して初めてFOSSとなる。「オープンソース」のバッジを付けること自体が目的ではない。批評家は、オープンソースにおける商業的自由こそが、第三者がコードをテスト・レビューするインセンティブを解き放つのであり、それがなければそうしたインセンティブはそもそも存在しないかもしれないと主張する。
4つの自由はオープンソースの哲学的中核だ。しかし実際には、それは「コードを実際にレビューする十分な動機を持った人々が十分に存在する」という経済的仮定の上に成り立っている。この仮定が崩れると、システムは古典的な「コモンズの悲劇」を迎える。共有資源は個人の短期的な利己心によって過剰に利用されたり軽視されたりし、最終的に劣化していく。誰もが少し多く取ろう(あるいは少しだけ貢献を減らそう)とする動機を持つため、資源全体が損なわれる。インセンティブが一致するときもあれば、まったく一致しないときもある。
あるビットコイン開発者はさらに直接的だ。「テストにおいてオープンソースコードの2種類のテストダブルであるmocksとstubsを使うことは無責任で近視眼的だ。オープンソースコードが安全とみなされるのは、誰でもそれを検証できるからだ。自分が本当に依存している機能に対して最低限のテストすら行おうとしないなら、あなたは寄生虫として振る舞っている。」
したがって、オープンソースはそれ自体が自動的に安全性を生み出すわけではなく、検証の可能性を生み出すだけだ。検証が実際に行われるかどうかは、インセンティブ、スキル、注意力に左右される。歴史的に、優れたFOSSは脆弱性が発見・開示・修正されるにつれて徐々に堅牢になり、他者が構築を行うための確かな基盤となる。Linuxカーネルはその典型例で、世界中のサーバー、クラウドインフラ、Androidデバイス、組み込みシステムの大多数を動かしており、史上最も広く展開されているソフトウェアの1つだ。
Bitcoin Core:オープンソースの現実的な手本
ビットコインのリファレンス実装であるBitcoin Coreは、大規模な純粋オープンソースが現実に機能しているもう1つの古典的事例だ。MITライセンスを採用し、開発プロセスは設計上公開されている。
誰でもプルリクエスト(マージリクエスト)を提出できる。コードレビューは主要なフィルタリング機構であり、新人に推奨される導入経路でもある。レビュアーは正式な用語を使う:Concept ACK(目的に同意)、Approach ACK(目的と方法に同意)、具体的なコミットハッシュ付きACK(テスト済みでマージを承認)、またはNACK(不同意。技術的理由の添付が必要)などだ。
メンテナーはマージ前に貢献者のコンセンサスと技術的な優劣を比較検討する。コンセンサスに影響する重要変更はより高いハードルがあり、通常はビットコイン改善提案(BIP)が必要で、bitcoin-devメーリングリストやIRCで数年にわたり十分な議論が行われる。
ここには特権階級としての「Bitcoin Core開発者」はいない。信頼は長期間にわたって能力を示すことで獲得される。メンテナーが存在するのは実際上の必要からにすぎず、マージされるコードの監査、リリース管理、基本的な確認を担う。しかし、生み出されるのは純粋なオープンソースコードであり、誰でもそれを検査、コンパイル、フォーク、実行できる。Bitcoin Coreにコードがマージされた人は、通常Bitcoin Core貢献者と呼ばれる。
長年オープンソースでビットコイン開発に携わるCalleは最近こうまとめた。「Coreが影で不透明に動いている組織のようなものだと思っている人たちは、自分で一度見に行くことすらしない怠け者か、よほど鈍いかのどちらかだ。彼らがやっていることはすべて公開されており、誰でも参加できる。最終的に生み出されるのは純粋なオープンソースコードだ。」
こうした活動の資金は主にBrink、OpenSats、Spiralなどの非営利団体や助成の仕組みから来ており、従来型企業のプロダクトロードマップからではない。技術的な議論は公開のbitcoin-devメーリングリストやLibera Chatの#bitcoin-core-dev IRCチャンネルで行われ、提案はプルリクエストの提出前も後も厳しく精査される。GitHub上のissueやプルリクエストには、10年に及ぶコメント履歴が残っていることも珍しくない。その結果生まれるのは、速度や商業機能の反復速度よりも、正確性と監査可能性を優先する開発文化だ。
オープンソースの経済学
オープンソースやソースコード閲覧可のソフトウェアのユーザーの大半は、自分でコードを読むことは決してない。彼らは「誰かがレビューしている」という前提に依存している。Coldcardのケースでは、重大なエントロピー欠陥が公開ファームウェアの中に約5年間潜んでいたが、それが悪用され、その結果ようやく発見された。
このバグは2021年の大規模な書き換えで導入された。その書き換えでは、Trezor由来の残存GPLコードも削除された。Trezorは最初のハードウェアウォレットで、現在はセルフカストディ業界で第2位だ。問題の中心にあるライブラリはlibnguと呼ばれ、trezor-cryptoを置き換えたが、外部レビューは極めて少なく、本番環境で5年以上使用された後でもstarは7、forkは20未満だった。対照的に、trezor-cryptoはstar 512、fork 212、より新しいtrezor-firmwareはfork 793、star 1800となっている。ソースコード閲覧可というだけでは、本当に重要なレビューは生まれなかった。批評家は、資金力と能力のある営利企業が使用を制限され、商業的インセンティブを欠いたことが原因だと考える。注:StarとForkは、GitHubでプロジェクトの人気と活発さを測る2つの中核指標で、Starは「お気に入り」、Forkは「リポジトリの複製」を意味する。
ビットコイン分野の利害は、ほとんどのソフトウェア分野よりはるかに大きい。重大な欠陥は公開市場で直接、流動性のある資金に変換され得る。Coldcardで盗まれた資金の前半分は依然として少数のアドレスに置かれており、ハッカーはいつか捕まるかもしれないが、後続の模倣者はより慎重で、さらに多くのビットコインを盗んで資金洗浄に成功した者もいる(Galaxy Researchのデータによれば、総損失は少なくとも1700BTCに達しているという)。ビットコインの検閲耐性と取引の不可逆性は、攻撃者に強力なインセンティブを与えると同時に、ダーウィン的な選別をもたらす。つまり、質の高いレビューを継続的に引き付け、ユーザーや企業が真剣に防御策を講じるプロジェクトだけが、長期的に生き残る可能性を持つ。
ライセンスの選択は、こうしたインセンティブを形作る。純粋なオープンソースライセンスは、潜在的なレビュアーとフォークのプールを最大化する。一方、制限付きの「ソースコード閲覧可」ライセンスは商業的な「ただ乗り」を減らせるものの、合法的権利と経済的動機の両方を持って深く注意を注ぐ人々の層を狭めてしまう。その結果、コードレビューの重荷は再び企業自身にのしかかり、ある意味ではオープンソースではなくクローズドソースに近づく。
AIはオープンソースとクローズドソースの開発をどう変えるか
人工知能(AI)は、オープンソースとクローズドソースのバランスを変えつつある。
Coldcard事件の後、CalleやAnchorWatchのRob Hamiltonなどの開発者が主導し、OpenSatsが支援するボランティアプロジェクト「Bitcoin Red Team」は、最先端のAIモデルを使って数百のオープンソースのビットコインコードベースをスキャンした。集中期間中、チームは数千件の所見を提出し、そのうち数十件が重大または高深刻度と判定され、数百のプロジェクトに及んだ。責任ある開示はまずメンテナーに行われ、その後公開された。これは、体系的なAI支援レビューが、従来の人間チームではこれまで到達が難しかった規模と速度で脆弱性を発見できることを示している。
注目すべきは、Bitcoin Red Teamが中国のオープンウェイトモデルはクローズドな米国モデルよりはるかに信頼できることを発見したことだ。ネットワーク権限と最上位のアクセス権を持つ米国モデルでさえ、Bitcoin Red Teamの問い合わせへの回答を拒否し、米国の開発者を残念がらせた。
一方で、AIが生成するコードの洪水は、FOSSメンテナーに新たな「サービス拒否」の圧力をもたらしている。AIの出力をレビューすることは、それを生成するよりも時間がかかることが多い。ビットコイン以外の一部のオープンソースプロジェクトは、基本的な運用を維持するためだけに、既にイシュートラッカーを制限したり、AI由来のコントリビューションを拒否する厳格なルールを定めたりし始めている。
クローズドソース側では、従来の「隠蔽によるセキュリティ」の優位性が侵食されつつある。現代のAIモデルは、非常に高速でコードを読み取り、難読化を解除し、エンドポイントを探索し、コードを推論することができる。オープンソースとクローズドソースの実際の違いは、今や主に、公開されていないバックエンドコードだけになっている。クローズドソースコードは最終的に、専門的な監査の質、パッチ展開の速度、そして権限を持つ人々が継続的に真剣なレビューを行うことを可能にするインセンティブ構造に依存するしかない。
ビットコインとより広範な暗号資産業界は、フリー・オープンソースソフトウェアに異例の圧力をかけている。現実の通貨価値、敵対的経済、そして現在のAIによる大規模分析は、ソフトウェアモデルを絶えず進化させている。現代社会を支えるインフラにとって、デジタル以前のアナログシステムへ戻ることは、ほとんど選択肢にはならない。十分に監査されたプロジェクトだけが、AI支援のハッカーとデジタル優先の金融という重圧の下で生き残る可能性がある。




