イーサリアムの大型アップデート「コンスタンティノープル」実装が延期、遅れる理由とは?

どうも墨汁うまい(@bokujyuumai)です。イーサリアムの大型アップデートであるコンスタンティノープルは、テストネットでのコンセンサスバグからの延期の後、実装まで後1日と迫っていました。そんな中、コンスタンティノープルで実装されるEIP-1283に致命的な脆弱性が発見、延期されることになりました。

EIP-1283の脆弱性とリエントランシー攻撃とは?

EIP-1283は、コンスタンティノープルに実装されるEIPの一つです。コントラクトを実行するEVMのOPCODEのSSTOREを使用する際、連続したオペレーションの場合、それに比例してガスコストが非常に高くなるという問題を改善するというものでした。

今回、スマートコントラクト監査会社のChainSecurityによると、Solidityでコントラクトを書く際にaddress.transfer(…) またはaddress.send(…) を使用するとリエントリー攻撃の脆弱性となる可能性が指摘されています。

出典:Chainsecurity-Medium blog-

リエントリー攻撃(Re-entrancy attack)は簡単に説明すると、「送金する前の段階でハッカーに割り込まれてETHを盗まれる」という攻撃です。このリエントリー攻撃は、2016年にイーサリアムクラシック誕生のきっかけとなったThe DAOハックの原因です。また、イーサリアムのコントラクトの自由度が高い代わりにコントラクトの監査を慎重に行わないといけないという教訓を与えました。

The DAOハックとイーサリアムクラシックの歴史

The DAOはイーサリアムベースのプロジェクトで、2016年5月に約50億円の資金調達を黎明期以前に行っています。同プロジェクトのコントラクトにリエントリー攻撃を可能とする脆弱性があり、同年6月リエントリー攻撃によって合計1,200万ETHが悪意のあるハッカーDark DAOとイーサリアムを援助する正義のホワイトハッカーのWhiteHat Groupにより不正に送金。その後WhiteHat Groupは返金を行っています。

イーサリアムのコントラクトはデプロイしたら誰でも確認できる透明性と変更できないという不変性により、非中央集権のスマートコントラクトモデルを実現しているものの、複雑な仕様を1つのコントラクトで実装していたことなども原因で不変条件を変更するフォークを行いました。

コンスタンティノープル実装が延期、遅れが決定した理由とは?!
出典:Ethereum Blog

この不変条件の変更はイーサリアムの非中央集権モデルを揺るがすものだとし、破棄されたイーサリアムチェーンをイーサリアムクラシックとして支持したものが現在のETCです。

延期後のコンスタンティノープル予定とユーザーガイド

イーサリアムファンデーションは公式にコンスタンティノープルの延期を発表し、今週の金曜日に行われるコアデベロッパー会議で次のブロックターゲットを決定します。

すでにこの発表がされてからイーサリアムのメジャークライアントであるGethはホットフィックス版となるGeth v1.8.21がリリースされているので、取引所、ソロマイナー、Ethereum Wallet、ノードを建てているユーザーはアップデートを行って下さい。Parityもv2.2.7をリリースしており、アップデートするかv2.2.4へダウングレードを行う必要があります。

必ず、元のコンスタンティノープルハードフォークのブロックナンバー#7,080,000前までにアップデートが必要です。特に企業などのソロマイナーの場合、アップデートを行わないとフォークしてしまい、マイニングしたETHは現在のビザンチウムチェーンでは無効となるので注意が必要です。

◆Geth
https://github.com/ethereum/go-ethereum/releases/tag/v1.8.21
◆Parity
https://github.com/paritytech/parity-ethereum/releases/tag/v2.2.7

ハードウェアウォレットや取引所を使用しているユーザー、MetamaskやMyEtherWalletなどのウェブウォレット、コントラクト保有者は特に行うことはありません。

結論と考察

今回の可能性のある脆弱性の発見は問題であり、結果としてChainSecurity発表からETH価格が12ドル下落する形となりました。ですが、EIP-1283がコンスタンティノープルで実装された際には、特定のコントラクトがリエントリー攻撃を受ける可能性がありましたが、イーサリアムのコントラクト監査会社によって未然に防ぐことができました

イーサリアムがOSSで開発している利点は、その巨大なエコシステムによりコード監査されることで、このような致命的な脆弱性を未然に防ぐまたは発見することにあります。つまり、エコシステムが大きければ大きいほどセキュリティ監査能力が高いとも言えるでしょう。

対して、Vitalik氏などのリードデベロッパーたちはETH1.xや2.0の開発やリサーチにばかり集中することで、今回のようなコンスタンティノープルの延期が起きたといっても過言ではありません。

コンスタンティノープル実装が延期、遅れが決定した理由とは?!出典:Trading View

イーサリアム(ETH)のリアルタイム価格・チャートを確認>>

関連:イーサリアムのコンスタンティノープル実装迫る!ETHホルダーが知っておくべき事とは?(2019年1月11日公開)

▼墨汁サロンでは日々価格分析と最新ニュース、価格に影響する技術についての相場影響などの考え方などを詳しく解説しています。

墨汁うまいと学ぶ仮想通貨の世界 DMMサロン

おすすめの記事