Sui Foundationが日曜に発表した調査報告によると、最新のv1.72リリースにおける新たなアドレス残高機能と既存のガス課金およびコンセンサスロジックの相互作用が原因で、48時間の間にメインネットが3度停止したことが明らかになった。
調査報告では、5月28日と29日に発生した3回の停止は、v1.72で導入された新機能がLayer-1ブロックチェーンのガス課金ロジックの脆弱性を露呈させたことで生じたと特定された。各修正は次の障害を引き起こすか、それを顕在化させていた。
最初の停止は現地時間木曜日午前7時頃に発生し、約7時間継続した。
財団によれば、この問題は新しいアドレス残高機能と従来のコインオブジェクトを混在させた取引に対し、ネットワークのガス課金方法に希少な不具合があったためである。資金不足により取引がキャンセルされた際も、ガス消費処理は同じ資金を消費しようとし、その結果、検証者はアンダーフローエラーでクラッシュした。
コインオブジェクトはデジタル紙幣に例えられ、ユーザーのSUI残高は単一の数値ではなく、IDを持つ複数の「紙幣」の集まりとして管理される。それぞれのコインオブジェクトは転送や統合が可能であり、ウォレットには例えば60、30、10SUIの3つのコインオブジェクトで100SUIを保持していることもある。支払い時は必要な組み合わせの「紙幣」を使用する仕組みである。
検証者とは、ネットワークを稼働し取引を処理するとともに、有効な取引の投票を行い、ブロックチェーンの整合性を維持するコンピュータおよびその運営者を指す。
開発コアチームは現地時間午後1時30分頃に「暫定的な修正」を実施し、最も一般的なバグの形式に対応した。この修正により「低確率ながら停止を招く可能性のある既知の問題」は残ったが、より堅牢な修正を開発するまでの間に迅速にメインネットを復旧させるためリスクを受け入れた。
しかしこの既知のリスクは翌朝に顕在化し、金曜午前5時頃に2回目の停止が発生した。取引の一部に存在した同種のバグが資金不足のエラーを他のキャンセル理由に置き換え、暫定パッチの効果を回避したためである。コアチームはさらなる堅牢な修正を完成させ、検証者は現地時間午前9時40分頃までにこれを適用した。
3度目の停止は2度目の停止から連鎖的に発生したものである。堅牢な修正の適用後の検証者再起動時に、ネットワークのオンチェーン乱数生成を管理するプロトコルへの検証者の参加率が所定の閾値を下回り、乱数生成が設計通り無効化された。
(オンチェーン乱数は、全検証者が合意するものの誰も予測や改ざんが不可能な数値を生成するプロトコルであり、宝くじや特定のゲーム、ランダムNFTミントなど確率に依存するアプリケーション運用には不可欠である。)
加えて、潜在的なバグにより無効化状態がディスクに保存されず、次回の再起動時に検証者が乱数機能停止を認識できなかったため、乱数依存の取引が停止キューに蓄積され、次のエポック変更が約6時間にわたり停止した。
財団は、停止期間中もユーザー資金にリスクは無く、確定済み取引が取り消されることはなかったと明言している。
CoinDeskのデータによると、連続停止の期間中にSUIは約8%下落し0.90ドルに達した。月曜時点ではほぼ0.90ドルで推移し、週間ベースでは約19%の下落となっている。
これらの出来事は、2023年のメインネットローンチ以降でSuiにおける3度目の大規模な信頼性障害であり、2024年11月の2時間に及ぶ取引スケジューリングバグや2026年1月の6時間に及ぶコンセンサス乖離に続く事例となった。