読者です 読者をやめる 読者になる 読者になる

ビットコインの情報サイトの運営者ブログ

サイトには掲載していない仮想通貨に関する時事的な情報や個人的な感想など。中級者以上向け。

The DAO事件の続報、ソフトフォークによりETHは全額取り戻せる?

Ethereum

前回当日に書いたThe DAO事件の記事から一週間あまり経った現在、いろいろと状況が変わってきました。

攻撃者?からの声明が公開

The DAOへの攻撃の翌日、本物か偽物かは不明ですが攻撃者を名乗る人物からの声明文が公開されました。自分はThe DAOのコントラクトコードに書かれている「機能」をそのまま実行しただけで、決して盗難したわけではなく、ソフトフォーク/ハードフォークはEthereumだけでなくスマートコントラクト、ブロックチェーン全体の信用に傷がつくから止めろという内容です。

また、海外仮想通貨メディアのCCNのインタビューにも答えており、声明文と同じような内容に加え、攻撃はチームとして複数人で行ったことやフォークに反対するマイナーには100万ETHを賄賂として渡すというような発言もしています。マイナーへの賄賂については、スマートコントラクトとして透明性の高いかたちで引き渡すとしていましたが、ソフトフォークが間近に迫った今でもそのコードは公開されていません。

The DAOの残りのETHも「善意」のハッカーにより移動

17日にThe DAOから364万ETHが引き出されましたが、この時に脆弱性が修正されたわけではなく、技術的には残りの全額のETHも不正に引き出せる状態が続いていました。全額引き出せるのにもかかわらず途中で攻撃を止めたのは、攻撃中にEthereumの開発チームからソフトフォークの計画の発表がなされたためで、全額引き出してしまうとフォークが行われる可能性が高いと攻撃者が判断したためと思われます。

実際その後も同様の方法により、数十ETH程度ではありますが、別の人物と思われる攻撃者から不正に引き出されていました。

さらに、22日にThe DAOに残っていたうちの763万ETHも同様の手法により引き出されました。しかし、22日の攻撃者の素性は明らかにされていないものの、この攻撃は善意のハッカー(Whitehat)によるものと確認できており、悪意を持ったハッカーから残りのThe DAOのETH資産を守るために攻撃を行ったものである、とEthereumの開発チームの一人から発表されました。

ソフトフォークの具体的内容

The DAO内にあるETH資産のほとんどが子DAOへ引き出されており、子DAOの作成後27日間は一切資産の移動ができないことから、残りはソフトフォークの対応次第となります。

ソフトフォークのソースコードは当日に公開されたものから改良がすすめられ、改良後の最終的なコードでは、「1800000番目のブロック以後、The DAO内のETHの移動を一部の例外を除いて一切禁止する」というものになりました。禁止されているのはETHの移動が関係するトランザクションだけなので、ソフトフォーク後もDAOトークンの送受信は自由に行うことができます。

ソフトフォークでETHの移動が禁止されない一部の例外というのは、The DAOチームの管理下にあるアドレスのことであり、要するにThe DAOの管理アドレス以外へは一切The DAO内のETHの移動ができないということになります。

ソフトフォークが実施されれば、例外としてホワイトリスト化されたアドレス以外はETHの移動を一切行えなくなるので、同様の脆弱性を突いて攻撃することにより、17日に引き出された子DAO内にある364万ETHを取り戻すことができます。ただし、ソフトフォークのみの場合、DAO作成後の27日間のETH移動制限など、The DAOのコードの仕様による様々な時間的制約があるので、ETHを全額取り戻すのには少なくとも2ヶ月余りを要すると考えられています。そのため、この間に他の脆弱性が発見されるなど予測不能な事態が発生する可能性もあるので、単純にETHを取り戻すことができるハードフォークの実施もThe DAOの開発チームは未だに推し進めています。

ソフトフォークは実施の方向へ

Ethereum開発チームによるソフトフォークの提案を受けたマイニングプールの多くがソフトフォークへの支持を表明しました。マイニングプールの運営者の一存だけで決定されたわけではなく、上位約50%を占めるdwarfpool、ethermine/ethpoolでは、ソフトフォークに賛成/反対するかマイナーに対して投票を行い民主的にソフトフォーク支持が決定されたものでした。

DwarfPool

Stats - ethermine.org - The fastes way to mine Ether

Stats - ethpool.org - The Ethereum Mining Pool

投票権は各マイニングプールにおける個人のハッシュパワー(採掘力)に応じて割り当てられ、3つの投票結果のいずれも似たような結果となり、およそ25%が投票に参加、約75%がソフトフォーク支持、約25%がソフトフォーク反対となっています。

実施は1800000ブロックに行われることになっています。記事執筆時点でのブロック数は1774440なので、残り約25000ブロックあまり、数日以内にはソフトフォークが実施されることになります。

追記:1800000ブロックでのGaslimitが4000000を下回ればソフトフォークが実施されます。現在の状況は以下のサイトで確認できます。

Ethereum Blocks And Uncles Records

今後は?

予想外の事態が発生しない限り、ソフトフォークを通じて一時は盗まれたと思われた364万ETHも取り戻せる可能性が高くなりました。今後は、今回のソフトフォークを最後として数か月間をかけてETHを取り戻すか、あるいは単純にハードフォークを実施すべきかどうかの議論になると思われます。