Sui 兩日三度當機追溯至 v1.72 升級 bug,明知有風險仍上線

Elponcrab
分享
Sui 兩日三度當機追溯至 v1.72 升級 bug,明知有風險仍上線

Sui 基金會於 5/31 發布事後檢討報告,說明 5/28、5/29 主網兩日內三度當機的完整因果關係。三次當機都可追溯至 v1.72 版本升級引入的兩個獨立 bug,其中一項當機甚至發生在團隊已知該修補程式仍帶有當機風險、但仍決定上線換取網路恢復的情境下。

三次中斷依時間順序為 5/28 上午 7 時至下午 1 時 30 分(太平洋時間,下同)、5/29 上午 5 時至 8 時 30 分、5/29 下午 1 時 30 分至晚間 7 時 20 分。基金會聲明三次當機過程中使用者資金未受威脅,網路恢復時亦未撤銷任何已完成結算的交易。

v1.72 引入的 gas 計費漏洞撐起前兩次當機

v1.72 版本升級的核心改動是引入「位址餘額」(address balances)機制,讓使用者得以不依賴 coin object 直接從位址支付 gas。問題出在這套新邏輯與 gas 計費的互動:當混合 gas 交易餘額不足時會觸發 InsufficientFundsForWithdraw 例外,但 gas 結算階段仍會嘗試扣款,導致零餘額被打成負數、引發系統崩潰。

廣告 - 內文未完請往下捲動

5/28 中午約 12 時,Sui 核心團隊部署第一版臨時修補,繞過此類例外場景下的 gas 結算流程,網路在下午 1 時 30 分恢復。然而隔日 5/29 上午,另一條同樣會被掩蓋的取消交易路徑出現新版本的 InsufficientFundsForWithdraw 條件,繞過了臨時修補,網路再次當機。核心團隊於上午 8 時部署涵蓋更多情境的完整修補後,於 9 時 40 分恢復。

第三次當機:明知有風險的 DKG 修補仍上線

真正的問題出在第三次當機。為了配合 5/29 上午的修補上線,驗證者需重啟,但這次重啟過程中分散式金鑰生成(DKG)參與量低於門檻,使隨機性服務暫時失效,這個失敗狀態卻沒有寫入磁碟。後續每一輪重啟的驗證者都不知道 DKG 已失敗,依賴隨機性的交易被無限期擱置、Epoch 收尾邏輯也卡住。

Sui 基金會在報告中坦言,這項導致第三次當機的修補上線時,團隊已知它帶有當機風險,但為了優先恢復服務、選擇接受該風險。下午 1 時 30 分團隊再部署第三版修補,將 DKG 狀態寫入磁碟、並新增 Epoch 強制收尾機制,於晚間 7 時 20 分恢復網路。

AI 代理協助加速診斷,後續強化四大方向

事後報告特別點名 AI 代理(AI agents)在本週故障診斷中扮演實質角色。基金會表示,這些可以存取生產環境狀態、互動查詢驗證者日誌、檢查叢集狀態與彙整指標的 AI 代理,讓工程團隊整體的偵錯效率大幅提升,並讓更多人能即時參與排查。

基金會列出四項後續強化重點:擴大 Epoch 收尾階段的安全模式回退路徑;把 gas 計費邏輯提升到與 Move 虛擬機、Mysticeti 共識同等的程式品質標準,包括模組化與不變式測試;持續投資 AI 工具於生產環境除錯能力;以及發展失敗隔離機制,讓驗證者在遇到問題交易時能跳過或重啟、而非全網停機。

風險提示

加密貨幣投資具有高度風險,其價格可能波動劇烈,您可能損失全部本金。請謹慎評估風險。