Probabilistic Liquidity Attacks in DeFi, Tarun Chitra - DeFi Security Summit 2022
三句話摘要
DeFi概率流動性攻擊的數學分析──以XSushi事件為例,如何用貝葉斯統計在實時情況下評估協議被攻擊的風險。 當面臨實時的DeFi攻擊威脅時,必須採取貝葉斯統計方法估計攻擊成功的概率,而非依賴無法考慮市場動態的形式驗證。 攻擊機制的遞迴結構:攻擊者操縱兩個帳戶A和B,透過閃電貸借入資產做抵押,然後將資產在Aave協議內重新存入,再從另一帳戶借出,形成遞迴借貸迴圈。關鍵在於衍生資產(XSushi)的價格由協議內流動性直接決定,允許攻擊者通過提取衍生資產、捐贈基礎資產來同時操縱分子和分母,造成價格大幅波動。
重點整理
重點- 1
攻擊機制的遞迴結構:攻擊者操縱兩個帳戶A和B,透過閃電貸借入資產做抵押,然後將資產在Aave協議內重新存入,再從另一帳戶借出,形成遞迴借貸迴圈。關鍵在於衍生資產(XSushi)的價格由協議內流動性直接決定,允許攻擊者通過提取衍生資產、捐贈基礎資產來同時操縱分子和分母,造成價格大幅波動。
- 2
貝葉斯測試的必要性:傳統的形式驗證無法處理市場流動性、利率曲線、協議使用率等變動的外部變數,因此必須從貝葉斯角度構建概率分佈,估計在特定市場條件下攻擊成功的機率,而非假設最壞情況恆成立。
- 3
濃度不等式作為防護指標:透過上下界推導,得出攻擊者利潤率(攻擊後資產值/攻擊前資產值)的下界,這個下界是貸款價值比(LTV)、協議參數、市場流動性的函數。若能證明此下界為負,則攻擊在當前條件下無利可圖,但這取決於流動性分佈——Cream的Sushi流動性不足導致被攻擊成功,而Aave因Sushi在DeFi生態中分散於多處,使攻擊不可行。
- 4
實時監控的實踐方法:在發現潛在漏洞時,無法提出治理提案(會給攻擊者三天警告期),而是必須快速估計多種邊界條件(攻擊者能取得的最大資金、協議外流動性等),透過參數掃描建立攻擊利潤的概率分佈,判斷是否需要立即暫停市場。
實用技巧與重點
乾貨- 事件與數據
- XSushi事件:Cream Finance遭到攻擊(成功),Aave遭遇相同漏洞但無事(失敗)
- Aave資產規模:十億美元量級,受攻擊影響巨大
- 攻擊發生時間:2023年早期
- 關鍵參數與變數
- 五維狀態空間:WETH量、XSushi量、Sushi量、aWETH量(Aave抵押品)、axSushi量
- LTV(貸款價值比):0到1之間,表示允許借入的最大抵押品比例
- M(遞迴倍數):依據市場流動性與利率曲線決定的隨機變數
- C(超額Sushi)、Q_m(遞迴次數)、Q_star(最終提現量):攻擊成功率的關鍵隨機變數
- 攻擊步驟簡化版
- 帳戶A和B控制的閃電貸與遞迴借貸
- 帳戶B向協議借入XSushi,轉入帳戶A,A重新存入,B再借,形成迴圈直到上限
- 帳戶A提現XSushi,操縱XSushi/Sushi匯率分子與分母
- 帳戶A獲取更多Sushi,帳戶B則向協議借入最終一筆資產
- 帳戶A向XSushi合約捐贈Sushi,使B進入可清算狀態
- 帳戶A對其抵押品進行最大借貸,獲利 = 借出總額 - 初始抵押品
- 協議與工具
- Aave(Aave Protocol):超額抵押借貸協議
- Cream Finance:遭攻擊協議
- Chainlink Oracle:僅提供ETH-Sushi交易對,無直接XSushi價格
- XSushi:Sushi衍生資產,匯率 = 合約內Sushi數量 / 已鑄造XSushi數量
- 數學關鍵不等式
- 攻擊利潤下界:攻擊後投資組合價值 / 攻擊前投資組合價值 ≥ LTV及流動性參數的函數
- 濃度不等式:P(攻擊利潤 > x%) ≤ 某函數,這個函數對Cream為真,對Aave為假(依流動性分佈)
結論
結論“當面臨實時的DeFi攻擊威脅時,必須採取貝葉斯統計方法估計攻擊成功的概率,而非依賴無法考慮市場動態的形式驗證。”
完整解析
詳細早在2023年初,Aave協議面臨一次嚴峻的安全危機。此前,類似的攻擊已在Cream Finance上成功實施,但礙於該協議規模較小,損失有限。然而,Aave作為DeFi生態中最大的借貸協議,當時管理著十億美元量級的資產。若同樣的攻擊手段成功,後果將是災難性的。
Tarun Chitra和Gauntlet團隊面臨一個獨特的困境:傳統的形式驗證和靜態代碼分析無法在實時條件下提供答案。發起治理提案暫停市場看似安全,但這樣做等於向潛在攻擊者發出了三天的警告信號,給他們充足的時間執行攻擊。因此,關鍵問題變成:在當前的市場條件下,這次攻擊實際成功的概率有多低?
Chitra團隊採取了一種貝葉斯方法。他們建立了一個五維狀態模型,追蹤攻擊者可以操縱的所有變數。攻擊機制的核心在於XSushi這種衍生資產的定價方式。XSushi的匯率由協議內的流動性直接決定(Sushi總量除以XSushi已鑄造量),而Chainlink Oracle僅提供ETH-Sushi的交易對,沒有直接的XSushi價格。攻擊者正是利用了這個間隙,透過巧妙的資產操縱來扭曲價格訊號。
具體攻擊流程涉及兩個帳戶的協調。攻擊者先利用閃電貸作為初始資本,在帳戶B中存入作為抵押品,借出XSushi,轉移到帳戶A。帳戶A隨後將這些XSushi重新存入Aave,帳戶B再次借出,形成了一個遞迴借貸迴圈。這個遞迴過程可以重複多次(次數由M表示,取決於當時的市場流動性和利率曲線),最終攻擊者擁有大量的虛擬頭寸。關鍵的第二步是,帳戶A開始從XSushi合約提現真實的Sushi,同時購買更多Sushi——這雙重操作同時改變了XSushi價格的分子和分母。最後,攻擊者向Sushi合約捐贈所有Sushi,迫使帳戶B陷入可清算狀態,而攻擊者則以操縱後的高資產價值進行最後的借貸,完成掠奪。
Chitra團隊的分析發現,攻擊者的最終利潤率(攻擊後資產值除以攻擊前資產值)受到一系列隨機變數的影響:他們能掌控多少額外的Sushi(C)、能遞迴借貸多少次(Q_m)、以及最後能提現多少XSushi(Q_star)。這些變數都依賴於DeFi生態的實時流動性狀態。透過推導上下界,團隊得到了一個濃度不等式,將攻擊利潤率與LTV參數、協議參數及外部流動性綁定在一起。
最關鍵的發現是:Aave能躲過這次攻擊,並非因為代碼修復,而是因為Sushi在整個DeFi生態中的流動性分佈——Sushi散佈在多個交易對和協議中,使得攻擊者無法掌控足夠的Sushi來實現價格操縱。相比之下,Cream Finance的Sushi流動性集中度更高,導致濃度不等式條件不成立,攻擊成功。
這個案例的深遠意義在於,它展示了一套嶄新的安全審計方法:不是先驗地證明協議「永遠安全」,而是在威脅出現時,實時估計攻擊成功的概率分佈,並根據當前市場條件做出快速決策。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

