Polygon、PoSネットワークのセキュリティ問題を修正した Austin と Kyoto のハードフォークを実施
重要ポイント
- •Kyoto は Heimdall を v0.11.0 に更新し、一定のネスト閾値を超えるトランザクションをコンセンサス前に拒否する。
- •Austin は Bor を修正し、state-sync gas にブロック単位の厳格な上限を設け、TxDependency フィールドを wire format から削除した。
- •Polygon は、これらの脆弱性はいずれもメインネットで悪用される前に修正済みだったと述べた。
- •すべてのノードは Bor v2.10.0 を、バリデーターとフルノードは Heimdall 0.11.0 を実行する必要があり、更新しないと canonical chain から外れる。
- •アップグレードは単純なバイナリ更新のみで、state migration、genesis change、full resync は不要。

Polygon Labs は、proof-of-stake(PoS)ネットワークに存在した複数のセキュリティ問題を修正する2つのハードフォークを静かにリリースした。
このレイヤー2ネットワークはその後、フォーラム投稿で詳細を共有した。すべてのノード運営者はアップグレードしなければ、ネットワークのコンセンサスから外される。
Austin フォークはノードが TxDependency フィールドを送信するのを停止
最も深刻なバグは、Polygon のバリデーターを調整するソフトウェアである Heimdall にあった。
Parvez03 のフォーラム投稿によると、Heimdall は各トランザクションの内容を google.protobuf.Any と呼ばれるラッパーの中にまとめている。
ラッパーは、箱の中にさらに箱を入れるように、別のラッパーの内側に置くことができる。ただしこの場合、何層まで深くできるかに上限がなかった。
攻撃者は、ほとんどコストをかけずに、そうした層を重ねた単一のトランザクションを作成でき、バリデーターにそれを展開する計算資源を無駄遣いさせることができた。
Polygon はこの欠陥を「バリデーター全体に対して、高コストで相関した作業を許可なく強制できる手段」と表現した。この修正が重要なのは、バリデーターの調整ソフトウェアがネットワークの重要経路上にあるためだ。不要な処理を強制されると、資金が直接危険にさらされなくても、コンセンサスの信頼性に影響する可能性がある。
Kyoto ハードフォークにより、Heimdall は v0.11.0 に更新された。
「Kyoto はバイトレベルの事前スキャンを追加し、ネストがしきい値を超えたトランザクションを拒否する。この判定は、mempool 受け入れ(CheckTx)とコンセンサス経路(ProcessProposal)の両方で同一に適用される」と投稿には記されていた。
Polygon は2回チェックする。トランザクションが到着したときと、バリデーターがブロックを構築するときだ。
2つ目のハードフォークである Austin は、Polygon の実行クライアントである Bor に焦点を当てた。これは2つのサービス拒否(DoS)経路を修正した。
1つは state-sync イベントに関するものだった。これは L1 から L2 へのブリッジ入金を運ぶ処理である。これらのイベントは、通常のトランザクションと同様にコントラクトコードと precompile を実行する。ただし、消費される gas 量にブロックごとの上限はなかった。
Austin フォークでは、state-sync gas に対してブロック単位の厳格な上限が追加された。
Polygon はまた、TxDependency フィールドのサイズ上限を設定していなかった。バリデーターはそこに巨大なデータを入れることで、そのブロックを読み込んだすべてのノードをクラッシュさせることができた。しかも、そのブロックの他の部分には異常が見られなかった。
Austin はこのフィールドを wire format から完全に削除する。
Kyoto フォークは Heimdall 高さ 51,533,000 で有効化
Polygon は、メインネットでこれらのバグが悪用されたことはなく、フォークが有効化される前にすべて修正したと述べた。
Austin フォークはメインネットの Bor block 91,949,700 で有効化され、Kyoto フォークは Heimdall 高さ 51,533,000 で有効化された。
すべてのノードには Bor v2.10.0 が必要だ。バリデーターとフルノードには Heimdall version 0.11.0 も必要となる。古いソフトウェアを実行しているノードは、すでに canonical chain から分岐している。
これらの修正は単純なバイナリアップグレードであり、state migration、genesis change、full resync は不要だ。
POL は $0.09 で取引され、過去24時間で約9.3%下落した。CoinGecko によると、このトークンは過去30日では25.8%上昇し、上昇圏にある。
7月には、Heimdall V2 mainnet が約1時間停止したと、過去の Cryptopolitan の報道で伝えられている。