白帽研究人員在九年後從 2016 年的 ICO 智能合約中釋放了價值 200 萬美元的以太幣
目錄
你可能想知道的事
未修補的智能合約漏洞如何能使投資者資金幾乎十年無法取用?
當舊合約仍有價值時,哪些步驟能使回收既有效又合乎道德負責?
主要內容
在一次協調的白帽回收行動中,一名以 0xflorent 為名的安全研究人員與 2016 年失敗代幣銷售 HongCoin 的原管理員合作,釋放了約 1,003.62 ETH——約合 200 萬美元——這些以太幣在過去九年一直被困在該 ICO 的以太坊智能合約中。該合約的退款機制未按預期運作,因為一個全域計數器和一個損壞的上限阻止了較大的退款,導致儘管銷售未達到資金目標,投資者的出資仍無法取回。
其根本技術原因是在一個管理函數中的整數溢位漏洞。當 HongCoin 的程式碼在 2016 年編寫時,Solidity 與常見的智能合約寫法並不總是包含針對整數溢位與下溢的明確防護;後來的語言版本與最佳實務引入了檢查與更安全的算術庫以降低此風險。在 HongCoin 的情況中,該管理函數——僅可由專案團隊控制的多重簽名錢包呼叫——缺少此類保護。透過以特定輸入呼叫該函數,研究人員能將持有者的代幣餘額重設為一,使合約的退款檢查通過,從而啟用因全域退款計數器而被阻止的提款。
這一關鍵見解對理解舊合約回收有重大影響:即使看似永久損壞的合約,有時也能在存在管理通路且原始維護者合作的情況下,透過有針對性的互動予以修正。管理者專用的進入點至關重要:雖然整數溢位缺陷使得變更成為可能,但多重簽名的持有者仍需授權交易以在主網上實施解鎖。
重要的是,這次回收並非單方面利用。0xflorent 聯繫了 HongCoin 的多重簽名持有人,在以太坊主網的本地測試分叉上演示了解鎖流程,並且多重簽名參與者親自簽署了交易。團隊執行了 41 筆個別交易——每位受影響的持有人一筆——釋放了約 1,000 ETH,這些資金否則無法被取回。另有七位持有人因餘額較小可在不需該變通方法的情況下直接退款,並已直接完成退款。
透過這次協調行動,48 位原始投資者變得有資格申領他們的以太幣。已有兩位受益者取回資金,共回收了 96.5 ETH(以回收時匯率計約 193,000 美元)。此行動緊接著同一名研究人員幾日前的一次類似白帽回收,當時他將其他遺留合約與過期交換合約中的 19.329 ETH 歸還給原持有人。
應將此次回收置於去中心化金融(DeFi)生態的更廣泛脈絡中:近期該領域發生了多起重大利用事件與協議資金外流。高調的駭客事件與漏洞已經使數以億計美元從去中心化協議中被抽離,促使人們對智能合約安全與營運實務加強審視。像此類白帽回收與惡意竊取形成對比,因為它們在移動資金前優先考量協調、驗證與專案維護者或合法所有者的同意。
從安全與治理角度看,此案例強調了幾點教訓。首先,採用現代安全算術做法與語言功能以防止整數溢位的重要性。其次,明確且有文件紀錄的管理控制與多重簽名程序的價值,這些能在必要時允許負責任的介入。第三,在提出會改變狀態的主鏈操作時,使用測試分叉與透明的驗證步驟有助於降低意外後果的風險——研究人員在多重簽名於主網執行前已在鏈外驗證方法。
最後,本事件顯示從舊合約回收價值通常是可行但需謹慎。這需要技術能力來設計正確的操作順序、道德判斷來與維護者及利害關係人溝通,以及操作上的謹慎以確保僅影響預期的餘額。在本例中,技術嫻熟的研究人員與專案的多重簽名持有者之間的合作,產生了一個實際且低風險的解決方案,為長期等待的投資者恢復了資金存取權。
關鍵見解表
| 面向 | 描述 |
|---|---|
| 根本原因 | 管理函數中的整數溢位漏洞允許重設餘額,繞過損壞的退款上限。 |
| 回收金額 | 約 1,003.62 ETH,約合 200 萬美元,48 位原始投資者有資格申領資金。 |
| 回收方法 | 協調的白帽利用:研究人員在測試分叉上驗證流程;HongCoin 多重簽名簽署了 41 筆主網交易以解鎖資金。 |
| 倫理與治理 | 回收依賴多重簽名持有者的同意與驗證步驟,以避免單方面行動或造成進一步損害。 |
| 更廣泛脈絡 | 發生於多起高調 DeFi 利用事件之中;強調持續需要改進智能合約實務與事件回應流程。 |
後續...
展望未來,此案例強化了數個值得持續關注的領域。首先,在開發過程中採用更安全的程式設計模式與自動化靜態分析可防止許多傳統上易被利用的漏洞,例如整數溢位。其次,更廣泛使用多重簽名託管、透明治理與有文件的緊急程序,可在遺留合約失敗時促成負責任的回收。
第三,為安全的狀態遷移與鏈上回收原語提供改良工具,可能能夠以標準化、可稽核的方式歸還資金,而無需為每個案例設計專屬的利用方法。對形式化驗證、執行時不變式以及更強的預設語言保障(例如要求明確的溢位檢查)之研究,將持續降低長期存在且無法存取資金的情形發生率。
最後,安全研究人員、專案維護者與廣泛社群間的合作——強調揭露、在分叉上測試以及多重簽名授權——仍然是以最小風險解決類似事件的務實途徑。持續投資於事件回應流程與可互通的回收工具,或能使彌補這類歷史錯誤變得更容易,同時維護去中心化系統的完整性。