イーサリアムの実行クライアント「Reth」で、特定の取引がブロックチェーンの状態計算に誤りを生じさせる可能性のある不具合が見つかり、Reth、Optimism、Base、Tempoは11月5日前後に修正版を公開しました。Paradigmの最高技術責任者(CTO)、Georgios Konstantopoulos氏は、関連ネットワークの出金システムは影響を受けていないと説明しています。Baseもユーザーへの影響はないとしていますが、インフラ運営者には更新の適用が求められています。
Rethの状態ルート計算に特定条件で不具合
問題は、Rethの旧バージョンが特定のスマートコントラクトのストレージ構成を処理する際、状態ルートの計算を誤る可能性があったことです。状態ルートは、口座残高やスマートコントラクトのデータを含むブロックチェーンの現在の状態を示す暗号学的な指標です。計算結果に誤りがあると、ノード間でブロックの有効性について合意できず、取引処理やネットワークの同期に支障が出るおそれがあります。
Konstantopoulos氏によると、不具合を引き起こすには、攻撃者が特定の取引を組み立てる必要があります。Rethのブロック構築ソフトを低性能なハードウェア上で使う環境や、OptimismのOP Stackを採用するネットワークでは、影響を受ける計算経路が使われる可能性があります。このため、問題はイーサリアム本体のインフラに限られません。
Reth、Optimism、Base、Tempoが修正版を公開
不具合はTempoの開発チームがファジングテストで発見しました。ファジングは、通常のテストでは見つけにくい問題を探すため、ソフトウェアに異常なデータや想定外の入力を与える手法です。ParadigmはReth 2.10.0を、OptimismはOP Reth v2.8.1を、Baseは1.5.3をそれぞれ公開しました。Konstantopoulos氏は、Tempoも修正を完了したと述べています。
Rethはノード運営者に対し、今回の更新を優先度の高い対応として位置づけています。ブロック構築者も更新の推奨対象です。複数のネットワークが共通または関連する実行ソフトウェアに依存しているため、基盤コードの不具合が複数のチェーンに及ぶ可能性があります。今回の一斉対応は、共有ソフトウェアに関する脆弱性の修正にはプロジェクト間の連携が必要になることも示しました。
Baseは状態ルートを独自検証、LayerZeroは一部経路を停止
Baseは、証明システムで独自実装を使って状態ルートを検証していると説明しました。チームが現在の状態ルートを再計算して照合した結果、正しいことを確認し、ユーザーへの影響はないとしています。出金システムも今回の計算不具合の影響を受けていないとのことです。エコシステム内のブリッジは通常、取引レシートのルートやマルチシグによる承認に依存しており、今回影響を受けた状態ルート計算には依存していないとしています。
Base 1.5.3には、無効な状態ルートを検出した際にバリデーターが停止するのを防ぐ修正も含まれています。ノード運営者には更新が推奨されていますが、Baseはノードの再同期や追加の復旧措置は不要と説明しました。
11月5日、Frax Financeは、クロスチェーンメッセージングプロトコルのLayerZeroが状況を評価する間、一部の送金経路を一時停止したと明らかにしました。Fraxによると、資産とスマートコントラクトは正常に稼働しており、ユーザー資金も安全です。現時点で、LayerZeroのブリッジコントラクトがRethの不具合の影響を受けたことを示す情報はありません。今回の制限は、共有インフラのリスクを確認するための予防措置です。
状態ルートの不具合を利用した資金流出は、現時点で確認されていません。修正版は公開済みですが、独立して運営されるノードへの更新適用状況は個別に確認する必要があります。一時停止したサービスについても、通常運用への復帰時期は引き続き評価されています。