ブロックチェーン/レベル VII · 進化/7.1 イーサリアム:ワールドコンピューター/レッスン 1
イーサリアム:プログラマビリティの力と代償
チューリングの罠:台帳があらゆるプログラムを実行できるとき何が起こるか
用意するものBIP-341(Taproot)のコピーイーサリアムのホワイトペーパー(2014年)BitVM論文(2023年)
問い
- なぜ任意のコードを実行できる能力は、必然的に盗難の可能性を広げてしまうのか?
- コミュニティはどのようにして、ハッキングを巻き戻すために自らのチェーンをフォークしたのか。そしてなぜビットコインはその前例を拒んだのか?
- ビットコインが重い計算を実行せずに検証する、正確な仕組みとは何か?
探究
- イーサリアムは2015年7月、ビットコインとは異なる目標、すなわち汎用的なプログラマビリティを掲げてローンチされた。ビットコインのスクリプトが特定の監査可能な金融取引のために設計されていたのに対し、イーサリアムはチューリング完全な仮想マシン(EVM)を導入した。これにより開発者は、あらゆる種類のプログラムを書いてチェーン上に直接デプロイできるようになった。その結果、ビットコインの限定的なスクリプト環境では再現できなかったトークン、分散型金融プロトコル、非代替性トークンが爆発的に増えた。
- 汎用計算の力には代償が伴った。2016年6月、The DAOのスマートコントラクトにあった再帰呼び出しのバグにより、攻撃者は調達資金の約3分の1を吸い上げることができた。イーサリアムコミュニティは危機に直面した。書かれたとおりにコードを実行させるか(「コードは法なり」)、それとも介入するか。彼らは介入を選び、変則的な状態変更によって盗まれた資金を返金用コントラクトに移すハードフォークを実行した。この決定によりチェーンはイーサリアムとイーサリアムクラシックに分裂し、社会的合意が不変のコードを覆しうることが証明された。
- The DAO事件は構造的な脆弱性を浮き彫りにした。表現力が攻撃対象領域を広げるということだ。その後、プログラマブルなチェーンで起きた盗難の大半は、暗号の破綻ではなく、保持されたままの管理者キー、アップグレード可能なコントラクトロジック、あるいは単純なコーディングミスによるものだった。チェーンが任意のプログラムの実行を許すと、新機能が加わるたびに悪用されうる複雑さが増す。セキュリティの負担はプロトコル設計者から、厳格な監査を欠いているかもしれない何千人もの個々の開発者へと移る。
- その攻撃対象領域への一つの答えは、言語そのものの内側から生まれた。Facebookが後に放棄したLibra(後のDiem)プロジェクトのために開発したMoveは、トークンをリソースとして扱う。リソースとは、型システムがプログラムによるコピーや暗黙の破棄を許さない値であり、そのため二重計上や資金消失といった種類のバグはまるごと、本番環境で失敗するのではなくコンパイルの段階で失敗する。2022年にDiemが閉鎖されると、元DiemのエンジニアたちはMoveを新しいチェーンへと持ち込んだ。Avery ChingとMo Shaikhが創業したAptosは、2022年10月17日にメインネットをローンチした。搭載されたBlock-STMは、トランザクションを楽観的に実行し、後から同じデータに触れたものを確認して、それらだけを再実行する並列実行エンジンである。技術は最先端だったが、ローンチはそうではなかった。取引所はトークン配分が公表される前にAPTトークンを上場させ、公表された数字では供給量のおよそ半分が投資家、コアコントリビューター、財団に割り当てられていた。初期のオンチェーンアクティビティは宣伝されたスループットに遠く及ばず、チームは「もっとうまくやれたはずだ」と認めた。別の元Diemエンジニアのグループが開発したSuiも、2023年に独自のMoveベースのメインネットで後に続いた。教訓は両面に及ぶ。より安全な言語は攻撃対象領域を狭めるが、ホルダーが中身を見通せないローンチを技術が救うことはない。
- ビットコインの対応は、全面的な模倣ではなく選択的な採用だった。汎用計算の代わりに、ビットコインは特定の監査可能な機能を取り込んできた。2021年11月に有効化されたTaprootは、プライバシーと効率を保ちながら複雑な支払い条件を可能にするスクリプトツリーを導入した。ウォレットは、署名者間でトランザクションを受け渡すための標準フォーマットであるPSBT(Partially Signed Bitcoin Transactions)を採用した。これらの追加は、バグのあるコード一つでネットワーク全体が危険にさらされうる汎用仮想マシンを導入することなく、機能性を高めている。
- 単純なスクリプトでは扱えない重い計算に対しては、BitVMのアプローチが道を開く。2023年にRobin Linusが提案したBitVMは、重い計算をオフチェーンにとどめ、異議が申し立てられたステップだけを、しかも誰かが異議を唱えた場合にのみビットコイン上で検証する。これによりビットコインの軽量なベースレイヤーを保ちつつ高度なアプリケーションを可能にし、コアプロトコルがシンプルで検証可能なまま、汎用スマートコントラクト環境で見られたような連鎖的障害に強い状態を保つ。
- トレードオフは明確だ。イーサリアムはセキュリティの複雑さとアップグレードに伴うリスクを代償に柔軟性を優先し、ビットコインは計算を制限することで安定性と明示性を優先する。チェーンに新機能を加えるときの試金石は、それが悪用されうる隠れた状態や管理者権限を持ち込むかどうかだ。信頼できる第三者や複雑な社会的合意によるフォークに頼らず、シンプルで透明なルールで検証できない機能は、本質的なリスクを抱える。この違いが、二大チェーンの間にある現在のアーキテクチャ上の分岐を規定している。
重要な事実
- イーサリアムのメインネットは、チューリング完全な仮想マシンを搭載し、2015年7月に稼働を開始した。
- The DAOのハッキングは2016年6月に発生し、チェーンを分裂させるハードフォークにつながった。
- 2021年11月(ブロック709,632)にビットコインでTaprootが有効化され、スクリプトツリーが導入された。
- スマートコントラクトの盗難の大半は、暗号の破綻ではなく、保持された管理者キーやコーディングのバグに起因する。
- Move(FacebookのLibra/Diemプロジェクト発)は、トークンをコピーも破棄もできないリソースとしてモデル化する。Aptosは2022年10月17日、Block-STMによる並列実行を備えたMoveベースのメインネットをローンチした。
- BitVMは、軽量なベースレイヤーを維持するため、オンチェーンでの紛争解決を伴うオフチェーン計算を可能にする。
- PSBTは、責任の所在が明確な、複数当事者によるトランザクション署名のワークフローを可能にする。
演習 九・六・三・一
9集めるスマートコントラクトの機能またはプロトコルを9つ挙げてください。それぞれが汎用計算、特定のスクリプトロジック、外部オラクルのどれに依存しているかを記録してください。
6まとめる9つを、それぞれが生み出す攻撃対象領域によって6つのグループに分けてください。
3絞り込む6つを、汎用計算がシステミックリスクを高める3つの主な理由に絞り込んでください。
1結晶化する安全な機能と危険な機能の境界線をどこに引くか、そしてその理由を1文で書いてください。
事実確認
日付、数字、主張は、下記に記載された公表資料と照合して確認しました。
- V. Buterin, Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform (2014)
- P. Wuille, J. Nick & A. Towns, BIP-341: Taproot (2020)
- R. Linus, 'BitVM: Compute Anything on Bitcoin' (2023)
- Contemporary reporting on The DAO hack (June 2016)
- Aptos Foundation, Aptos Tokenomics Overview (2022)
- R. Gelashvili et al., "Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing" (2022)
- Contemporary reporting on the Aptos mainnet launch and tokenomics (CoinDesk/Yahoo Finance, October 2022)