導致 Bonzo 借出崩潰的空簽名:一場 900 萬美元 Hedera 攻擊的事後分析

導致 Bonzo 借出崩潰的空簽名:一場 900 萬美元 Hedera 攻擊的事後分析

2026/07/15 11:18:00
自訂圖片
在數學和電腦科學中,零代表空無——價值的絕對缺失。但在去中心化金融(DeFi)這個脆弱且高度連接的生態中,一個未經檢查的「零」參數最近成為了一把數位萬能鑰匙。在短短幾分鐘內,這個單一的未檢查空值解鎖並轉走了知名借貸平台超過 900 萬美元的資金。
 
這場毀滅性攻擊的受害者是 Bonzo Lend,這是 Hedera 網絡上最大的借出協議。2026 年 7 月,該協議的鎖定總價值(TVL)在瞬間暴跌了 77%。隨著恐慌在 Hedera 社區中蔓延,觀察者們急於尋找漏洞的來源。
 
重要的是,這場災難並非因為 Hedera 的底層網路共識失敗,也非因為 Bonzo Lend 的核心借出計算錯誤。相反,這場災難源於一個致命的整合漏洞:其第三方價格供應商 Supra Oracles 中存在關鍵的簽名驗證缺陷。這是一份事後分析,說明了關於「無」的一個微小邏輯疏忽如何導致了一個 DeFi 巨頭的崩潰。

攻擊時間線:數秒內從 5 美元增至 9,000,000 美元

Bonzo 借出漏洞的執行極其簡潔,所需初始資金極少,僅需幾步交易即可完成。
 
為發動這起盜竊,攻擊者向 Bonzo Lend 存入了極少量的抵押品——具體為 250 SAUCE 代幣。在存入時,這筆抵押品價值僅有幾美元,幾乎不夠買一杯咖啡。根據正常協議規則,這點零錢僅允許用戶借入其價值的一小部分其他數碼資產。
 
接下來,攻擊者透過繞過價格預言機的驗證檢查來發動攻擊。他們構造並提交了一筆偽造的價格更新交易至預言機的驗證合約。這筆交易包含極具惡意的資料:它人為將 SAUCE 代幣的價格抬高了驚人的 12 個數量級——使協議誤以為單一 SAUCE 代幣的價值瞬間高達數十億美元。
 
為推廣此偽造價格,系統需要來自授權的預言機節點的加密簽名。攻擊者並未嘗試破解複雜的加密技術或竊取私鑰,而是直接將簽名欄位留空,以一串零取代加密簽名。
 
由於驗證邏輯中存在嚴重缺陷,合約將空白簽名視為有效。瞬間,Bonzo 的估值系統將攻擊者的 250 SAUCE 抵押品註冊為具有巨大價值的資產。利用這突如其來的人為財富,駭客迅速從 Bonzo 的流動性池中提走 663 萬 USDC 和 3450 萬包裝 HBAR(wHBAR),在任何警報被觸發前成功抽乾了協議資金。

揭開「零簽名」漏洞的謎團:代碼如何失敗

要了解此漏洞如何可能發生,我們必須揭開數位簽章的數學奧秘。在去中心化網路中,加密簽章就像數位蠟封。當預言機節點發布價格更新時,它會使用私鑰對資料進行簽名。接收端的智能合約會使用驗證演算法,確認該簽章與預言機節點的授權公鑰相符。
 
通常,如果用戶提交了無效的簽名,驗證庫會嘗試處理輸入並失敗。當加密驗證庫遇到格式錯誤、空值或完全為零的輸入時,並不總是會拋出主動錯誤。相反,許多標準庫在無法解析簽名時會設計為輸出預設值。在 智能合約 中,此預設輸出幾乎總是用一長串零表示的空位址。
 
該預言機驗證合約的致命漏洞在於其如何處理此預設的空地址。合約被編程為檢查恢復的簽名者是否與授權的預言機節點地址匹配。然而,開發人員忘記加入一項基本規則:拒絕任何簽名長度為零或恢復的地址返回空值的輸入。
 
此外,如果合約內的授權簽署人狀態未初始化,或以允許空值檢查的方式配置,合約會將失敗簽名返回的空地址與其內部參數進行比較,並宣告匹配。由於驗證邏輯未能區分「簽名恢復失敗」與「有效的授權簽署人」,合約將空簽名視為絕對許可,批准了偽造的價格餵送。

詭異的預言機困境:為何 DeFi 樂高僅與其最薄弱的環節一樣堅固

DeFi 常因「可組合性」而受到讚譽——不同協議、代幣和工具能像「金融積木」一樣連接起來,構建複雜的金融應用程式。雖然可組合性促進了快速創新,但也帶來了系統性的脆弱性。一個基本構建模塊中的單一缺陷,就可能導致整個結構堆疊崩潰。
 
Bonzo Lend 的攻擊完美地說明了此項弱點。Bonzo Lend 本身是一個結構完善、已通過安全審計的 借出協議,但該協議必須依賴外部 Oracle 提供準確的定價。一旦 Oracle 的驗證系統接受錯誤價格,Bonzo 的借出合約便會如程式碼所寫般執行,讓資金雄厚的「富有」用戶借入資產。
 
下表詳述了攻擊期間結構性職責的分配情況,說明了防線崩潰的位置:
組件 預設系統角色 遭受攻擊期間的表現 結構課程
Hedera 共識層 確保帳本狀態安全、有序處理交易,並維持網路正常運行時間。 完美執行,無任何停機或網路層漏洞。 一個安全的網路共識層並不能保證應用層的安全。
Supra Oracle 提供已簽署、經加密驗證且準確的資產價格資料。 無法拒絕空簽名,發布了損壞的價格。 依賴項必須以零信任驗證範式進行處理。
Bonzo 借出 管理充幣資產,監控借入健康比率,並處理借入。 盲目信任進來的價格數據,未能限制價格的突然飆升。 智能合約必須實現防禦性邏輯,以應對依賴項失敗。

白帽介入:與駭客競賽的百萬美元行動

當攻擊在公共帳本上展開時,發生了一場戲劇性的次要事件。在公共區塊鏈中,交易在最終確認前會顯示在「mempool」中。這種透明度讓其他參與者,無論是惡意還是道德的,都能即時分析正在進行的攻擊。
 
在主要攻擊者開始盜取協議資金後不久,一位獨立的安全研究員(通常被稱為「白帽」駭客)發現了正在進行的漏洞利用。鑑於整個協議即將被清空,這位白帽迅速執行了完全相同的無簽名漏洞,提走了約 $1 百萬的資產。
 
這種被稱為「前跑」的策略,是 Web3 安全中常見的防禦手段。透過先取得資金,白帽人士阻止了惡意行為者竊取該流動性池的那部分資金。
 
成功提款後,白帽黑客立即與 Bonzo Lend 團隊取得聯繫。在確認其身份與意圖後,這位道德黑客將全部 100 萬美元安全歸還至協議的恢復地址。儘管主要攻擊者仍攜走大部分資金,但此次迅速介入保住了社區資產的重要部分,並展現了 Web3 安全獨特的協作特性。

追逐百萬:被盜資金如何離開 Hedera 生態

一旦駭客成功以虛假抵押品借入數百萬美元的 USDC 和 wHBAR,他們的主要目標便轉為在協議暫停合約前逃離 Hedera 生態。
 
攻擊者並未以原始形式保留被盜資產。透過 Hedera 上受歡迎的去中心化交易所 SaucerSwap,駭客迅速將借入的代幣兌換為高流動性的穩定幣和原生資產,以避開中心化凍結機制。
 
在交換代幣後,攻擊者立即利用跨鏈橋樑,特別是通過 LayerZero 路由資金。透過跨鏈轉移資產,駭客將超過 $5 百萬的盜取資金直接轉移到以太坊主網。
 
一旦資產跨鏈至以太坊這樣流動性高、規模龐大的網絡,追蹤和恢復它們的難度將呈指數級上升。這些資金可被分散至數百個新地址,存入去中心化隱私混合器,或交換為非託管隱私幣。這種快速且自動化的逃逸路徑,突顯了實時監控與即時緊急中止,是對抗現代跨鏈攻擊的唯一可行防禦手段。

慘痛教訓:DeFi 協議如何防範預言機災難

損失 900 萬美元是一堂極其昂貴的課程,但它為希望確保其應用程式免受未來整合錯誤影響的智能合約開發者提供了無價的見解。
 
為防止零簽名漏洞,開發者必須採用嚴格的防禦性編碼實踐。關鍵的結構性改進包括:
  • 明確的空位址驗證:絕不假設簽章驗證函數成功。每個加密驗證程式都必須明確檢查簽章長度是否大於零,並確認輸出位址未解析為空值(0x00...00)。若返回空值,交易必須立即撤銷。
  • 冗餘的 Oracle 架構:依賴單一 Oracle 提供商會造成單一故障點。穩健的 DeFi 協議應同時從多個獨立的 Oracle 網絡(例如 Chainlink、Pyth 和 Supra)獲取資產價格。若某一數據源與其他數據源的中位數顯著偏離,協議應標記此差異並自動暫停運作。
  • 鏈上價格熔斷機制:借貸協議必須實施速率限制和價格偏移界限。即使或然源聲稱某代幣在單一區塊內價值上升了兆倍,智能合約的內部熔斷機制也應將此更新視為異常並拒絕,直至經過人工管理驗證前,停止任何借貸或強制平倉操作。

智能合約審計的未來:為何我們必須測試邊界

Bonzo 借出漏洞暴露了當前 Web3 審計實踐中的一個關鍵限制。許多安全審計過於關注驗證合約在預期條件下的業務邏輯是否正常運行——通常被稱為「happy-path」測試。
 
然而,現實中的攻擊者並不會遵循理想路徑。他們專門尋找邊界條件、未初始化狀態和意外輸入。安全行業必須轉向積極的邊緣情況測試,以在程式碼上線主網前發現隱藏的缺陷。
 
為實現此目標,協議必須將模糊測試和形式化驗證等先進測試方法列為強制性標準。模糊測試涉及使用自動化工具向智能合約發送數百萬個隨機、格式錯誤和空的輸入——包括空位元組字串和空簽名。若驗證合約曾接受嚴格的模糊測試,零簽名繞過問題將會立即被發現。
 
最終,第三方預言機供應商也必須接受更高的安全標準。由於這些數據源是數億美元經濟活動的基礎,其驗證代碼必須與其所支持的一層網絡受到同等程度的審查。

結論:在一個無需信任的生態中重建信任

Bonzo 借出漏洞是一個鮮明的提醒,說明了智能合約的不容寬恕本質。在 Web3 中,代碼即法律,EVM 不關心你的意圖。關於「無」的一個微小邏輯漏洞,可能瞬間摧毀多年開發成果和數百萬美元的用戶信任。
 
在遭受攻擊後,Bonzo Lend 和 Supra Oracles 迅速修補了漏洞,並保障了剩餘基礎設施的安全。儘管此次事件令人痛心,但所汲取的教訓無疑將推動整個去中心化金融生態系統實現更安全的整合標準。對於開發者和投資者而言,最終的啟示很簡單:絕不可忽視整合安全,測試代碼的邊界,並始終驗證當向系統輸入空值時會發生什麼情況。

常見問題:

Q1:「無簽名」漏洞是否意味著區塊鏈密碼學本身已遭破解?

不是。數位簽章和公鑰加密背後的數學原理仍然完全安全。此漏洞是由處理加密函式庫輸出的智能合約中的邏輯程式設計缺陷所導致。當提供空白簽章時,函式庫正確地返回了空值,但合約錯誤地將該空值解讀為驗證成功。

Q2:為何 Bonzo 借出會自動信任如此虛高 的 SAUCE 價格?

借貸協議的設計具有模組化特性,意味著它們將資產定價這一複雜任務交由專用的預言機網絡處理。由於 Bonzo Lend 設計為完全接受預言機的價格數據,未進行任何獨立的本地合理性檢查或價格偏差限制,因此接受了人為造成的萬倍價格上漲,並允許借入交易繼續進行。

Q3:日常的 DeFi 用戶可以做什麼來保護自己免受 Oracle 相關駭客攻擊?

雖然用戶無法控制協議的代碼,但可以管理自身的風險。為保護您的資本,請將資產分散至多個獨立平台,避免使用依賴單一預言機供應鏈條資產的協議,並選擇已公開整合多源預言機系統且具備強大鏈上緊急熔斷機制的平台。
 
免責聲明:此內容僅供資訊參考,不構成投資建議。加密貨幣投資存在風險,請自行研究(DYOR)。

免責聲明: 本頁面經由 AI 技術翻譯,旨在方便您的閱讀。欲獲取最準確資訊,請以原始英文版本為準。