撰文:Jonas,Foresight Ventures
在加密行業的黑暗森林裡,Defi 已成為黑客的提款機,今年迄今損失總金額已超過30 億美元。一是因為Defi 平台持有大量資金,攻擊成功的回報很高。二是因為大多數Defi 協議代碼都是開源,更易受到網絡安全威脅。三是因為Defi 通常生態互連,放大攻擊的便利性。 Token Terminal 報告顯示,Defi 大約50% 的漏洞發生在跨鏈橋上,其次為藉貸,交易所和機槍池。
對Defi 的經濟模型攻擊更有研究價值,特別是一些機制在極端情況下的走向,很有利於我們理解代幣經濟學。某種意義上,如果黑客通過釣魚、撞庫等社會工程學手段來盜取資產,算是不義之財。而類似地通過Defi 的規則來套利,就堪稱明火執仗地賺錢,手段高明但無可置喙。
幣價操縱,通過合約變現
價格操縱是Defi 中最早和最常見的漏洞。而隨著鏈上衍生品興起,攻擊的盈虧比變得很高。
案例1:MANGO
22 年10 月Solana 鏈去中心化合約平台Mango 遭遇攻擊。
成功要素:山寨幣合約倉位沒有限制
攻擊流程:
a) 建倉:攻擊者首先向Mango 交易平台A、B 地址分別各轉入500 萬美元。而後黑客通過A 地址在Mango 上利用合約做空代幣MANGO;同時在B 地址上做多MANGO。多空雙開的原因在於,雖然Mango 平台對山寨幣合約倉位沒有限制,但是深度較差,如果不和自己作對手盤,倉位就很難開到這麼高。
b) 操縱價格:攻擊者使用更多資金購買MANGO 代幣,在10 分鐘內將其價格從2 美分升至91 美分。因為MANGO 是一種流動性低的代幣,這使得攻擊者能夠快速操縱價格。
c) 變現:此時攻擊者的多頭倉位收益為4.2 億美元,再利用賬戶淨資產從Mango 平台進行借貸,好在流動性不足最終只借出1.1 億美元。
案例2:GMX
22 年9 月Arbitum 鏈去中心化合約平台GMX 遭遇攻擊。
成功要素:0 滑點機制,攻擊成本低
攻擊流程:
a) 建倉:攻擊者在GMX 上反復開大量代幣AVAX 多頭和空頭的頭寸。
b) 操縱價格:由於GMX 是0 滑點,因此預言機的餵價約等於執行價,但是GMX 上的大額頭寸會影響到其它交易所的AVAX/USD 價格,然後預言機才反應過來並餵價給GMX。 0 滑點意味著攻擊者在任何時刻都擁有無限流動性。舉個極端例子,如果在GMX 上做多10 億美金的AVAX,照理說這麼大的資金量會拉高實際交易的價格,但GMX 的機制是0 滑點,所以還是按照預言機的餵價來開倉。但這個體量的交易會拉高其它交易所AVAX 的價格,假設漲了20%,預言機才會把最新的價格反饋到GMX 上,此時就可以按AVAX 漲了20% 的價格來平倉,並把賺到的AVAX 提取到其它交易所賣出。
c) 變現:此時攻擊者平倉盈利,攻擊者賺到的AVAX,就是GLP 持有者虧損的AVAX。
利用預言機錯誤,通過抵押借貸變現
這類攻擊執行起來非常複雜,但其模式類似,即依賴價格餵價的系統會臨時操縱餵價以扭曲協議的內部核算。然後將資金以優惠的利率進行存入,然後在將預言機重置為正常值後立即以另一種貨幣或同一種貨幣提走。
案例3:ANKR
22 年12 月Bsc 鏈借貸協議Helio 遭遇攻擊。
成功要素:預言機餵價不及時
攻擊流程:
a) 預言機錯誤:Bsc 鏈質押項目Ankr 被黑客直接利用合約漏洞,憑空鑄造10 萬億個aBNBc,導致aBNBc 價格幾近歸零。而藉貸協議Helio 預言機餵價是採用6 小時平均加時權重的設置。
b) 建倉:攻擊者使用10 個BNB 買了Ankr 超發的18 萬個aBNBc,之後將aBNBc 交換為Hello 的hBNB。
c) 抵押借貸:攻擊者以hBNB 為抵押品在Helio 中進行借貸,借貸出1644 萬穩定幣HAY。
d) 變現:攻擊者將穩定幣HAY 交換成BNB 和USDC 等約1500 萬美元等值資產,進行提現。
案例4:XVS
22 年5 月Bsc 鏈借貸協議Venus 遭遇攻擊。
成功要素:預言機餵價不及時
攻擊流程:
a) 預言機錯誤:LUNA 增發崩盤時,Chainlink 對LUNA 的價格反饋達到價格下限,被以0.107 美元價格暫停。但Bsc 鏈上借貸協議Venus 的LUNA 市場卻在繼續運行,餵價正是來自Chainlink。當LUNA 價格約為0.01 美元時,團隊才暫停協議。
b) 建倉:套利者從二級市場大量增發後的LUNA,並提到Bsc 鏈。
c) 抵押借貸變現:套利者在Venus 上以LUNA 為抵押品進行借貸,借貸出約1400 萬美元等值資產,進行提現。
案例5:BZRX
20 年5 月Bsc 鏈借貸協議bZx 遭遇攻擊。
成功要素:預言機價格來源單一
攻擊流程:
a) 建倉:首先攻擊者通過閃電貸從去中心化合約平台DYDX 借出1 萬個ETH,使用其中5500 個ETH 在藉貸平台Compound 借出112 個WBTC。
b) 預言機錯誤:bZx 是保證金交易協議,用戶可以抵押一種幣作為保證金,在槓桿借出另一種幣,這兩個幣的浮動匯率,bZx 需要預言機來餵價,並單一依賴Uniswap 上價格。攻擊者使用1300 個ETH 到bZx 上開了5 倍ETH 空單(即使用其中5637 個ETH 兌換WBTC),由於Uniswap 池子可兌換的WBTC 有限,WBTC 價格被拉高至正常值的3 倍。
c) 變現:攻擊者再把從Compound 借到的112 個WBTC 賣出,共獲利36 萬美元。
預言機操縱始終是Defi 攻擊的重災區,相似案例還有Vee Finance、 Harvest Finance、Value Defi、Warp Finance 等等、此處就不一一列舉了。
做空Defi 槓桿,導致死亡螺旋
熊市中流動性逐漸匱乏,非主流資產價格深度不足、波動變大。大規模做空可能是由Defi 槓桿清算和資本做空共同推動的。
案例6:LUNA
22 年5 月Terra 鏈的穩定幣UST 遭遇攻擊。
成功要素:資金盤在熊市遇到流動性擠兌
攻擊流程:
a) 建倉:攻擊者認為LUNA-UST 機制無法長期維持。 Terra 通過Anchor 給出的高收益率是一種引流的策略,吸引用戶更多使用UST。但是20% 的收益率是不可持續的。當利率水平從20% 下降至7-12% 之間,會有價值約90 億美元的LUNA 離開,但是由於LUNA/UST 的流動性並不夠好,估計約有50 億美元的UST 會遭遇退出困境。如果想讓50 億美元的UST 兌換成LUNA 並安全離開市場,可能需要400 億美元的LUNA 市值,而當時LUNA 的最大市值才不過400 億美元。似乎Terra 方面已經耗盡了儲備,沒錢維持UST 的穩定,或者是放棄了維持UST 的穩定。因此觀察是否還可持續的窗口,是Curve 上的UST Pool 是否出現不平衡的情況。因此當Terra 從Curve 移除1.5 億美元流動性,為4pool 做準備時,較小的流動性池規模意味著UST 出售對價格的影響比平時更大。攻擊者開始拋售價值2.85 億美元的UST,令穩定幣開始脫錨。
坊間傳言攻擊者Alameda 在UST 崩潰前從Voyager 借了9 位數的BTC,砸盤做空BTC 以阻擊Terra 儲備金。同時Genesis Trading 向Alameda 提供10 億美元UST,為針對UST 脫錨的攻擊提供了子彈。
b) 槓桿循環清算:
UST 是算法穩定幣,使用簡單的鑄造和銷毀機制來保持穩定性。要鑄造UST,必須銷毀等價值的LUNA;同樣用戶也可以通過銷毀UST 來兌換等值的LUNA。隨著UST 的下跌,假設的死亡螺旋成為現實,投資者以越來越低的價格銷毀UST 換取LUNA,從而使未償還的LUNA 供應過度膨脹。事實上,LUNA 的供應量在短短幾天內就從不到3.5 億枚增加到6.5 萬億枚以上。
同時UST 在Abracadabra 遭到大規模清算。去年11 月,Abracadabra 為UST 啟動了Degenbox 策略,用戶抵押UST 借貸MIM,通過循環抵押可以極大提高收益率。只要UST 維持在1 美元,這個策略基本上是無風險的,然而一旦UST 脫鉤,用戶的抵押品價值降低面臨被清算的風險。 UST 價格到0.97 會爆一批,低於0.9 能爆掉50% 以上用這個策略的人。循環往復,UST 價格越低,爆倉的人越多。
案例7:CRV
22 年11 月以太坊鏈去中心化穩定幣交易平台Curve 遭遇攻擊。
成功要素:借貸協議可抵押長尾資產
攻擊流程:
a) 建倉:Curve 的代幣鎖倉機制加上賄選機制,造成流動性嚴重不足。攻擊者先在交易所開CRV 高倍率空單。
b) 借貸做空:攻擊者前後在AAVE 共抵押6360 萬個USDC,借出9200 萬個CRV 砸盤做空。由於CRV 價格暴跌,借貸協議AAVE 上的USDC 抵押物可以繼續借出更多的CRV 做空。
c) 槓桿循環清算:由於CRV 本身是藉貸協議抵押品,價格的快速下跌也引發了大量CRV 被清算,或將引起死亡螺旋的連鎖反應。攻擊者意圖擊穿CRV 創始人抵押倉位清算線,將其爆倉。雖然後來在創始人和社區聯合下做空失敗爆倉,但操作思路還是值得學習借鑒。
閃電貸治理攻擊
Defi 攻擊已不僅限於操縱價格了,若協議防線不足,治理機制漏洞也可能被攻擊者利用。
案例8:BEAN
22 年4 月以太坊鏈去中心化穩定幣Beanstalk 遭受攻擊。
成功要素:未對可投票資金添加時間鎖
攻擊流程:
a) 提案:攻擊者在攻擊前一天發布惡意提案,提案通過以後將會從Beanstalk 合約中提取資金。
b) 建倉:攻擊者通過閃電貸獲得了3.5 億個DAI、5 億個USDC、1.5 億個USDT、3200 萬個BEAN 和1100 萬個LUSD 作為資金儲備,從而積累了大量該協議的治理代幣。
c) 投票:攻擊者用BEAN3CRV-f 和BEANLUSD-f 來對提案發起投票,從而導致提案通過。攻擊者獲得24830 個ETH 和3600 萬個BEAN 穩定幣,獲利約8000 萬美元。
雖然是熊市,但是Defi 市場仍保持一定的活力。從鎖倉量來看,如果加密市場以原生資產ETH 而非美元計價,那麼22 年Maker DAO、Lido 等頭部項目的TVL 仍將實現正增長。即使以美元計算,Defi 市場仍然保持400 億美元以上的TVL,比21 年前要好得多,這意味著Defi 市場已成為加密市場不可或缺一部分。
這輪牛市是Defi 的繁榮起點,隨著該行業的崛起成為人們關注的焦點,攻擊者也相應地將注意力轉向了這一領域。從上面的攻擊中可以清楚地看出,攻擊Defi 協議並沒有單一的方法,而是一些常見的攻擊向量,導致一些年輕的Defi 項目淪為了犧牲品。到目前為止,這些日益增長的攻擊造成的損失還不是災難性的。然而,隨著生態系統的持續發展和總鎖倉量的增長,涉及的資金將變得更多,攻擊將更有利可圖,未來將會看到更複雜的Defi 攻擊。實踐出真知。