區塊鏈

從取整漏洞到系統性利用:深入剖析Balancer的1.28億美元攻擊事件

金色財經

1. 事件概述(2026年回顧)

2025年11月3日,去中心化金融(DeFi)的核心流動性基礎設施協議之一Balancer遭遇了一起大規模的未經授權價值提取事件。 攻擊者將目標鎖定在 Composable Stable Pools 上,利用了縮放計算中的捨入方向錯誤,並結合 batchSwap 的可組合性。通過快速連續執行複雜的多步驟交換,他們逐漸扭曲了資金池狀態,並在未觸發任何有效防護措施的情況下提取了價值。


此次攻擊造成的損失估計在1.16億美元至1.28億美元之間,影響了主協議及多個分叉,涉及的資產包括WETH、wstETH和osETH。



從2026年的視角來看,不應僅將此事件視為漏洞利用。更準確的描述應是對協議規則的系統性操縱。攻擊者並未繞過權限或篡改合約代碼。 相反,他們構建了交易路徑,將微小的數值不一致放大,直至系統本身接受了錯誤的資產分配。


根本問題並非單一缺陷,而是多種設計假設在惡意條件下相互作用的結果。


一個有用的類比是銀行系統:

  • 資金池充當共享儲備帳戶

  • 不變量起着會計約束的作用

  • batchSwap 類似於複雜的內部資金轉賬

  • 捨入誤差反映了金融計算中的微小偏差

  • 內部餘額充當基於賬本的帳戶

關鍵點在於:

攻擊者並未入侵銀行——而是利用規則漏洞,直至銀行將轉賬視為有效交易。


2. 攻擊路徑:從數值漂移到系統性提取

從回顧的角度來看,此次攻擊分為四個階段。這並非單一漏洞利用,而是一場漸進式的系統級操縱。


2.1 初始條件:可被利用的捨入方向錯誤

此次攻擊源於 Composable Stable Pools 中的一個關鍵實現缺陷: 在 _swapGivenOut (EXACT_OUT) 路徑中,協議在放大輸出金額時錯誤地應用了 FixedPoint.mulDown(向下取整),而本應使用 mulUp。


這種捨入方向錯誤導致協議系統性地低估了所需輸入,從而在某些執行路徑下實質性地降低了不變性,並使得攻擊得以反覆利用。


雖然單次捨入運算的影響微乎其微,但沿着精心構造的路徑反覆執行會導致誤差累積,最終在池狀態中產生可測量的偏差。


2.2 放大效應:batchSwap 作為路徑級槓桿

攻擊者利用 batchSwap 將這一微小偏差轉化為可擴展的策略:

  • 在單筆交易中執行多次置換

  • 將資產路由至多個資金池

  • 通過重複循環積累增量收益

這些操作完全符合協議設計規範。 關鍵在於,不變性檢查是在本地而非全局層面進行的,這意味著系統對每個步驟都進行了獨立評估。


因此,從協議的角度來看,整個路徑始終保持「有效」。


2.3 狀態扭曲: 產生隱性缺口

隨著循環持續,系統進入了一個失真狀態:

  • 局部不變量仍成立

  • 全局資產分布發生偏移

  • 出現了隱性赤字

此時,該協議關於均衡的假設不再成立,但並未觸發任何檢測機制。


2.4 提取:內部餘額結算

最後, 攻擊者調用了 manageUserBalance 來:

  • 將資產轉移到內部餘額中

  • 作為合法索賠將其提取

沒有繞過任何權限。系統完全按照設計運行。
隨後資金被拆分並跨鏈轉移,導致追蹤難度增加。


3. 資金流與行為模式

流向結構

  • 初始資本(閃電貸或自有資金)進入資金池

  • 重複的 batchSwap 循環 (數十到數百次)

  • 漸進的不變量漂移

  • 內部餘額積累

  • 資產提取

  • 跨鏈分散


  • 行為特徵

    • 高頻、結構化執行

    • 全自動化策略

    • 多鏈混淆

    多家分析機構指出,該攻擊者展現出了高超的 DeFi 漏洞利用能力。 攻擊者的歸屬仍無法確定。



    4. 範式轉變:從捨入錯誤到機制層面的利用

    業界已基本理解了此次攻擊的運作機制。更關鍵的問題在於它所代表的意義。

    雖然此次攻擊並未繞過權限控制,但其根本原因仍在於代碼庫中長期存在的捨入方向漏洞,該漏洞通過可組合的交換路徑被系統性地放大。


    4.1 從漏洞利用到經濟操縱

    • 傳統攻擊: 發現漏洞 → 繞過限制 → 提取資金

    • 本次攻擊: 遵守所有限制 → 在協議規則內操作 → 通過組合提取價值

    其啟示至關重要:代碼可能正確,但系統仍可能失敗。


    4.2 DeFi 設計中的錯誤假設

    Balancer 隱含地假設:

    參與者表現為理性的套利者,而非對抗性的策略家。


    實際上:

    • 攻擊者會積極尋找邊緣情況的組合

    • 他們針對多種機制進行優化

    • 他們利用的是系統性的弱點,而不是局部弱點

    4.3 作為安全邊界的不變量已不復存在

    從歷史上看,不變量一直被視為一種保證。


    該事件表明:

    • 不變量可能會逐漸退化

    • 局部正確性並不意味著全局安全性

    安全性不再由公式定義,而是由執行路徑定義。


    5. 響應與有效性


    5.1 行之有效的方法

    Balancer 和生態系統參與者迅速做出了響應:

    • 暫停了受影響的資金池

    • 協調了流動性提取

    • 修復了捨入不一致的問題

    • 加速了 V3 設計改進

    這些措施在短期內之所以有效,是因為它們:

    • 禁用了已知的攻擊途徑

    • 減少了可被利用的流動性

    • 解決了當下的數值問題

    影響:

    • 短期: 控制了損失並穩定了信心

    • 長期:為數學一致性和驗證提供了改進依據

    5.2 未解決的問題

    然而,這些修復僅解決了症狀,而非根本的模型問題。

  • 修正捨入誤差無法消除可組合性風險

  • 不變量檢查仍侷限於局部範圍

  • 不存在行為異常檢測機制

  • 簡而言之: 該協議修復了 此 漏洞,但並未修復此類 漏洞。


    6. 防禦建議

  • 路徑級不變量驗證
    驗證整個執行路徑,而非單個步驟,以防止累積漂移。

  • 確定性捨入規則
    在所有計算中強制執行一致的捨入規則,以消除方向性偏差。

  • 對抗性模擬
    在部署前,針對最壞情況下的攻擊者策略對協議進行壓力測試。

  • 有限組合性
    限制交換複雜度和執行深度,以減少攻擊面。

  • 行為監控
    檢測異常模式,例如循環路徑和高頻結構化交易。

  • 內部餘額控制
    對內部餘額提取引入延遲或限制,以阻斷資金轉移階段。

  • 總結:

    安全性必須從 代碼正確性 演進到 在對抗性條件下的行為正確性。


    7. 結論


    Balancer V2 漏洞利用標誌着 DeFi 安全領域的轉折點。


    它證明了系統即使沒有被破壞,也可能出現故障。攻擊者並沒有違反規則——他們比系統預期的更精確地遵守了規則。


    這改變了安全範式:

    • 從驗證代碼

    • 轉向驗證機制


    在對抗性環境中,正確性是不夠的。系統必須在遭受操縱時保持穩定,而不僅僅是在正常使用時。


    Balancer 並非孤立事件——它是一個信號。


    參考文獻

    Certora – 解析 Balancer 駭客攻擊事件 [技術分析]

    SlowMist – 當微小缺陷擊垮巨頭 [技術分析]

    Trail of Bits – Balancer 攻擊分析與指導 [事件報告]

    PeckShield – 鏈上警報報告 [鏈上分析]

    Cyvers – 實時威脅檢測報告 [鏈上分析]

    Balancer 官方事後分析 [事件報告]


    來源:金色財經

    發佈者對本文章的內容承擔全部責任
    在投資加密貨幣前,請務必深入研究,理解相關風險,並謹慎評估自己的風險承受能力。不要因為短期高回報的誘惑而忽視潛在的重大損失。

    暢行幣圈交易全攻略,專家駐群實戰交流

    ▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群
    不管是新手發問,還是老手交流,只要你想參與加密貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!

    前往鉅亨買幣找交易所優惠


    section icon

    鉅亨講座

    看更多
    • 講座
    • 公告

      Empty
      Empty