イーサリアムベルリンのETHへの影響は? 同期できないバグの原因
どうも墨汁うまい(@bokujyuumai)です。
イーサリアムは2021年初の大型アップデート「ベルリンハードフォーク」を実装しました。この実装ではイーサリアムのマイナーアップデートとなっていますが、イーサリアムクライアントOpenEthereum(元Parity)に不具合があり、一部サービスに影響が出ました。
本稿ではイーサリアムのベルリンアップデートのトラブルとETHにどのような影響があるのかについて解説を行います。
関連記事:実装はいつ?イーサリアム大型アップデート”ベルリン(Berlin)”実装がほとんど完了
ベルリンアップデートとは?
イーサリアムのベルリンハードフォークとは、ブロックチェーン最大のエコシステムを持つイーサリアムの参加者全員が同意の上で実装する新たな「コンセンサスルール」を導入するアップデートです。
今回のベルリンは、イーサリアムの処理速度を向上させるなどの大きなアップデートではなく、イーサリアムを利用しているプロジェクトのコントラクトを実行するための演算を行うEVMの調整がメインとなっています。
そのためDeFi(分散型金融)やNFTユーザーなどは直接的な恩恵を受けるわけではなく、開発者側のためのアップデートということです。ユーザーや投資家が大きな影響を受けるのは7月に予定されているロンドンハードフォークであり、イーサリアムのビッグイベントの一つであると言えるでしょう。
関連記事:【墨汁速報】イーサリアム手数料モデル変更EIP-1559 7月にロンドンハードフォークで実装か?
イーサリアムクライアントとOpenEthereum
ベルリンは#12,244,00ブロックで実装されました。イーサリアムを利用するためにクライアント(ソフトウェア)は主にイーサリアムファンデーションが開発するGethとPolkadotのParityが開発していたOpenEthereum、そのほかにもBesuやNethermindといった複数の選択肢があり、開発者やサービス提供者は自由に選択することができます。
今回トラブルがあったのはGethの次に大きなネットワークシェアを持つOpenEthereumです。ベルリン実装から294ブロック後、つまり約1時間後に最新のブロックを同期できないという問題が浮上しました。
このトラブルはOpenEthereumのみに起こり、OpenEthereumをクライアントとして使用していたEtherscanなどのサービスで最新のネットワーク情報が取得できないという影響が出ました。
ブロック同期できない原因
今回の原因は、ベルリンでは実装しないものの今後実装を予定しているBLSプリコンパイルコントラクトのコードを残していたことが原因となっています。どういうことかというと、今後実装されるために用意していたコードを将来的に有効にできるようにしていたということです。
実際に実装する前にテストを行うロプステンテストネットでのバグテストではこの不具合は見つからず、今回たまたまプリコンパイルコントラクトを呼び出してしまったことがトリガーとなるという非常に珍しいトラブルでした。
問題は修正済み
既にOpenEthereumはこのバグを修正しており、ベルリン実装後の約5時間後に新しいバージョンが公開されています。
上記で見たようにこの問題はOpenEthereum固有の問題だったため、イーサリアムネットワーク自体には影響を及ぼしておらず、送金なども問題なく行えていました。
これはクライアントが複数ある利点であり、イーサリアムの強みであると言えるでしょう。2021年は手数料モデルの変更となるロンドンハードフォークを実装し、マイニングを終了してETH2と統合する「マージ」が年内に予定されており、イーサリアムの大きな変革の年となるでしょう。
【こんな記事も読まれています】
・【墨汁速報】イーサリアムマイニングを終了しPoS移行のETH2統合に開発者同意
・アルトコイン投資ブーム再来?イーサリアム(ETH)が格付けでビットコイン(BTC)と同等の評価に
・【墨汁速報】米コインベース イーサリアム2.0のステーキングサービスを開始
▼墨汁サロンではDeFiの詳しい仕組み、イーサリアム2.0の技術や最新動向、ステーキング検証、テクニカル分析理論、最新ファンダメンタルなどをより詳しく解説しています。
参照元:CoinChoice