ビットコインはGitHubにどれくらい依存しているのか?
今週の一大ニュースとして、Tornado Cashというイーサリアム上のミキサーのコントラクトアドレスがOFAC規制(制裁)の対象となりました。OFAC規制とはマネロンやテロ資金供与対策のために米国財務省が定めるルールです。今回はTornado Cashの各プールのアドレスがSDNリストに追加されたことにより、米国内の企業や個人がTornado Cash由来の資金と取引することを禁じられたとの解釈が広まっています。(コントラクトアドレスが制裁対象になるのは初のようなので、どの解釈が正しいのか、この規制が認められるのかなど、今後法的な整理がされていくのでしょう)
本稿の読者はほとんどがご存知かと思いますが、ミキサーとはオンチェーンで追跡しやすい資金の流れを追いにくくするためのサービスで、プライバシーを目的に利用されます。ハッキング等で流出した資金の多くもミキサーを利用するため犯罪利用が目立っていますが、ある意味その効果性を証明しているとも言えるでしょう。
これに関連して、早速様々な事業者が制裁で求められていること以上の過剰な自主規制を始めました。フルノードを持たないユーザー向けにウォレットなどから利用されるAPI (RPC)を運営するInfuraやAlchemyがTornado Cash関連のリクエストをブロックしたり、dydxという"分散型"取引所(※注文機能などが中央集権的に運営されているので事実上は分散していません)が過去にTornado Cashを利用した可能性がありそうなユーザーを全員一律でBANしたりということの他に目立ったのは、GitHubがTornado Cashのリポジトリ及びコントリビューターのアカウントをすべて削除したことでした。現時点ではコントリビューターのアカウントを含め復旧されておらず、声明も発表されていません。また、制裁で求められている行動ではないため、界隈のプロジェクトについてGitHubの持つ影響力に対して警戒感が強まっています。驚いていないのは過去にこれまた自主規制で突然アカウントを閉鎖されたイラン人開発者などでしょうか。そこで、bitcoinのGitHubリポジトリが削除されたらどうなるのか、他の手段は何が用意されているのかなどを調べてみました。
GITHUBとGIT
まずGitHubとgitの関係性についてです。gitは開発者が使うバージョン管理ソフトウェアで、コードを追加したり書き換えたり、他所で編集したものを同期するときに使います。GitHubはgitにチームでの開発やコードの公開、プロジェクトマネジメントに便利な機能などを加えたサービスです。bitcoinはサトシが公開した当初はSourceforgeにアップされたただの圧縮されたソースコードでしたが、その後開発の利便性のためにsvnリポジトリとなり(svnはgitとはまた異なるバージョン管理ソフトウェア)、2011年からはgitリポジトリとなりGitHubでホストされています。そのおかげで開発やバグ報告などが円滑に行われてきました。かなり昔の話ではありますが、このように開発者が集うリポジトリの場所や管理方法は過去にも変わっているので、たとえばGitHubのリポジトリが消えたり乗っ取られたとしても、開発者たちは別のところにあるリポジトリで開発を続けるでしょう。少なくともGitHubがMicrosoftに買収された2018年にはbitcoinリポジトリのGitHub中心の運用をやめるべきという意見が出ていました。おそらくそのずっと前からも出ていたんじゃないかと思います。
https://twitter.com/orionwl/status/1003549916462047232
誤解されやすいですが、あくまでGitHubのリポジトリはツールであり、「ビットコインの定義」ではないことに注意が必要です。
イシュー、プルリク、コミットアクセスはどうなる?
さて、開発の中心が他所に移ったとしても混乱が起こらないわけはありません。GitHubが提供するイシュー機能、プルリク機能などには過去の議論や報告、意見などの情報資産が蓄積しており、これらが失われることは大きな損失となります。果たしてスクレイピングするなどしてバックアップしている人はいるのでしょうか。(bitcoin関連に限らずGitHubをスクレイピングしているサイトは無数にあるので、そういうところから取得することもできそうですが)また、コードをBitcoin Coreのリポジトリにマージする権限は混乱を避けるため数人のメンテナに限っていますが、この権限というのもGitHubの機能なので引き継ぎ先でどのように運用するかは課題となります。ただ、彼らのPGP鍵は引き継げるので、大きな問題とはならないでしょう。
ちなみに、このメンテナを指して「この数人がBitcoin Coreをコントロールしている!」というツッコミが入ることがあります。繰り返しになりますが、Bitcoin Coreが正統なのではなく、あくまで開発者が集まっているだけなので、もしメンテナが検閲や横暴を働いたら開発者は他所へと移ってしまうでしょう。
どこでコードを手に入れる?どう開発を進める?
今でもビットコインのコードは様々な人が独自にホスティングしているgitリポジトリなどで入手可能です。なにせ、GitHub上のリポジトリの状態をミラーリングするのは簡単で、それを公開するだけで良いからです。また、先程述べたようにPGP鍵の検証で変なコミットが追加されていないことも確認できます。ただ、GitHubなどの便利サービスに頼れないとなると、必然的に誰かがリポジトリをホストすることになるのではないかと思いますが、bitcoin.orgのようにウェブサイトの管理者をどうするかとか、自称サトシに訴訟されたらどうなるかなど、様々な問題が起こるでしょう。GitHubに任せていられた時代は本当に楽だったと振り返ることになるかもしれません。
まとめ
Not Your Keys, Not Your Coinsといいますが、GitHubはNot Your Website, Not Your Decisionという感じですね。ビットコイン自体への影響はありませんが、開発やフィードバックが本当に不便になってしまう可能性があるので、できる限り使える状態が続くことを望みます。Microsoftのような大企業は特に国家権力に弱いので、果たして10年後もGitHubにbitcoinリポジトリがあるかはわかりませんが…。
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション