- 二つの障害は、失敗したトランザクションが残高エラーを引き起こすことでバリデーターがクラッシュするガス充填バグに起因しました。
- 別のランダムネス状態のバグにより、バリデーターがネットワークエポックを正しく終了できず、3回目の停止が発生しました。
- Suiは、ユーザーの資金には影響がなかったと述べ、修正を実施し、ネットワークの耐障害性を向上させるための安全対策を追加しました。
Sui財団は日曜日、詳細に、木曜日から金曜日にかけてネットワーク運用を妨害したメインネットの3つの障害の原因を明らかにし、これらの事象はv1.72ソフトウェアアップグレードで導入された2つの別々のバグに起因すると追跡した。障害は、バリデーターが新しいアドレス残高機能と別のランダムネスステートの問題に対処しようとしている際に発生した。財団によると、ユーザーの資金は危険にさらされておらず、回復中に確定されたトランザクションは取り消されなかった。
ガス課金バグが最初の2つの障害を引き起こしました
最初の障害は木曜日のPT朝7時頃に発生し、PT午後1時30分頃まで続きました。しかし、バリデーターが一時的な対策を適用した後、金曜日の朝に2回目の停止が発生しました。
Sui Foundationによると、両方の障害は、ガス課金と新しく導入されたアドレス残高機能に関連する不具合が原因でした。同じ資金を競合して使用するトランザクションがInsufficientFundsForWithdrawエラーを引き起こした際に、この問題が発生しました。
トランザクションはキャンセルされましたが、その後のガス処理ステップで同じ残高を再度使用しようとしたため、バリデーターが決済中にマイナス残高に遭遇し、ノードがクラッシュしました。
迅速に運用を復旧させるため、Suiコアチームは木曜日に一時的な対策を提案しました。ただし、チームはその一時的対策にも既知の低確率のリスクが残っていることを認めました。
その結果、ネットワークは金曜日の朝に同じ問題の変種に遭遇し、バリデーターがより包括的な修正を実装する前に2回目の障害が発生しました。
ランダムネスバグにより3回目の停止が発生
二回目の回復後、ネットワークは金曜日の午後に予定されていた次のエポック変更まで通常に動作しました。その時点で、別のバグが三回目の障害を引き起こしました。
財団によると、バリデーターは金曜日のパッチのインストールを再開しましたが、分散鍵生成の参加要件を満たすことができませんでした。設計通り、このプロセスによりエポックのランダムネスが無効化されました。
ただし、潜在的なバグにより、バリデーターが再起動後にその状態を維持できませんでした。その結果、ランダムネスに依存するトランザクションが解決されず、エポックの終了を妨げるキューの蓄積が発生しました。
障害は金曜日の太平洋標準時で約13:30から19:20まで続きました。
ファウンデーションが修正点と教訓を示す
事件の後、バリデーターはガス課金とランダムネス状態のバグを修正しました。また、財団は、必要に応じてバリデーターが停滞したエポックを強制的に終了できる仕組みを導入しました。
報告書は、ガス課金ロジック、エポック終了時の耐障害性、および障害の封じ込めといった改善点にも言及しました。さらに、Sui財団は、障害発生中にバリデーターログ、本番データ、ネットワークメトリクスを分析することでAIエージェントがエンジニアによる事象の診断を迅速化したと述べました。


