有名な「The DAO Hack」事件はどのようなものでしたか?そして、どのような結果をもたらしましたか?
はい、承知しました。この件はイーサリアム界隈では知らない人がいないくらい有名なので、平易な言葉で説明しますね。
The DAOとは?分散型の「VCファンド」
ハッキング事件について話す前に、まず The DAO が何であったかを知っておく必要があります。
それは、完全にコードによって管理される、グローバルで透明性のあるベンチャーキャピタルファンドと想像してください。2016年当時、これは非常に先進的で壮大なアイデアでした。
- どのように機能したか? 世界中の誰もがイーサリアム(ETH)を使ってThe DAOに投資し、「DAOトークン」と呼ばれるものを手に入れることができました。
- トークンの役割は? DAOトークンを保有するということは、この「ファンド」の株主になるようなもので、議決権を持っていました。集められたETHをどの有望な新規プロジェクトに投資するかを、皆で投票して決めるのです。
- 結果として? このコンセプトは非常に魅力的で、当時1億5千万ドル以上のETHを集め、当時のETH総量の14%を占めるという、ブロックチェーンの歴史において間違いなく画期的な出来事となりました。
簡単に言えば、The DAOはCEOも取締役会もなく、スマートコントラクトとコミュニティ投票のみで運営される巨大なクラウドファンディング投資プラットフォームのようなものでした。
ハッカーはどのようにして資金を「盗んだ」のか?巧妙な「リエントランシーアタック」の脆弱性
問題は、この「完全にコードによって管理される」という点にありました。コードに脆弱性があり、それがハッカーに悪用されたのです。この脆弱性は学術的には「リエントランシーアタック」(Re-entrancy Attack)と呼ばれ、複雑に聞こえますが、原理は実はそれほど難しくありません。
The DAOのスマートコントラクトには、投資家が資金を「分割」(Split)して引き出すことを許可する機能がありました。プロセスはおおよそ次の通りです:
- コントラクトに「投資した資金を返してほしい」と申請する。
- コントラクトはあなたのアカウントをチェックし、資金があることを確認する。
- コントラクトがまずETHをあなたに送金する。
- その後、あなたのアカウント残高を更新し、それを減額する。
重要なのは、ステップ3とステップ4の順序でした! 「まず送金し、後で帳簿を更新する」というこの順序が、ハッカーに付け入る隙を与えたのです。
日常生活の例で理解する:
古いATMで現金を引き出す場面を想像してみてください。
-
通常のプロセスは: カードを挿入し、パスワードを入力して1000円引き出す -> ATMがまずシステム上であなたの残高から1000円を減らす -> その後、現金が出てくる。これは非常に安全です。
-
The DAOの脆弱性は次のようなものです: あなたが1000円を引き出しに行く -> ATMがまず1000円の現金をあなたに出す -> そして、その後システムであなたの残高を更新する準備をする。
ハッカーは何をしたのでしょうか?彼は悪意のある「スマートコントラクトウォレット」を作成しました。ATMが現金を出してくれたが、まだ残高を更新するその瞬間に、彼の「ウォレット」は即座にATMに対して「1000円を引き出したい」というリクエストを再度送ったのです。
ATMのシステムがまだ更新されていないため、ATMは「あれ、この人まだ口座にお金があるぞ!」と判断しました。その結果、また1000円を出したのです… このプロセスが何度も繰り返され、ハッカーが大量の資金を「引き出して」しまうまで続きました。
The DAO事件では、ハッカーはこの「まず送金し、後で記帳する」という脆弱性を利用し、コントラクトが残高を更新する前に出金機能を繰り返し呼び出しました。それはまるで巨大な金庫から水を汲み出すようにして、最終的に約360万ETH(当時約5000万ドル相当)を移動させました。
事件がもたらした影響は?イーサリアムコミュニティの「大分裂」
この事件の余波は非常に広範で深刻であり、イーサリアムコミュニティに「大激震」と分裂を直接もたらしました。
-
コミュニティの激しい議論:「Code is Law」か、それとも道徳的正義か
- 一部の人々(原理主義者)は:「Code is Law」(コードが法である)と主張しました。ブロックチェーンの原則は改ざん不可能性であり、コードがそのように書かれている以上、たとえ脆弱性があったとしても、その結果は受け入れられるべきだと。人為的な介入はブロックチェーンの核心精神を破壊する行為だと考えました。
- もう一方の人々(ヴィタリック・ブテリンに代表される主流派)は:これは明らかな窃盗行為であり、コードの脆弱性があるからといって泥棒を野放しにしてはならないと主張しました。技術的な手段でこの資金を取り戻し、コミュニティの信頼を回復する能力があるならば、そうすべきだと考えました。
-
ハードフォーク:イーサリアム (ETH) vs イーサリアムクラシック (ETC) 議論の結果、主流派は行動を起こすことを決定しました。彼らは「ハードフォーク」という解決策を提案しました。
- ハードフォークとは? それは強制的なシステムアップグレードと理解することができます。ある特定のブロック高で、ブロックチェーンのルールが変更されます。全員が新しいルールを受け入れるか、古いルールに留まるかを決定する必要があります。
- 新しいチェーン (Ethereum - ETH): イーサリアム財団を含むほとんどのコミュニティメンバーがこのハードフォークを支持しました。この新しいチェーンは、コードを修正することで、ハッカーに盗まれた資金を特定のウォレットアドレスに移動させ、元の投資家が資金を取り戻せるようにしました。これはまるで時間を巻き戻し、このハッキング攻撃をなかったことにするようなものでした。今日私たちが「イーサリアム」または「ETH」と呼ぶものは、このフォーク後の新しいチェーンを指します。
- 古いチェーン (Ethereum Classic - ETC): 「Code is Law」の原則を堅持するごく一部の人々は、このハードフォークを拒否しました。彼らは元の、改変されていないチェーンに留まりました。このチェーン上では、ハッキング攻撃の事実は永久に記録され、資金もハッカーのアドレスにそのまま残っています。このチェーンが、現在私たちが耳にする「イーサリアムクラシック」または「ETC」です。
-
スマートコントラクトのセキュリティへの警鐘 The DAOハッキング事件は、全ての人々に警鐘を鳴らしました。スマートコントラクトは強力であると同時に、非常に脆弱であるということに人々は気づいたのです。「コードが法である」ということは、たった一行のコードの誤りが、取り返しのつかない甚大な損失を引き起こす可能性があることを意味します。この事件以降、スマートコントラクトのセキュリティ監査はプロジェクト公開の必須項目となり、様々なセキュリティツールやベストプラクティスも活発に発展し始めました。
-
規制当局の注目 このような大規模な資金盗難事件は、当然ながら米国証券取引委員会(SEC)などの規制当局の注目を集めました。後にSECはDAOトークンを「証券」であると認定し、これがその後のICOや暗号資産プロジェクトの規制の伏線となりました。
まとめ
The DAOハッキングは、まるでブロックチェーンの世界における「タイタニック号」事件のようなものでした。それは、精巧に設計されたが致命的な脆弱性を持つスマートコントラクトに起因し、ハッカーは「まず送金し、後で記帳する」という順序の問題を悪用して繰り返し資金を引き出しました。そしてその最大の結果は、損失を回復するため、イーサリアムコミュニティが極めて議論の的となる「ハードフォーク」の決定を下し、今日私たちがよく知る**イーサリアム(ETH)とイーサリアムクラシック(ETC)**に分裂したことです。
この事件は痛ましいものでしたが、業界全体にセキュリティ問題へのこれまでにない重視をもたらし、長期的には貴重で深い教訓となりました。