ブロック1,920,000:The DAO救済とEthereum Classicへ続いたチェーン
The DAOは約1,200万ETHを集め、そのうち約360万ETHが攻撃者に流出した。出金を止める当初の対応は、2016年7月20日の残高変更へと移った。この介入を適用しなかったチェーンがEthereum Classicとして残った。

要点
- The DAOの調達額は約1,200万ETHだった。2016年6月17日に流出した約360万ETHはその約3分の1だった。
- 子DAOの出金制限は対応時間を生んだが、最初のソフトフォーク案にはサービス拒否攻撃の脆弱性が見つかった。ハードフォークの実行は攻撃開始から33日後の7月20日だった。
- ブロック1,920,000で指定されたDAO口座の残高が回収契約へ移された。この変更を採用しないコミュニティはEthereum Classicを継続し、分岐前の保有者には両方のチェーンに残高が生じた。
出来事のタイムライン
トークン販売で約1,200万ETHを集め、募集終了時の価値は約1億5,000万ドルだった。
子DAOの作成待機期間が即時出金を制限する中、ソフトフォークが提案された。
サービス拒否攻撃の警告は、代案の検討中は有効化を避けるよう勧めた。
ブロック1,920,000での残高移転と、DAOトークン100枚につき1 ETHの交換を示した。
フォークしたチェーンで指定DAO口座の約1,200万ETHが回収契約へ移った。
財団はフォークしないチェーンの継続を認め、取引の再実行リスクを警告した。
1. コードで動くファンドにも、人が守る入口があった
The DAOは2016年4月30日から5月28日までトークンを販売し、約1,200万ETHを集めた。募集終了時の価値は約1億5,000万ドルだった。Slock.itと共同創業者が開発や宣伝に関わり、投資家はスマートコントラクトで提案と支払いを扱うベンチャー投資の実験に参加した。[1]
しかし、コードを使うことは人の権限をなくすことではなかった。トークン保有者が投票しても、どの提案を許可リストに載せて投票へ進めるかはキュレーターが決めた。SECの後年の調査報告書は、提案の順序や時期にも裁量があったと記す。支払いを実行する仕組みと、誰に資金獲得の機会を与えるかを決める権限は別だった。[1]
危険への警告も攻撃に先行していた。SEC報告書には5月のセキュリティ提案と、脆弱性への対応が済むまで新たな投資判断を停止しようという6月3日の提案が残る。誰も問題に気づかなかったのではなく、懸念が解消される前に攻撃が始まった。[1]
2. 一つのアプリの分割関数が破綻の入口になる
6月17日、攻撃者は約360万ETHを自らが管理するアドレスへ移した。SECはこれをThe DAOの調達額の約3分の1と説明した。[1]
ヴィタリック・ブテリンの当日の警告は、分割関数の実行中に再び同じ関数を呼び出し、一つの取引で何度もイーサを受け取る再帰呼び出しを指摘した。問題はThe DAOのアプリケーション処理にあり、イーサリアムの暗号を破ったり合意規則を置き換えたりする必要はなかった。[2]
資金は移動したが、子DAOの作成待機期間により直ちに外部へ引き出すことはできなかった。6月17日の警告は、少なくともさらに約27日かかると見積もった。この制約は対応の時間を生んだが、最終的なフォークまで正確に4週間を数える時計ではなかった。[1][2]
3. 出金を止める対策にも、別の脆弱性が見つかった
6月17日に最初に示された対応はソフトフォーク案だった。特定のDAO契約の残高を減らす取引を拒否するもので、過去の取引やブロックを取り消す措置とは明確に区別されていた。[2]
6月28日、開発者フェリックス・ランゲは公開済みのソフトフォーク実装にサービス拒否攻撃の脆弱性があると報告した。攻撃者は本来のガス代を払わずにコードを実行させ、採掘を遅らせたり正常な取引を妨げたりできた。警告は、代案を検討する間は有効化を避けるよう勧めた。[3]
救済手段そのものも審査が必要だった。攻撃者の出口を塞ぐことと、ネットワークの通常運転を守ることは別の条件であり、前者のための仕組みが後者を脅かし得た。対応の議論は、出金制限から対象残高の明示的な再配分へ移っていった。[2][3][4]
4. 残高変更を実行するには、参加者がソフトウェアを選ぶ必要があった
ジェフリー・ウィルケの7月15日の告知はハードフォークの仕様を示した。ブロック1,920,000で列挙されたDAOと子DAOの口座残高をWithdrawDAOへ移す内容だった。保有者は回収契約でDAOトークン100枚を1 ETHと交換でき、追加残高のケースは別に処理された。[4]
財団は、自分たちだけで決定できるとは説明しなかった。ウィルケはコミュニティの意向をGethの既定のフォーク選択へ反映すると述べ、利用者は対応ソフトウェアを採用して、どの状態に従うかを選ぶ必要があった。従来の規則が生んだ残高を例外的な救済のために変えてよいかが争点だった。[4]
7月20日、財団はDark DAOとWhitehat DAOの契約から約1,200万ETHを回収契約へ移したと報告した。フォークを追う採掘者は約85%と推定された。対象は攻撃者の360万ETHだけではなく、指定されたDAO口座全体だった。[5]
EIP-779は後にこの出来事を整理した文書である。2017年11月作成の同文書は、新しい取引形式やEVM命令の導入ではなく、例外的な状態変更だったと説明する。[7]
5. 救済フォークが成功しても、もう一方のチェーンは消えなかった
一部の参加者は救済の状態変更を適用せずにチェーンを動かし続けた。7月26日には財団も、ETHをフォークしたチェーン、ETCをフォークしないチェーンを継続するコミュニティの取り組みと明記した。Ethereum Classicの出発点はこの連続性にある。二つのネットワークは以前のブロックを共有し、その後は異なる状態を受け入れた。[6]
分裂はウォレットの問題でもあった。分岐前にイーサを持っていた人は両方のチェーンに資産を持ち、同じ署名済み取引が別のチェーンでも実行され得た。財団はETCを新しい口座へ分け、別々のウォレットで管理するよう勧告した。不変性をめぐる議論は、一つの署名がどのネットワークの資産を動かすかという実務へつながった。[6]
この事件はアプリの安全性と集団による救済の限界を結びつける。イーサリアム参加者は復旧を実現できても、全員を同じ選択へ従わせることはできなかった。ETCはもう一方の状態を守り、拒否された介入を、共有する過去の消去ではなく別のネットワークの起点にした。[5][6]
この事件から学ぶ重要教訓(Key Takeaways)
アプリと基盤チェーンは別のシステムである
The DAOの脆弱性とソフトフォーク案の欠陥は、契約とネットワーク対策をそれぞれ検証する必要を示した。
分岐はウォレットの使い方も変える
分岐前の残高共有と取引の再実行リスクにより、ETHとETCの対立は直ちに資産管理の問題となった。
救済が多数の支持を得ても、全員の同意とは限らない
ETHでは指定DAO残高が回収され、反対する参加者は状態変更のないチェーンをEthereum Classicとして継続した。
続けて読みたいストーリー
同じテーマを、別の事例や背景から考えてみましょう。
出典・参考文献
- [1]出典 1: SECによるThe DAO調査報告書U.S. Securities and Exchange Commission · 2017-07-25確認 2026-09-05
- [2]出典 2: 6月17日のThe DAO脆弱性警告Ethereum Foundation / Vitalik Buterin · 2016-06-17確認 2026-09-05
- [3]出典 3: ソフトフォーク対策のサービス拒否脆弱性Ethereum Foundation / Felix Lange · 2016-06-28確認 2026-09-05
- [4]出典 4: 7月15日のフォーク仕様とコミュニティの選択Ethereum Foundation / Jeffrey Wilcke · 2016-07-15確認 2026-09-05
- [5]出典 5: 7月20日のフォーク完了と回収残高Ethereum Foundation / Vitalik Buterin · 2016-07-20確認 2026-09-05
- [6]出典 6: 分岐後のETH・ETCと取引再実行への注意Ethereum Foundation / Vitalik Buterin · 2016-07-26確認 2026-09-05
- [7]出典 7: EIP-779:DAOフォークの事後仕様Ethereum Improvement Proposals / Casey Detrio · 2017-11-26確認 2026-09-05


