日前 Sui 上最大去中心化交易所 Cetus 被駭 2.2 億美元,其中約 6000 萬美元已被跨鏈轉移至以太坊。Amber Group 的安全研究員在推特上分享問題出自 Cetus 協議的漏洞,與 MOVE 語言引以為傲的安全性沒有太大關係。此外 Mysten Labs 的產品長 Adeniyi 也表示已從驗證者端軟禁駭客的 1.6 億美元。本文帶你從事件始末到去中心化的辯證,一次瞭解。

(水家人流下眼淚!Sui 主要 DEX Cetus 丟失超過 2.6 億美元,蒸發 83% TVL)

漏洞出在 Cetus 本身的編碼問題

Amber Group 的安全研究員 @neeksec 在推特上表示已找出 Cetus 出事的主因,他指出:「該漏洞的根本原因,源自於 get_amount_by_liquidity 函數中從 u256 到 u64 的型別轉換。」不過隨後他修正,表示真正的問題應出在「get_delta_a 函數的溢出檢查失效」。

get_delta_a 函數的作用是計算在某個價格範圍內增加指定數量的流動性時所需的代幣 A 數量。以 Uniswap v3 的計算為例,流動性首先乘以價格範圍 delta。所得乘積需要左移 64 位元。但如果流動性太大,乘積超過 192 位,則高 64 位會溢出並被截斷。為了防止這種情況,checked_shlw 在執行移位之前執行溢出檢查。

該案例中關鍵問題是 checked_shlw 函數的溢出檢查有編碼錯誤,未能阻止無效的大流動性值。攻擊者精心設計了一個流動性值,導致 checked_shlw 傳回一個較小的值。在隨後的 div_round 運算利用向上取整數的機制,div_round 回傳了 1,最終所需的代幣 A 數量只有 1。

筆者補充:

換句話說,攻擊者先聲稱要提供大量流動性,這筆流動在函數中的所得乘積超過系統設定,就像計算機只能顯示前十位數,但最後乘出來的數字到十一位數一樣。一般來說這種超過設定的數值會溢出並被截斷,在執行移位前要先進行溢出檢查。但就是在溢出檢查的部分出現錯誤,攻擊者利用該漏洞,僅需極少的代幣,就能提出巨額資金。因此該問題與 suiMOVE 語言聲稱的物件導向安全性沒有關聯性。

Sui 如何凍結資金?是否代表中心化?

事發之後,Mysten Labs 產品長 Adeniyi 馬上在直播中表示被盜的 2.2 億美元中已有 1.6 億美元被凍結。對 Cetus 來說可能算是個好消息,但也令人質疑,此舉是否違反去中心化的原則?不過要先釐清的是,去中心化不是一個非黑即白的二元問題。以太坊初期也曾有約 14% 供應量被駭,因而投票通過硬分岔提案追回代幣的紀錄。這也是 ETC 以太坊經典的由來。

獨立研究員 Haotian 指出事發當下,駭客將 USDC 部分資產跨鏈到以太坊。但大部分資產仍在 Sui 鏈上,至於是怎麼凍結的,其實就是網路驗證者集體裝瞎。只要黑名單地址提出交易,驗證者就會直接忽略。因此網路紀錄上駭客仍持有這些資產,但形同軟禁,無法將交易打包上鏈。對此 Bucket 協議的 Damien 也表示這種方式雖然較為中心化,但至少是寫在規則內的。

餘弦也表示駭客如果想一條路走到黑,應該還在想要怎麼繞過這種凍結機制。就像是你有張提款卡,但 ATM 都拒絕為你提供服務。

比較值得關注的是 Sui 官方宣稱要將凍結的資金還給流動性池,這可能是比較具爭議的部分。畢竟物件導向的公鏈若可以直接轉移物件的所有權,這會是非常大的爭議。不過 Typus 協議的 Kyrie 也在留言區表示直接轉移應該是不可能的,要駭客願意歸還。做為參考,Cetus 目前正與駭客協商,若駭客返還被盜資產,可以保留約六百萬美元的以太幣,Cetus 不會另外追究。

去中心化是目標,而非起點

至於去中心化與否的議題,Damien 表示去中心化金融是相對的,DeFi 的價值不在於「絕對去中心化」,而是創造了一個開放、無許可的金融實驗場。相比傳統金融,它讓更多平凡背景的人有參與的機會,無論是用戶還是開發者。這纔是它真正吸引我們的地方。適當的中心化能保障用戶、開發者與投資人的安全。他也指出如果你在意的只是黑錢能不能轉出去,那你的動機令人存疑。

去中心化是目標,而非起點。未來如果希望有更多機構進場,他們要的是資金安全,而不是看著兩億美金被洗走還無計可施。說到底,去中心化不是拿來自毀長城的。

同樣關於去中心化與否的議題,Raccoon 認為 Sui 並非以太坊,其底層基因來自 Meta 的 Libra,因此對去中心化程度的要求本就不同。他指出,此類協調行為與中心化資料庫「回滾」仍有差異,只要處理得當、公關跟進、程序透明,仍能被社羣理解與接受。Sui 必須比 BNB Chain 更去中心化,但不需達到完全「世界電腦」等級的信仰型目標。

(Sui/Cetus 生態危機與幣價觀察:從硬傷到韌性,7 大觀點一次看)

這篇文章 從協議漏洞到去中心化辯證:詳解 Cetus 事件始末,MOVE 語言安全性動搖了嗎? 最早出現於 鏈新聞 ABMedia。