先週のCore Devs Meetingにて、イーサリアムの大型ネットワークアップデート「コンスタンチノープル」が実施されるブロックが728万ブロック目(2月27日)に決定されました。
コンスタンチノープルを巡っては、今月15日にスマートコントラクトの監査を行うChainSecurity社がEIP 1283にリエントランシー攻撃に対する脆弱性があることを指摘したことで、当初の実施予定日の前日となる16日に延期が発表されていました。
また、先週のCore Devs Meetingではもう1つ重要なことが決定されました。
それは、5つのEIP(Ethereum Improvement Proposal)を含んだままのコンスタンチノープルと、EIP 1283を除外したコンスタンチノープルの2つのハードフォークを同時に行うということです。
この決定はイーサリアムの開発者であるPéter Szilágyi氏から提案されました。
なぜ脆弱性の見つかったオリジナルのコンスタンチノープルとEIP 1283を除外したアップデートの双方をを行う必要があるかというと、テストネットおよびプライベートネットは17日の時点でオリジナルのコンスタンチノープルを実施しているからです。
よって、メインネットが2つのコンスタンチノープルを同時に行うことで、これら2つのネットはコンスタンチノープルを実施する前のブロックまで*ロールバックすることなくメインネットと同期することができます。
つまり、コンスタンチノープルを実施していないメインネットがいきなりEIP 1283を除外したコンスタンチノープルを実施するとした場合、テストネットとプライベートネットは、コンスタンチノープルを実施する前のブロックまでロールバックしてからEIP 1283を除外したコンスタンチノープルを実施しなければなりません(第1図)。
*ロールバック:ネットワークの更新や障害があったときに、その前の時点まで戻ること。
【第1図:EIP 1283を除外したコンスタンチノープのみを実施する場合】
出所:BlockX Labsより作成
こうなると、不可逆性を強みとするブロックチェーンの特徴がくつがえされてしまいます。
もちろん、メインネットに悪影響はないものの、これではテストネットおよびプライベートネットが、メインネットの「真の写し鏡」として認識されなくなってしまいます。
そこで、メインネットの728万ブロック目に2つのコンスタンチノープルを同時に実施することで、テストネットおよびプライベートネットをロールバックさせることなくメインネットと同期させるという解決法の採用が決定されました。
【第2図:オリジナルのコンスタンチノープルとEIP 1283を除外したコンスタンチノープルを実施する場合】
出所:BlockX Labsより作成
つまり、メインネットが728万ブロック目に2つのコンスタンチノープルを実施する際、テストネットおよびプライベートネットは2つ目のEIP 1283を除外したコンスタンチノープルだけを実施すればよいということです。
余談とはなりますが、一部のイーサリアム開発者は、この2つ目のコンスタンチノープルを「コンスタンチノープ(ConstantiNOPE)」と暫定的に呼んでいます(現段階で公式な呼称ではないので注意)。
【参照記事】
BlockX Labs:What the Fork?! A Look At Ethereum’s Constantinople Fork thus far
<本記事ご協力>
ビットコインなどの仮想通貨をまとめたメディア『FinAlt』が提供
※本記事の意見や予測は、筆者の個人的な見解であり、金融商品の売買を推奨を行うものではありません。
投資にあたっての最終決定はご自身の判断でお願いします。