Signal
📡 Signal|Reth の state root 不具合、L2 と BNB Chain が相次ぎ対応
Reth の state root の計算に不具合。Base と Mantle が修正版を出し、BNB Chain も対応中。1つの実装を共有する深さが見えた。

Ethereum 系の実行クライアント Reth に、ブロックの state root を誤って計算しうる不具合があり、11月4日から6日にかけて Base、Mantle、BNB Chain が相次いで対応を公表した。修正は開発元 Paradigm のリポジトリに11月3日に取り込まれ、11月5日の Reth v2.10.0 に入っている。
Base と Mantle は利用者への影響を否定し、BNB Chain は利用者の操作は不要としている。それでも注目に値するのは、1つのソフトウェアの部品が多くのチェーンの共通の土台になっている現実を、この件が見せたからだ。
何が壊れていたのか
Mantle の修正版の説明が最も具体的だ。state root を差分だけで計算し直す処理で、新しく挿入された葉の情報を読み飛ばす場合があり、誤った値が出る。不具合自体は過去の変更 (reth#15336) から残っていたものだという。修正の PR の説明は短く、木を走査する処理の境界の判定を締めたとだけ書いている。
誤った値が出たときの症状は、ノードの役割で変わる。ブロックを作るシーケンサーで起きれば、他のノードが拒否するブロックを生む。検証側で起きれば、正しいブロックを拒否してチェーンを追えなくなる。Mantle はコンセンサスの規則は変わらないと説明しており、データの移行も要らない。
チェーンごとに異なる説明
3つのチェーンの公表は、影響の範囲も対応の段階も違う。
| チェーン | 公表の内容 | 対応 |
|---|---|---|
| Base | 11月4日に発見。一部の場合にノードが誤った state root を計算しうる | v1.5.3 を11月5日に公開し、更新を要請 |
| Mantle | ネットワークは止まらず稼働を続けた。利用者の資産は安全 | mantle-v1.6.3 を11月5日に公開。全ノードで更新が必須 |
| BNB Chain | opBNB は op-reth を使っておらず、BSC-Reth への影響は限定的 | 修正を準備中。利用者の操作は不要 |
Reth 本体の v2.10.0 は更新の優先度を高に置くが、リリースノートでこの修正は「Engine & Trie」の項の1行にとどまる。開発元のセキュリティ情報は確認できておらず、影響の全体像は各チェーンの説明の範囲でしか語れない。
周辺にも波及した。crypto.news によると、LayerZero は影響するネットワークの一部でオフチェーンの基盤を一時的に止め、クロスチェーンのメッセージに遅れが出た。同じ報道はセキュリティ企業 Blockaid の見方として、悪用が確認された事案ではなく計算の正しさの不具合で、資金の損失は知られていないと伝えている。
実装の多様性は誰を守るのか
Ethereum 本体は複数のクライアントが並走しており、1つの実装に不具合が出ても他が正しいチェーンを続けられる。この仕組みが、今回のような不具合への保険になってきた。
L2 では事情が変わる。多くのチェーンは同じ系統のクライアントを土台にし、ブロックを作るシーケンサーも少数に限られる。部品を共有すれば開発は速くなるが、不具合も同時に届く。Base と Mantle が同じ PR を取り込み、Morph も同じ修正を入れた版を出した今回の動きは、その共有の深さをそのまま示している。
BNB Chain の説明も同じ問題の裏返しだ。opBNB が影響を免れたのは別の実装を使っているからで、BSC 側でも Reth を使う範囲に影響は絞られる。どの実装をどの役割で使っているかが、不具合の日にそのまま被害の範囲を決める。
次に見るもの
確認先は3つある。Base のステータスページは対応の期間を11月7日16時19分 (UTC) までとしており、更新の呼びかけが閉じるかを見る。BNB Chain の公式発表では BSC-Reth の修正版の公開を待つ。Reth の GitHub のセキュリティ情報のページでは、影響する版の範囲を開発元が示すかどうかが要点になる。
ことば
- state root — チェーンのすべての残高や状態を1つの値に要約したもの。ブロックに書き込まれ、ノード同士が同じ状態にいるかを確かめる基準になる。
- Reth — Rust で書かれた Ethereum の実行クライアントで、Paradigm が開発する。OP Stack 系の L2 向けの op-reth など、多くのチェーンが土台に使っている。
- シーケンサー — L2 で取引を並べてブロックを作る役割のノード。少数で運用されることが多いので、ここで不具合が起きるとチェーン全体の動きに響きやすい。
🔗 一次ソース
- Mantle 公式 X の告知 (11月6日)
- BNB Chain 公式 X の告知 (11月6日)
mantle-v1.6.3 のリリースノート — 不具合の仕組み、ノードごとの症状、更新の優先度GitHub
Reth の修正 PR #28264 (11月3日に統合)GitHub
Reth v2.10.0 のリリースノート (11月5日)GitHub
Base v1.5.3 のリリースノート (11月5日)GitHub
- Base のステータスページ — 不具合の発見日と対応の期間base-l2.statuspage.io
morph-reth v1.4.1 のリリースノートGitHub
crypto.news — LayerZero の一時停止と Blockaid の見方crypto.news