執行摘要
11 月 3 日,Balancer V2 協議及其在多個鏈上的分支項目遭受攻擊,導致超過 1.2 億美元的嚴重損失。 BlockSec 第一時間發布了警告,並提供了初步分析。這是一起高度複雜的攻擊事件。 我們的初步分析表明,根本原因在於攻擊者操縱了不變量,從而扭曲了 BPT(Balancer Pool Token,即 Balancer Pool 的 LP 代幣)價格的計算,使其能夠通過一次 batchSwap 操作在某個穩定池中獲利。
主要要點:
*   **攻擊日期:** 11 月 3 日
*   **損失:** 超過 1.2 億美元
*   **根本原因:** 不變量操縱和捨入誤差的利用
*   **受影響的協議:** Balancer V2 及其分支
背景知識
1. 縮放和捨入
為了標準化不同代幣的小數位,Balancer 合約將:
*   **放大 (Upscale):** 在執行計算之前,將餘額和金額放大到統一的內部精度。
*   **縮小 (Downscale):** 將結果縮小回原始精度,並進行定向捨入(例如,輸入端通常向上捨入,以確保池子不會少收;輸出路徑通常向下截斷)。
**結論:** 在同一個交易中,不同部分採用的捨入方向不對稱,當以極小的步驟重複執行時,會產生系統性的微小偏差。
2. D 和 BPT 價格的影響
Balancer V2 協議的可組合穩定池 (Composable Stable Pool) 和分支協議受到此攻擊的影響。 穩定池用於預期可以保持接近 1:1 兌換比例(或以已知的匯率進行兌換)的資產,允許在不產生顯著價格衝擊的情況下進行大額兌換,從而大大提高相似或相關資產之間的資金利用效率。 該池使用 Stable Math(基於 Curve 的 StableSwap 模型),不變量 D 代表池的「虛擬總價值」。
BPT(池的 LP 代幣)價格近似為:
[方程式]
從上面的方程式可以看出,如果可以在帳面上將 D 變小(即使資金實際上沒有損失),BPT 價格可能會變得更便宜。
BTP 代表池的份額,用於計算在提取流動性時可以獲得多少池中的儲備,因此如果攻擊者可以獲得更多的 BPT,他們最終可以在提取流動性時獲利。
攻擊分析
以 Arbitrum 上的攻擊交易為例,batchSwap 操作可以分為三個階段:
*   **第一階段:** 攻擊者將 BPT 兌換為底層資產,以精確地將其中一個代幣 (cbETH) 的餘額調整到捨入邊界的臨界點(數量 = 9)。 此步驟為下一階段的精度損失創造了條件。
*   **第二階段:** 攻擊者使用精心構建的數量 (= 8) 在另一個底層資產 (wstETH) 和 cbETH 之間進行交換。 由於在縮放代幣數量時進行了向下捨入,因此計算出的 Δx 略小(從 8.918 變為 8),從而導致 Δy 被低估,並使不變量 D(來自 Curve 的 StableSwap 模型)更小。 由於 BPT 價格 = D / 總供應量,因此 BPT 價格被人為降低。
*   **第三階段:** 攻擊者將底層資產換回 BPT,從降低的 BPT 價格中獲利,同時恢復池內的平衡 - 獲得更多的 BPT 代幣。 最後,攻擊者使用另一個獲利交易來提取流動性,從而利用額外的 BPT 來獲得池中的其他底層資產(cbETH 和 wstETH),從而獲利。
*   **攻擊交易:** [https://app.blocksec.com/explorer/tx/arbitrum/0x7da32ebc615d0f29a24cacf9d18254bea3a2c730084c690ee40238b1d8b55773](https://app.blocksec.com/explorer/tx/arbitrum/0x7da32ebc615d0f29a24cacf9d18254bea3a2c730084c690ee40238b1d8b55773)
*   **獲利交易:** [https://app.blocksec.com/explorer/tx/arbitrum/0x4e5be713d986bcf4afb2ba7362525622acf9c95310bd77cd5911e7ef12d871a9](https://app.blocksec.com/explorer/tx/arbitrum/0x4e5be713d986bcf4afb2ba7362525622acf9c95310bd77cd5911e7ef12d871a9)
**參考資料:**
[1] [https://x.com/Phalcon_xyz/status/1985262010347696312](https://x.com/Phalcon_xyz/status/1985262010347696312)
[2] [https://x.com/Phalcon_xyz/status/1985302779263643915](https://x.com/Phalcon_xyz/status/1985302779263643915)
[3] [https://docs-v2.balancer.fi/concepts/pools/composable-stable.html](https://docs-v2.balancer.fi/concepts/pools/composable-stable.html)
風險警告:本文僅代表作者個人觀點並僅供參考。本內容不構成投資建議或財務指導,也不代表 Markets.com 平台的立場。在進行股票、指數、外匯及商品的交易或價格預測時,請務必留意:差價合約(CFD)交易具有高度風險,可能導致資本虧損。過去的表現並不代表任何未來結果。此資訊此資訊僅供參考之用,並不構成也不應構成投資建議。所有英國散戶投資人皆被限制進行加密貨幣差價合約(CFD)與點差交易。