今天上午,DeFi 聚合協議 Harvest Finance 針對昨天閃電貸攻擊發布聲明。
根據公告,本次攻擊損失共計 3380萬美元(此前媒體報道是 400 萬美元),約佔攻擊發生前協議中鎖倉總價值的 3.2%;攻擊者退回的 247 萬多美元,將根據快照按比例分配給受影響的儲戶;未來 Harvest Finance 將對存款實行「提交-披露」機制,減少閃電貸攻擊,使用預言機來確定資產價格,並提高存款 arb 配置(當前閾值設置為 3%)。
昨天上午 10 點,推特用戶爆料稱,攻擊者通過閃電貸依靠 20 ETH 的成本(手續費)在 Curve 協議 y 池進行套利獲得無常損失,而 Curve.fi Y 池正是 Harvest 金庫投資的地方。攻擊者隨後將資金轉換為 renBTC並套現,Harvest 也因此損失數百萬美元,不少參與者稱損失了 15%~20% 以上的資金。
受此影響, Harvest Finance 治理代幣 FARM 價格從 237 美元一度暴跌至 78 美元,最大跌幅接近 70% ;截至今天發稿,FARM 價格回升至 110 美元左右;Harvest 協議鎖倉量,也從 11.1 億美元量已驟降至 4.5 億美元,最大跌幅 60%。
不過,Curve 協議卻並未受到影響,其治理代幣 CRV 價格在過去 24 小時不斷攀升,一度升至 0.44 USDT,最大漲幅接近 30%。
(1)事件回顧:閃電貸套利
Harvest Finance,是一個 DeFi 收益聚合器,其主要功能是向其它 DeFi 池提供流動性來為自己的流動性提供者賺取收益。在攻擊發生前,Harvest Finance 主要在 Curve 協議 y 池提供流動性。
攻擊者是如何實現攻擊,完成套利的?
先為大家捋一下本次攻擊的邏輯,簡單來說分三步,即「借貸-正向操作價格-逆向操縱價格」:
- 攻擊者通過閃電貸借出大量 USDT 以及 USDC;
- 在 Y 池將大量 USDT 兌換成 USDC,導致 USDC 價格升高;由於 Harvest 池內 USDC 價格參考 Y 池,也跟著上漲;此時再用 USDC 在 Harvest 池兌換更多的 fUSDC;
- 在 Y 池對上述過程逆向操作,將大量 USDC 兌換成 USDT,導致 USDC 價格降低;此時 Harvest 池內 USDC 價格也跟著下降;再用 fUSDC 可以兌換出比原來更多的 USDC,完成套利。
當然,為了使得鏈上交易能在極短的時間內進行,因此每筆交易都給足了手續費。
Harvest Finance 公告介紹了完整的攻擊鏈條:
- 通過以太坊匿名轉賬平台 Tornado.cash 轉入 20 ETH 作為後續攻擊手續費,攻擊者錢包地址是 0xf224ab004461540778a914ea397c589b677e27b,並部署了一個攻擊合約 0xc6028a9fa486f52efd2b95b949ac630d287ce0af。
- 通過 Uniswap V2 閃電貸借出巨額 USDT(18,308,555.417594 ) 與 USDC(5000 萬),注入攻擊合約中;
(注釋:閃電貸要求借款和還款在"一個交易"中完成,否則就撤回借貸資金,攻擊者正是利用了這段空白時間,完成了套利交易;閃電貸套利也是目前較為普遍的一種方式。)
- 該合約在 Curve 協議 Y 池內通過互換協議將 17222012.640506 USDT 兌換成了 USDC。互換的影響是,由於其它資產發生了無常損失,Y 池內的 USDC 價值升高,獲得了 17216703.208672 USDC;此時,攻擊者加上之前閃電貸款的本金,攻擊持有約 6721 萬 USDC、108.65 萬的 USDT。
- 攻擊者將 49,977,468.555526 USDC 存入 Harvest 的 USDC 金庫,按照單價 fUSDC/USDC=0.97126080216,兌換了 51,456,280.788906 fUSDC。攻擊前單價為 0.980007,現在單價 0.9712 環比下降大約 1%,並沒有觸發 Harvest 套利策略設置的 3% 紅線,因此交易有效且成功進行,沒有被強制恢復。
- 攻擊者通過 y 池,將剩餘的 17239234.653146 USDC 兌換回 17,230,747.185604 USDT;由於無常損失效應的恢復,此時 Y 池中 USDC 價值下降,攻擊者獲得 17,230,747.185604 USDT。
- 攻擊者從 Harvest 的 USDC 金庫中提幣,由於此時 Y 池內的 USDC 價值下降,fUSDC/USDC單價升高至 0.98329837664,攻擊者將此前全部的 fUSDC(約 5145 萬)的股份交換回了 50596877.367825 USDC。並且,USDC 完全由 Harvest 的 USDC 金庫支付,完全不與 Y 池交互,也就不會影響 Y 池內 USDC 價格。
- 經過這麼一次套利,攻擊者的凈利潤(不包括閃電貸借貸費用)為 619408.812299 USDC。而後,攻擊者同一筆交易中重複了幾次該過程。
- 在 4 分鐘內,攻擊者針對 USDC 金庫執行了 17 筆攻擊交易後,而後有用類似的方式對 USDT 金庫發起攻擊,並在 3 分鐘內完成了 13 筆攻擊交易。
- 北京時間 10 月 26 日 11:01:48 ,攻擊者將 13,000,000 USDC 和 11,000,000 USDT 從攻擊合約中轉移至地址 0x3811765a53c3188c24d412daec3f60faad5f119b。
- 事件曝光後,攻擊者向 Harvest 返還了部分資金,共計 1761898.396474 USDC 和 718,914.048541 USDT。
攻擊發生後,不少人在 Harvest 推特下留言稱,損失了 15%-20% 的資金。眾多 KOL 也建議用戶先將資金從 Harvest 提出,以確保資金安全。
根據 Harvest 統計,用戶損失情況不容樂觀:USDC 金庫單價從 0.980007 跌至 0.834953,USDT 金庫單價從 0.978874 跌至 0.844812,跌幅分別為 13.8%和13.7%;總計損失的價值約為 3380 萬美元,約佔攻擊發生前協議中鎖倉總價值的 3.2%。
(2)官方態度:補救之外,攻擊者還錢就行
事故發生後,Harvest 團隊發文表示,為了保護用戶,已經採取措施阻止向穩定幣和 BTC 金庫存款,現有存款將繼續賺取 FARM。
根據今天上午公告,Harvest 已經從共享池中撤出所有資金,包括 DAI、USDC、USDT、TUSD以及 WBTC 和 renBTC。這些資金目前存放在金庫中,不會受到進一步的市場操縱。另外,這次攻擊沒有涉及到 DAI、TUSD、WBTC 和 renBTC,這些金庫的儲戶沒有受到影響。
另外,關於用戶補償方面,Harvest 表示,攻擊者退回的 247 萬多美元,將通過快照按比例分配給受影響的儲戶,其他補救方法將在治理中進行分析和表決。
此次事故,也暴露了 Harvest 系統機制所存在的弊病。
慢霧安全團隊分析認為,此次攻擊主要是 fToken(fUSDC、fUSDT等)在鑄幣時採用的是Curve y 池中的報價,導致攻擊者可以通過巨額兌換操控預言機的價格來控制 fToken 的鑄幣數量。
針對報價問題,Harvest 下一步將使用預言機來確定資產價格。
「雖然一個近似的資產價格可有效地從外部預言機(由 Chainlink 或 Maker 提供)中確定,但是它與實際價格的聯繫非常鬆散。如果底層 DeFi 協議內的資產價值與預言機報價不同,金庫將面臨自由套利和閃電貸攻擊。這不是 Harvest 的解決方案,但是,在系統設計和可能的緩解策略中,我們將考慮使用預言機。」
並且,未來 Harvest Finance 將對存款實行「提交-披露」機制,減少閃電貸攻擊,提高存款 arb 配置(當前閾值設置為 3%)。此外,Harvest Finance 原定於 10 月 27 日發布的智能合約改進計劃也將被推遲,以便在攻擊背景下再次評估其安全性。
對於攻擊者,Harvest Finance 公布了相關涉案地址,並發文表示,「除了持有被盜資金的BTC地址,我們現在還獲取了大量關於攻擊者的個人身份信息,他在加密社區頗為有名。」
不過,Harvest Finance 似乎無意追查攻擊者的身份信息。
「我們對公開攻擊者個人信息不感興趣,我們尊重你的技術和獨創性,只要你把錢返還給用戶。攻擊者已經證明了他們的觀點。如果他們能把這筆錢返還給用戶,將會受到社會各界的高度讚賞,將資金返還給受影響的用戶是重點。」
在公告中,Harvest Finance 表示:
- 我們向第一個幫助我們找回資金的個人或團隊提供 10 萬美元的賞金。
- 如果是在接下來的 36 小時內完成退還,則賞金為 40 萬美元。請不要在這個過程中人肉搜索攻擊者,我們強烈建議將所有努力集中在確保用戶資金成功返還給部署人員上。
由於攻擊者一直在通過 RenBTC 進行變現。截止發稿時,Harvest Finance 官方已宣布通過與 RenProtocol 合作,獲取相關 RenBTC 提現地址,並公布了通過 RenProtocol 導出的 BTC 地址,現在正在尋求幣安、火幣、OKEx 和 Coinbase 等交易平台的幫助,希望可以凍結相關地址。
(3)深陷負面輿論的 Harvest Finance
由於 Harvest Finance 對待攻擊者態度較為「曖昧」,不少聲音認為官方監守自盜,上演了一出賊喊捉賊的大戲。
加密 KOL@Bitcoin 發出質疑:
- 事實上沒什麼事能比直接搶用戶本金更賺錢,FARM 總市值就 2500 萬,項目方 20% 的幣,即便所有幣賣完也就賺 500萬,賺千把萬是極限了,而搞這麼一出收益幾千萬。結合項目方對這件事的處理方案,我覺得確實不小的概率項目方監守自盜,所以他們肯定不會把自己搞來的錢在拿去填這個坑;
- 黑客冒著風險,只盜取了幾千萬美元卻沒有直接把上億的池子全部榨乾,明顯是不想讓項目死掉,和團隊的利益是一致的;
- 有投資者在推上問能不能拿部分團隊的幣來補償受害者,Harvest回答資金數額太大了,自己不能承擔。事實上大家都清楚賠不賠和能不能賠得起是兩回事,這個團隊壓根不想賠;
- 據投資者稱,此前社區里的投資者不斷地在反應fusd被套利凈值不斷下跌的情況,但團隊一個多月面對這情況始終視而不見,任由「黑客」套利。
這並不是 Harvest Finance 第一次深陷輿論危機。
就在套利攻擊前兩天,DeFi 觀察者 Chris Blec 就揭示了風險:該項目合約鎖定的 10 多億美元資金完全受匿名開發者的控制,並且開發團隊存在刻意隱瞞這一事實的嫌疑。
CoinTelegraph 援引安全團隊 Haechi 審計報告報告稱,Harvest Finance 擁有一個管理密鑰,可讓持有者隨意鑄造代幣並竊取用戶的資金,該管理密鑰可能由該項目背後的匿名開發者持有。
幣印潘志彪表示,Harvest 沒有進入幣印 DeFi 理財,最大的原因就是沒有通過幣印的風控,他們理論上甚至可以挪用客戶資金,因為缺乏必要的Timelock、多簽管理等保護措施,他們為提高資金使用效率,採用快速生效策略機制,但極大犧牲了安全性。
作為對外界質疑的回應,Harvest Finance 在合約中引入了一個 12 小時的時間鎖功能,但依然未能打消用戶質疑。
經歷了此次攻擊風波,Harvest Finance 鏈上鎖倉量也從 11.1 億美元量已驟降至 4.5 億美元,最大跌幅 60%。
冷萃財經原創,作者:Awing,轉載請註明出處:https://www.lccjd.top/2020/10/28/harvest-finance%e6%94%bb%e5%87%bb%e4%ba%8b%e4%bb%b6%e5%85%a8%e5%a4%8d%e7%9b%98%ef%bc%9a%e5%a6%82%e4%bd%95%e7%94%a820%e4%b8%aaeth%e7%9a%84%e6%88%90%e6%9c%ac%e6%92%ac%e5%8a%a83000%e4%b8%87%e7%be%8e/?variant=zh-tw
文章評論