The DAO事件の衝撃とEthereumの未来:スマートコントラクトと分散ガバナンスの行方
お待たせしました。事件からちょうど1週間ほどが経っていますが、The DAO事件の概要と露呈されたEthereumの課題や今後の展望について自分の考えをまとめました。
実は事件前の時点では、The DAOの投票の仕組みのインセンティブ設計の問題点、攻撃ベクターなどについて解説し、長期的に考えてなぜ自分がThe DAOが上手く機能しない可能性が高いか、という記事を書こうと思っていたのですが、自分でも予期せない形で思ったよりずっと早くThe DAOは崩壊してしまいました。同時に自分も含め業界関係者に大きな衝撃を与え、多くの問題提起をしてくれました。その点では、The DAOの実験はすでに失敗したといえますが、意義は大きかったと思います。
今回の記事に関しては事前に注意書きをしておこうと思いますが、自分はThe DAOトークンもEtherも保有しておらず、今回の事件に関して金銭的被害や関心はありません。また、この記事の解釈や展望の予想はかなり個人的な意見、バイアスがかかっていることをあらかじめお伝えしておきます。自分はビットコイン推進派的な立場から、今回の事件やその後のEthereumの対応などをかなり批判的に見ています。今回の件は立場や考え方により大きく解釈が変わると思いますし、他に自分とは別の意見を表明する人たちが出てくれば議論としてはそちらの方が健全だと思います。(なので異論、質問などはコメントなどで自由にしてください)
The DAO事件の概要
一応簡単にThe DAOに何が起きたか、その後にどのように事件が進展したかを書きますが、実際起きたことに関しては日本語でもいくつか詳細に解説してくれているサイト、記事などがありますのでそちらを参考にしていただきたいです。具体的にハック攻撃の手法、詳細などは自分はほとんどの人にとっては重要ではないと思っており、この記事ではどちらかといえば事件の影響や今後の展望について中心に書きます。全体の流れに関してはCoinPortalさんがこちらの記事でも平易な文章で説明してくれています。また、ハックの攻撃の図式などの詳細に興味のある方はこちらの記事も参考にしてみてください。
一言で言えば、The DAOのSplit(分裂)機能の部分のコードのバグを利用し、ハッカーが通常の投票などなしで、The DAOが保有していたEtherの三分の一程度にあたる360万Ether(60億円相当)以上を勝手に分裂先のDAO(子DAO)に移動してしまったわけです。ただし、移動された(流出した)Etherはすぐに犯人が引き出せるわけではなく、The DAOのSplitのルールに従い、流出から27日間は子DAOに閉じ込められた状態になります。具体的なハック手法などを説明すると細かい話になりますが、正直これくらいのざっくりした理解で十分だと思います。
そもそもことの発端は、先週の日本時間の金曜の夕方(6月17日)にThe DAOから不審なEtherの動きを感知した人のSlackやRedditでの投稿をきっかけに、The DAOがハッキング攻撃を受けていると話がまたたくまに広がり、混乱と不安が一気に爆発しました。これに伴いEtherとThe DAOトークンの価格は瞬く間に暴落し、何が起こっているのか、これからどうなるのか情報が錯綜してぐちゃぐちゃの状態にしばらくなりました。
そんな中Vitalikはブログ記事を更新し、The DAOのRecursive callingの部分の脆弱性を認め、ソフトフォークをできるだけ早く行い流出したEtherを動かせないようにすることで事態を収束し、またその後にハードフォークを行うことで、簡単に言えば今回の流出を帳消しにし、流出したEtherを犯人から取り返す予定だと発表しました。(先ほど記事を確認したところ、ハードフォークに関する記述が抜けていましたが、事件当日の混乱の中、はっきりハードフォークもするつもりだという記述がありました)
これによりThe DAOに集まっていたEtherが全額投資家に戻される可能性が出てきて、急降下していたEtherの市場価格も一度リバウンドします。これで一件落着と思った人ももしかしたらいたかもしれませんが、ネットワークをフォークするのは大きなリスクもはらみ(詳しくは後述)、コミュニティー内で批判や議論が爆発、また犯人と名乗る人物の投稿により事態はさらに興味深い展開を見せます。
犯人と名乗る人物(電子署名を確認すると、犯人ではない可能性が濃厚とすでに明らかになっていますが)からのメッセージを要約すると、(1部わかりやすいように意訳)
- The DAOのコードをつぶさに研究し、Split関数を使うことでEtherの報酬が得られることを発見した後にICOに参加することを決めた。
- この機能を活用して3,641,694Etherを引き出した。これはThe DAOがSplitによる分散化を奨励するものだと自分は理解しており、The DAOにがこの機会を与えてくれたことに感謝している
- しかし、The DAOのこの「意図的な」機能を盗難と理解している人たちには失望している
- コードにより定められたルールと規約をまっとうに活用しただけで、私は弁護士とも相談し米国の法律に順守しているとアドバイスももらっている
- ソフトフォークやハードフォークは、私がスマートコントラクトのルールにのっとり合法に入手したEtherを奪われる形になる
- いかなる形のフォークも、開発者や研究者、コミュニティーメンバーのEthereumへの自信を喪失させ、その評判を修復不能なまで傷つけることになる
- もし自分が手に入れたEtherが没収されるような形になった場合、訴訟などを起こすことも辞さない
そしてこのメッセージだけでなく、Slackに犯人と名乗る人物が現れ、ソフトフォーク、ハードフォークに反対するマイナーには、ハックで手に入れたEtherとハック直前にショートして手に入れた利益などから1,000,000Etherと100BTCをスマートコントラクトを利用してマイナーに提供するという宣言も出されました。簡単に言えば、フォークをさせないようにマイナーへのわいろをしますという宣言です。
重要なポイントの一つとして、今回The DAOから流出したEtherは、まだ完全に犯人のコントロールにあるわけではなく、親DAOから分裂した子DAO内に移動され、27日間は犯人も勝手に動かせません。(今だとちょうどあと20日ほど)その間にソフトフォークを実行し、犯人がEtherを引き出せないようにアドレスを凍結、時間を稼いでその間にハードフォークの詳細を議論、決定、実行し、The DAOの解体と失われたEtherを取り戻すというのがVitalikなどのEthereum Foundationの今のところの判断のようです。
しかし、ソフトフォークなど含めまだマイナーに受け入れられるかも含め最終決定ではなく、Ethereumはフォークすべきか、Ethereumは今後どうなるのか、今回の事件が明らかにしたことは何なのか、どうすれば安全なスマートコントラクトを実現できるかなど様々な意見が現在進行形で活発に議論されており、この事件がどのように収束していくかいまだに大きな注目を集めています。
(アップデート)
この記事を書いている途中にも進展があり、The DAOに残っている2/3分ほどのEtherを善意のハッカーたちが同じ方法を使い2つの子DAOに引き出しました。これで少なくとも残りの資産は安全だと喜んでいたのですが、「ストーカー攻撃」という攻撃方法を使い、ハッカーが子DAOに侵入していたようで、子DAO内で同じ攻撃を繰り返す可能性があり、攻撃者とサポーターのイタチごっこのような膠着状態になっています。もしハードフォークなしでこの攻撃がずっと続くなら、永遠に中のEtherは誰のものにもならずにぐるぐるDAOを回り続けるという状況にもなりかねません。
なぜこのような事態になったのか?
上記が今回起こったことの一連の流れですが、なぜThe DAOはそもそもこういう最悪な事態に陥ってしまったのでしょうか?いくつか要因は考えられます。
1.Slock.itチームの怠慢
怠慢というと少し強い言葉になってしまいますが、今回攻撃対象になったRecursive callのバグは実は事件の前に指摘されていました。しかし、そのバグ報告にも関わらず、「The DAOにはリスクはない」という宣言する記事をSlockのStephan Tualが出しており、致命的なバグを見逃していたことになります。The DAOのコードを書いたときにバグのあるコードを通してしまったこと(それより資金を集めることに腐心しているようにも見えた)、さらに問題が指摘された後にも今回のようなリスクを見抜けなかったことからSlockの責任を追及する人もいます。
2.The DAOの投票スキーム、バグ対策の欠陥
The DAO自体は基本的に全て投票に基づいていました。投資先の決定や、セキュリティ強化のためのコード変更も全てThe DAOトークンホルダーによる投票ベースで、仮にThe DAOに大きな欠陥が見つかったとしても事前に決めたルールに従って、コード変更などには投票を7日間は待たなくてはいけません。
実際にセキュリティの脆弱性や、投票スキームの欠陥などは事件前に指摘されており、The DAOのセキュリティ強化や、改善までの一時停止なども提案されていましたが、もともと投票インセンティブに欠けるような設計になっており、結局投票率が20%を超えず事件前の提案は全て棄却されていました。もしこれらの提案が通っていたら最悪の事態は未然に防げていたのかもしれません。
また、もともと最悪の事態を想定して、The DAOの停止の仕組み(suicide clause)などをコードで規定しておくべきだったと指摘する声もあります。
3.マーケティング、ハイプ先行のつけ
The DAOが実験的であったことを疑う人はほとんどいませんが、スマートコントラクトという概念自体がまだ新しく、どのようなリスクがあるかもまだあまりわかっていない状態で、150億円以上分のEtherを一か所に集めるのは危険だという指摘もThe DAOのICO中からありました。自分もDAOの実験としては面白いと思いましたが、実際資金が集まりすぎて祭り状態になっていたのはかなり懸念していました。今回ここまでひどい状況になり、Ethereum自体の命運が左右されかねないような状態になってしまっているのは、ハイプが先行した状態でセキュリティよりマーケティングやPRを先行させてしまい、調達資金の上限などを設けないで、リスクが高い実験に資金を集めすぎてしまうのを許してしまった判断にも責任があると思います。The DAOを「150億円のバグバウンティー」と揶揄する声もあり、資金が集まればそれだけハッカーの攻撃のインセンティブが大きくなるのは明白でした。
The DAO事件で露呈された課題、問題点
今回のThe DAOショックが暗号通貨業界で大きな衝撃を与えたのは、単純にThe DAOから流出したEtherの金額が大きかった、期待されていたThe DAOというプロジェクトがあっけなく崩壊してしまったから、というだけではありません。それ以上にEthereumやスマートコントラクトというコンセプト自体の限界や将来に関して問題提起をし、また分散プロトコルとしてのEthereum自体の課題を突き付ける形になったからです。
その点では、今回の事件はビットコインのMt.Gox事件並みの大きな転換点になると思います。
以下に何点か今回の事件で露呈した問題点、スポットライトが当たった論点などをあげます。
スマートコントラクトの弱点
スマートコントラクトプラットフォームとして世界中の開発者だけでなく、主要金融機関、マイクロソフトなどの大企業からも大きな注目を集めていたEthereumですが、実は以前より大きく2つ課題を指摘されていました。パブリックチェーン上でのスマートコントラクトの必要性と、コードのバグのリスクです。前者はオラクルなどの外部の信頼できる機関への依存が前提とされるコントラクトの効率性、必要性の話(結局完全に分散化、特定の組織への信頼不要化されてないのに、わざわざパブリックチェーン上でコントラクトを作成する意味はあるのか、今までのモデルと何が違うのか)で今回は深入りはしませんが、今回のThe DAOショックでは後者のスマートコントラクトのコードのバグに関する課題が浮き彫りにされました。
(その前に、Ethereumとは何か?スマートコントラクトとは何か、というのがちょっとまだわからない人は、Ethereum入門編は以前に大石さんがサロン用に書いた記事でわかりやすく解説しているので、こちらの記事を参考にしてください。)
さて、上記の記事を読んでもらえばわかるように、Ethereumは一言でいえばコントラクト(プログラム)を改ざん不能なブロックチェーン上に記録して自動執行する分散プロトコル、World Computerです。
ビットコインが基本的には送金のみのシンプルなプロトコルに比べ、チューリング完全な言語で様々なプログラムをブロックチェーン上に記録して自動的に確実に実行できるEtherumの応用可能性には、世界中の開発者や企業が大きな関心を示しているわけです。
しかし、プログラマーではない自分がいうのもおこがましいですが、当然プログラムにはバグがつきものです。(バグに悩まされる日常を送っている方も多いかと…)バグのないコードを書くのは至難の業で、コードテストやコードレビューに膨大な時間とコストが必要になります。それでもバグは結局出てしまうので、通常ならコードにバグや問題があったらすぐにコードを書き直したりして事なきを得るわけですが、ブロックチェーン上のコントラクトのバグの場合はそう簡単にはいきません。一度Ethereumなどのパブリックブロックチェーン上に記録したコントラクトはオープンに公開され、半永久的に記録されて、変更が簡単にはきかないわけです。これは後から誰かが勝手な修正ができないというメリットもありますが、コードに致命的なバグがあった場合はハッカーからの攻撃リスクになり、改ざん不能性はむしろ大きなデメリットになります。
今回のThe DAOの件も簡単に言えば、致命的なバグがあるコードをスマートコントラクトとして作成してしまい(変更が難しい状態にしてしまい)、結局攻撃されるまでそれに気づかなく、さらに問題が発覚した後もThe DAOのコードに変更を加えられないため、欠陥を抱えたままのコードが公開されたままで攻撃され続けてしまっているという状況です。
また、この弱点はもちろんThe DAOに限った問題ではなく、スマートコントラクトを利用する他のプロジェクトにも全く同じリスクが存在して、スマートコントラクトのバグを未然に全て潰すのも難しく、今後もEthereumなどのスマートコントラクトプラットフォーム上で同様のハッキング事件などが頻発する状況も想定できます。
平たく言ってしまえば、今回の事件でパブリックチェーン上で安全で実用的なスマートコントラクトを実行するのはおそらく自分たちが考えていたよりずっと難しく時間もかかり、パブリックチェーン上のスマートコントラクトというコンセプト自体がもしかしたらそもそも非現実的なのかもしれない、もしくはコンセプトが成熟化、実現化するのにかなり長い時間を要するのかもしれないということに気づかされたというわけです。
Ethereumと分散化問題
そしてももう一つEthereumに大きく突き付けられた課題がプロトコルの分散とチェーンの改ざん不能性の問題です。
今回The DAOのコードの脆弱性、The DAOプロジェクト自体に対する批判もありますが、それ以上に事件後のEthereumチームの事後対応に関する批判、議論が特に多いです。
Ether流出直後から素早くフォークのアナウンスを出して、事態の鎮静化を図ったEthereum Foundationでしたが、トランザクションの凍結やプロトコル変更を独断的に指示したりする中央管理主体がいないのが強みのパブリックチェーンのはずが、Vitalikの判断に盲目的に追従するEthereumはもはや分散化されていないという批判が当然のごとく噴出しているわけです。(これを皮肉って、EthereumはProof of Vitalik(PoV)だという人もいました)
また、ビットコインやEthereumなどのパブリックチェーンにとって、分散化による改ざん不能性が唯一最大の特徴であるとも言え、プロトコル上の一つのスマートコントラクトに過ぎないThe DAOを救済するためにその原則を破ってトランザクションのロールバックをするのは、分散プロトコルとしての失敗を意味するという声も少なからず上がっています。
The DAOの事件への対応として、今の時点でEthereumがとれるシナリオは主に以下の3つです。
(ソフトフォーク、ハードフォークについては大石さんが過去にサロン用に書いたこちらの記事①と記事②を参考にしてください。)
シナリオ1 何もしない
これは特にThe DAOトークンを保有していた人たちには苦しい決断になりますが、コアなビットコイナー、Ethereum開発者の中の一部は、Ethereumが何もしないことが正しい選択だと主張しています。今回の事件はあくまでEthereumというプラットフォームを利用したThe DAOという一つのコントラクトのバグ、失敗であり、その失敗をEthereumが例外としてハードフォークなどを通して救済をするということは、改ざん不能であるはずだったパブリックチェーンの前提やビジョンを破ることになります。
ビットコインはシルクロードやMt. Goxがあった時もあくまでシステムの外の話だと切り捨て、何もしませんでした。もしEthereumが主張しているようなビットコイン同様の分散プロトコルを目指すとしたら、何もしないという判断のみがEthereumが長期的に生き残る方法だとLitecoinの創設者Charlie Leeなども指摘しています。
しかし、このシナリオを選択すると、犯人がネットワーク上のおよそ5%ほどのEtherを抱えることになり、Proof of Stakeへの移行が難しくなったり、犯人のEther大量売却によりEther価格急落リスクなどが考えられ、何もしないという選択肢は結局Ethereumの崩壊を意味するという懸念の声もEthereumコミュニティー内から多く聞かれます。
シナリオ2 ソフトフォークをして、流出したEthを使用不能に
二つ目のシナリオは、ソフトフォークをして、簡単に言えば子DAOに流出したEthを動かせないように凍結し、犯人がEthを売り抜けたりすることをプロトコルレベルで不可能にするというシナリオです。今回流出したEthは凍結状態になり、犯人が大量のEthを市場で売って市場価格を沈めたりすることはできなくなります。
ただし、The DAOから引き抜かれてしまったEthが返ってくるわけではないので、The DAO投資者の出資額のうち三分の一ほどのEtherが失われて、投資者がその分の被害を受けることになります。
シナリオ3 ソフトフォーク+ハードフォーク
最後に、ソフトフォーク+ハードフォークのパターンです。簡単に言えば、The DAOに関するトランザクションを巻き戻して、今回の事件がプロトコルレベルでなかったことにしてしまうという方法です。事件直後にVitalikが更新したブログ記事によれば、Ethereum Foundationはこのシナリオを今想定しているようです。
ソフトフォークをして犯人がEthを動かせないようにしておき時間を稼ぎつつ、その後にハードフォークをすることで今回The DAOから引き抜かれたEthを取り戻すことになります。
The DAOトークンの投資家からの視点からいうと、この選択肢が最も魅力的にも映りますが、プロトコル上の一つのコントラクトを救済するために分散プロトコルの原則を破ることになり、同時に業界内で大きな批判が巻き起こる可能性があります。
Ethereumがどのシナリオを選択するかはまだ最終決定していませんが、事件直後からハードフォークをするということをVitalikが中央集権的に宣言している状況自体がEthereumがまだ分散プロトコルとして機能していないことを示唆し、今後も同様の事件があった時にFoundationがロールバックやアカウント凍結を行う可能性が出てくるのではないか、パブリックチェーンとしてのEthereumはVitalikがいる限り成立しないのではないかという声も出ていました。
Ethereum Foundationの役割
また、今回の事件をさらにややこしくしている要因の一つに、Ethereum Foundationのコアメンバーの多くが、個人的にThe DAOに関わったり、投資したりしていたことが挙げられます。そのせいで、個人的な損失を防ぐためにも、プロトコル上の一つのプロジェクトに過ぎないはずのThe DAOを救済するインセンティブが生まれ、ひどい利益相反が起きていると批判されています。
そもそも、The DAO、およびEthereum上のプロジェクト全般の今までの成功要因の一つに、Foundationがプロジェクトを後押ししたり、大々的なPRを行ったり、Foundationが大きな役割を果たしてきた側面があります。プロジェクトが問題を起こさず上手く行っている限りはよかったのですが、今回のような事件があると、一つのプロジェクトの失態が開発者の利益相反を起こしたり、プロトコル全体のリスクに発展しかねないことから、Foundationとプロジェクトの密接な関与を疑問視する声もあります。
また、The DAOのクラッシュ直後に、Ethereumの人間が取引所にトレードを停止するように要求する生々しいチャット履歴がリークされ、オープンで分散なコミュニティーとは真逆の閉鎖的でトップダウンのような構造、態度が暴露されていました。(実際事件直後にKrakenなどはつながりが悪くなり、それによりトレードが出来ずに大きな損をしたユーザーもいるはずなので、個人的にもこれは大きな問題だと思います)
さらに、The DAOのコードを書き、プロモーションなども強力に支援していたSlock.itチームにはEthereumのコアメンバーも参画しており、自分たちの利益や体裁を守るためかはわかりませんが、The DAO崩壊後もハードフォークをあおるような軽率な発言を続けており、コミュニティー内の多くからEthereumプロトコルへの責任転嫁と利益相反を厳しく批判されています。自分個人としてもSlock.itの事後対応や発言には呆れてしまいました。
https://www.youtube.com/watch?v=GvgTivwzcuo&feature=share
(The DAOショック直後のSlock.itのコミュニティーマネージャーの反応。判断はそれぞれにお任せしますが、投資家の資金50億円以上が失われたことに対する責任感や緊張感は特に感じられません。また、ビデオの中で「自分の友人(コア開発者など)はこの件で多額のお金を失うことになる。それだけは避けなくてはいけないのでハードフォークすべきだ」という軽率な発言をしています。)
スマートコントラクトと法律
もう一点、今回の事件でスポットライトがあてられた点が、スマートコントラクトの法的解釈です。自分はもちろん法律の専門家ではないので正確な判断はできませんが、事件前はスマートコントラクトは既存の法律の枠組みから外れた「コードによる支配」という新しい概念だと業界内ではそういう「雰囲気」になっていました。(法律の専門家からするとこの解釈はもともと的外れだったかもしれませんが)実際にSlock.itもThe DAOのプロモーションをするにあたり、「Code is Law」と大々的にホームページに書いたり、ICO規約にも「コードが全ての規約を含む」という旨の記載がありました。
そして興味深いことに、犯人と名乗る人物もこの規約を引用し、「自分はコードというThe DAOの絶対のルールに従ったのみ」という声明を出しており、もしコードが本当にルールであるならば、今回のEtherの引き出しはなんら違法性がないと判断することもできるかもしれません。
ただし、実際暗号通貨に詳しい弁護士や法律の専門家が何人かすでに見解を示しており、結局スマートコントラクトも既存の法の外には存在しないという冷静な声が多いです。つまり、今回のようにコードにバグがあり、想定していなかった形でプログラムが利用されて暗号通貨などが盗まれた場合、ハッカーには法的責任を問える、ということです。
このスマートコントラクトと法解釈の領域は新しい領域で、今も業界内の識者の間で議論がされていますが、ブロックチェーン上で自律執行し、既存の法律の仕組みから抜け出し、コードが参加者を支配するような世界を高らかに宣伝していたThe DAOの失敗が、結局既存の法の仕組みで解決されるとしたら、スマートコントラクトがもたらす革新性、効率性は果たしてあるのでしょうか?何か皮肉さえ感じます。
今後の展望と予想
最後に、今後何が起きるのか、その他のプロジェクトなど含め今回の事件がどのような影響を及ぼすか自分の考えと予想を述べます。
ソフトフォーク/ハードフォーク
Ethereumはソフトフォークおよび、ハードフォークをするべきか、に関してですが、個人的には何もしないのが分散プロトコルとしては正しい姿だと思います。今回の事件は本来はEthereum自体の問題ではなかったわけで、仮に失われた額が60億円ではなく60万円ならこの件は間違いなく無視されていました。シルクロードやMt.Goxの時もビットコインがプロトコルとして何もしなかったように、パブリックチェーン上でこのトランザクションは良くてこれはダメと誰かが(このケースではEthereum Foundation)判断するのは改ざん不能性や、検閲耐性が強みであるパブリックチェーンではあってはならない事態だと思います。逆に言えば、改ざん不能性が失われたパブリックチェーンはプライベートチェーンや通常のデータベースと大きな違いがなく、そもそもの存在意義がなくなってしまう可能性もあります。その点で、短期的な判断ではなく、何もしないという選択をするのがEthereumが分散プロトコルとして長期的に生き残る唯一の選択肢だと自分は考えます。
しかし、自分の考えは別として、実際に何が起きることが予想されるかといえば、シナリオ2(ソフトフォークのみ、ハードフォークなし)になると今のところ自分は予想します。現状、Ethereumコミュニティー内での大勢の見方はソフトフォークを許容しているので、流出したEtherを凍結させ、犯人に資金を動かせないようにすることで事態を一旦収束させようとするのは間違いないと思います。しかし、ハードフォークに反対する声はEthereumコミュニティー内でも多く、議論の末結局ハードフォークするべきではないという声が勝りそうだと自分は考えています。少なくともハードフォークをすることで、短期の利益を求める投資家はともかくとして、Ethereumを支持していた開発者が失望し、プロジェクトを離れてしまうような結果になる可能性が高いのはVitalikたちも理解していると思います。
結局、Ethereumはどのシナリオを選択しても大きなダメージが残ることは間違いないですが、シナリオ2がEthereumと犯人の痛み分けの妥協になり、ある意味Ethereumの中期的な生き残りとしては一番現実的だと思います。しかしソフトフォークであったとしても、アドレスの凍結やプロトコル上の一コントラクトの救済などの前例を作ってしまうことになり、一部開発者からの批判や失望は避けられないと思いますし、悪しき前例を作ってしまうことで長期的にパブリックチェーンとしてのEthereumを形骸化してしまう要因になってしまう可能性すらあります。
Ethereumの今後の方向性
ソフトフォーク、ハードフォークに関していずれのシナリオを選択するに関わらず、今回の事件はそもそものスマートコントラクトのあり方、パブリックチェーン上の分散アプリケーションプラットフォームというEthereumのビジョンを大きく揺らがしてしまったことには差はありません。
一度記録してしまったら基本的には変更が不可能なブロックチェーン上に、スマートコントラクトの形で分散アプリケーションを作り、そこに大きな金額をエスクローさせるというモデルは自分も含めて関係者が想定していた以上に難しくリスクが高いことが露呈されましたし、コードレビューなどにかける時間、コストなどを考慮すると、パブリックチェーン上のスマートコントラクトというコンセプト自体がそもそも長期的にも難しいという結論になるのかもしれません。
大きな失敗があったらいちいちブロックチェーンをロールバックをして救済をするというモデルはパブリックチェーンでは本来ありえない話ですが、一方プライベートチェーン(単独の組織がコントロール)、もしくはコンソーシアムチェーン(複数の信頼関係がある、もしくは規制対象の組織がコントロール)では特に問題とはとらえられないでしょう。むしろ非常時に状況を鑑みてロールバックが出来ることは、プライベートチェーンの強み・機能であるとも言えるかもしれません。
Ethereumやスマートコントラクト全般に詳しい専門家、技術者も、Ethereumのスマートコントラクト言語はプライベートチェーン上でこそ効果が発揮され、パブリックチェーン上ではそもそも成立するのも難しいと言っている人もすでにおり、今後Ethereumは金融機関の間のコンソーシアムチェーンなどの環境で、Solidityなどのスマートコントラクト言語に磨きをかけ、エンタープライズ向けのソリューションとしての方向性に特化していくことで生き残っていくという将来もなきにしもあらずだと思います。
さすがに今回の事件後すぐにこの方向性にピボットすることは考えづらいですが、特にもしハードフォークをしてしまった場合は、自分はEthereumのパブリックチェーンとしての生き残りは実質かなり厳しくなるのではないかと思います。
スマートコントラクトを利用したプロジェクトへの影響
今回のThe DAOの崩壊により、他のプロジェクトへの影響も考えられます。The DAO同様に、事前にスマートコントラクトでルールをブロックチェーン上に記録し、大きな金額をエスクローするモデルのプロジェクトとして、AugurとDigixなどがありますが、これらのプロジェクトにもThe DAOのようにコードのバグへの攻撃による崩壊リスクがつきまとうことが考えられます。これらは億円単位の多額の資金を調達し、期待値も高いプロジェクトたちですが、個人的には今の時点ですでに黄信号が灯ってしまっている気がします。(これらのプロジェクトが失敗する可能性が高いと自分が考えているのは、コードのバグの話だけではないですが、ここでは割愛)
スマートコントラクトプラットフォームへの影響
Ethereum以外にもスマートコントラクトプラットフォームを謳うプロジェクトは複数出てきていますが、「簡単にDappsを作れるプラットフォーム」がウリだったLiskなども中長期でみると厳しい立場にあると言ってしまっていいと自分は思います。(今回の事件を抜きにしても自分は元々Liskなどには懐疑的ですが)実際にThe DAOの事件のあと、Liskも連れられて価格を下げているのは一つの兆候でしょう。今回の事件が露呈したように、そもそもDappsプラットフォームという概念自体が機能するには多分想像しているよりもっと長い時間がかかるのかと。
ICOバブルの崩壊
The DAO以前にも複数のプロジェクトが多額の資金を調達しており、それがThe DAOの150億円(史上最大のクラウドファンディング案件)で絶頂に達したのですが、今回の壮大な崩壊、スマートコントラクトへのハイプからの目覚めなどで、ICOのバブルはここで一度終了だと自分は考えます。実際、数日前に市場でトレードが開始されたWavesも価格はセール時を割れてしまい、今後のICOプロジェクトも似たような状況になるのではないでしょうか。サロン内でも最近ICOに関する質問などが多いですが、今から出てくるICOプロジェクトのトークンの価格がいきなり爆上がりするなどは、あまり期待しない方がいい気がします。
The DAOとDAOというコンセプト
今回の件で、The DAOの実験は終了なのはほぼ間違いないです。正確に言えば、トークン保有者の投票がないと崩壊する選択もできないはずですが、Ethereumがハードフォークをするか、Slockが何かしらうやむやにして終了だと思います。そしてその時点で分散自律組織として完全に機能していないことが同時に証明されてしまうわけですが…。
ただし、DAOの自律分散組織というコンセプト自体が終わったわけではなく、今後も色々な形で実験は続くと思いますし、自分もそれを期待しています。今回の失敗から学び、コードの精査、投票スキームの吟味、いきなり多額の資金を集めすぎないことなど改善、改良が加えられていくのではないでしょうか。そうなればThe DAOの失敗にも意義はあったと思います。
まとめ
The DAOの事件自体は、コントラクトのバグをつかれて投資家から預かっていた資金が流出してしまったというだけで、それ自体は実は非常にシンプルな話なのですが、The DAO以外にもスマートコントラクト全般に同様の脆弱性やリスクがあること、失われた金額が大きかったこと、Ethereum Foundationのメンバーが密接に関わっていたこと、事件の事後対応により浮かび上がってしまったEthereumと分散化の問題、スマートコントラクトの法的な解釈など単純なハック事件以上の意味を持ち、関係者に衝撃を与えました。その意味でも、The DAO事件は、Ethereumにとっては、ビットコインのMt.Gox級の大事件、転換点になることは間違いないです。
今回の事件で、ハイプに包まれていたスマートコントラクトの脆弱性や課題が露呈され改めて見直され、Ethereumの将来や今後の方向性もこの事件への対応次第で大きく決まってくると思います。いずれの選択をしてもEthereumにとっては苦しい展開であることは間違いないですが、個人的にはハードフォークなどの早計な判断をせずに分散の理念を守り、コミュニティーを再編しもう一度出直して欲しいと思ってます。Ethereumにとってかなり厳しいことを書きましたし、懸念もいまだに多いですが、Ethereumが完全に潰れてしまうのは業界全体としてもネガティブですし、案外何事もなく復活するというシナリオも実は想像するのは難しくないです。(Ethereum開発者とコミュニティーがどれだけ分散化の問題に敏感かにもよりますが)
とりあえずEthereumがどのような判断をするか、それにコミュニティーがどう反応するか、犯人はこれからまた新たな攻撃を起こしたりしないのか、自分もこの事件の結末をまだ興味深く見守っています。
最後に少し話はそれますが、日本からもThe DAOトークンを大量に買っていた人たちがいたようで、この事件で数百万円もしくはそれ以上の損失をした人もいるなどの情報を散見しました。それについては非常に残念ですが、被害を受けた方も受けていない方も今回の教訓を生かし、事前にきちんとリサーチをして、失っては困る以上の額をICOや暗号通貨に投資しないこと、この世界だといつこういう予想外の事件、ハックが起こるかまだまだわからないなどのリスクも想定すべきです。特にICOのバブルも終了ですし、今回の事件で投資家も冷静になり、今後何もしないでリスクなくトークンの価格が簡単に数倍になる、という状況はしばらく来ないのではないでしょうか。
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション