根據 Safe 聯合創辦人 Lukas Schor 分享的資訊顯示,近日一起涉及智能合約帳戶的跨鏈部署錯誤,險些導致 100 顆以太幣(ETH)永久丟失,但最終仍以成功救回資金落幕。該事件揭示了舊版智能錢包在多鏈部署上的潛在風險,也凸顯了白帽駭客與開發社群在用戶資安上的重要作用。

以太幣跨鏈後無法控制資金

事件主角是一名使用 Safe 智能合約錢包帳戶(Safe{Wallet})的用戶,該帳戶自 2020 年起運作,當時版本為 v1.1.1。該用戶計畫透過原生跨鏈工具將 100 ETH 從以太坊主網轉移至 Base 鏈,但跨鏈完成後卻驚覺在 Base 上無法控制資金。

原因在於,雖然智能合約錢包可以透過 CREATE2 機制在不同鏈上部署於相同地址,但在 v1.1.1 版本中,尚未針對多鏈部署情境進行設計,因此任何人都可以在其他鏈上,於相同地址部署不同簽署人配置的 Safe 合約。也就是說,在 Base 上的「同地址 Safe」實際上是一個與原帳戶無關的合約,原用戶完全無法存取資金。

儘管這一問題早在 Safe v1.2.0 之後就已獲得修正,透過調整 CREATE2 的 salt 值,避免不同配置錢包部署在相同地址。但由於該錢包開設的是更舊的 v1.1.1 版本的智能合約錢包,因此才會出現此問題

白帽團隊早已超前部署

Safe 團隊得知事件後迅速介入。核心成員 Christoph Tschubotz 經過鏈上分析後發現,Base 上該地址的 Safe 是由某帳戶預先部署,且部署行為具有系統性,涉及多個 v1.1.1 智能帳戶。

進一步追蹤後發現,這一部署行為來自白帽安全團隊 Protofire。Protofire 早已察覺此漏洞,為防止惡意攻擊者搶先部署控制老 Safe 的地址,選擇提前「佔位」,保護潛在受害者資產。事件曝光兩小時後,Protofire 與 Safe 團隊協調下,先進行一次測試交易,隨後順利將全部 100 ETH 返還原用戶,成功化解危機。

Safe 強化保護機制與用戶警示

Safe 團隊事後指出,這起事件暴露了舊版本智能帳戶在多鏈環境下的潛在衝突風險。雖然現行版本已防堵類似問題,但仍有許多早期帳戶尚未升級,潛藏相同風險。

此外,此次橋接是透過由 Lifi Protocol 提供的原生整合工具完成,該工具雖可提示「目標鏈未部署帳戶」的風險,但尚未能辨識「已部署但配置不同」的帳戶。目前,Safe 團隊已補上這項檢查機制。

從更根本的層面來看,Safe 開發團隊認為,需要更先進的金鑰管理與帳戶一致性保證機制,如 keystore rollup 等基礎建設,才能徹底避免此類問題。

Source