年度級別的「鏈上慘案」,也是一個非常經典的多簽(Multisig)機制教學案例。你的疑惑非常有道理:「明明是多簽錢包,為什麼一個路人(
@chud_eth)可以幫忙執行合約交互?」
這其實涉及到以太坊(和 EVM 兼容鏈)多簽錢包的一個底層邏輯:「簽署」和「執行」是分離的。
我來幫你拆解一下
@chud_eth 是怎麼完成這波「熱心助人」的操作:
1. 核心誤區:以為「多簽」等於「只有團隊能按按鈕」
大家通常認為多簽是這樣的:
團隊幾個人坐在一起,同時點擊「發送」,交易才會出去。
但在區塊鏈底層邏輯(以 Gnosis Safe 為例)是這樣的:
擬定交易: 團隊創建了一個數據包:「把 Cap(上限)改成 1B」。
收集簽名: 成員 A 簽名、成員 B 簽名、成員 C 簽名...
存儲簽名: 這些簽名通常會上傳到一個公開或半公開的服務器(Gnosis Safe Service)方便其他隊友看到。
執行(Execution): 這是關鍵! 一旦湊齊了足夠數量的簽名(比如 4/4),這筆交易就變成了一個「生效的支票」。
只要這張支票上有足夠的簽名,任何人——是你、是我、還是
@chud_eth——都可以拿着這張支票去區塊鏈上「兌現」(廣播交易)。
2.
@chud_eth 的騷操作:撿到了「簽好的空白支票」
這個事件的戲劇性在於團隊犯了一個低級錯誤:
正確做法: 如果你需要 4 個人簽名,你應該先簽 3 個,等到 11:30 時間到了,最後一個人再簽名並廣播。這樣在 11:30 之前,這筆交易是無效的。
MegaETH 團隊的做法: 他們為了省事,提前把 4 個人的名都簽好了。
這時候,雖然團隊還沒點「發送」,但這個包含「更改上限為 1B + 4 個有效簽名」的數據包已經存在了 Gnosis 的後端或者某個公開的地方。
@chud_eth 做了什麼? 他是個懂技術的「科學家」(MEV/Bot玩家),他在監控鏈上數據或多簽隊列時發現:
「咦?這裡有一筆 MegaETH 的交易,簽名已經湊齊了(4/4),隨時可以執行!」
於是他做了一個「好人」,他自己掏了 Gas 費,調用了 MegaETH 多簽合約裡的 execTransaction 函數。合約一看:「簽名是團隊的沒錯,數量也夠」,於是交易成功執行。