閃電貸攻擊頻發 駭客「空手套」DeFi

半個月內,發生在defi協議上的閃電貸攻擊一起接著一起,閃電貸成了駭客借來生「金蛋」的雞。

進入11月,value defi、起源協議origin protocol、akropolis和cheese bank都遭到了閃電貸攻擊,總損失額超過1000萬美元。

value defi的前身是被稱為「五姨夫」的yfv,它的損失超過540萬美元,這還是駭客「歸還」了200萬美元后的結果。頗有戲劇性的是,在被攻擊前一天,該團隊曾公開表示value是最安全的defi專案,隨後便被駭客「光顧」。

成都鏈安解釋,「閃電貸攻擊」指利用閃電貸和其他漏洞結合後,進行套利和操縱價格等攻擊。「閃電貸本身不是漏洞,不過作惡者可以利用它,以極低的成本撬動巨量資金,在多個協議間進行價格操縱或套利。」

區塊鏈開發者小島美奈子認為,駭客能輕易操縱價格的原因是defi協議沒有采用安全的預言機策略,即當預言機傳達資料失真時,攻擊便極易發生。另有行業人士點出本質,defi協議在實現本身的功能時,採用單一市場價格反饋的設計極其危險。 

「因為是新的事物,很多專案在設計時並未充分考慮到這方面風險。」成都鏈安提示,專案方在業務邏輯設計時,應當考慮這類極端情況,必要時應找專業的審計機構審計。




4天內兩defi協議遭「閃電貸攻擊」


11月17日,起源協議origin protocol的穩定幣ousd遭閃電貸攻擊,價格最低跌至0.13美元。此次攻擊使得origin protocol共計損失了225萬美元的dai和100萬美元的eth。 

就在這起安全事故的3天前,defi協議value defi也被駭客「光顧」,裡面也涉及到閃電貸這一工具。

11月14日23點36分, value defi 的 multistables機槍池遭受駭客攻擊,損失將近740 萬美金的 dai。此前,value defi曾在社交平臺宣佈自己是最安全的defi,結果立馬被打臉。駭客在完成攻擊後還返還了200萬美元,並以「do you really know flashloan(閃電貸)」的提問發出嘲諷。

value defi的multistables機槍池正常頁面

閃電貸似乎成了駭客近來最得心應手的工具。今年以來,多起defi的安全事故都被安全機構指出利用了「閃電貸攻擊」,受害專案方包括bzx、balaner、havest、akropolis、cheese bank等,以及最近的value defi和origin protocol。

「開發者還沒有了解以太坊的特性,」區塊鏈開發者小島美奈子認為,頻頻發生閃電貸攻擊是因為專案開發者對此缺乏瞭解。

閃電貸是什麼?利用它的攻擊到底是怎麼發生的?

jeff是區塊鏈安全公司 peckshied 矽谷研發中心負責人,他對蜂巢財經介紹,區塊鏈上的閃電貸是一種「不需要抵押就可以借貸」的貸款方式,但貸方必須在同一區塊內還貸,否則這個交易就會失敗。所以閃電貸對借款平臺來說基本是零成本、零風險。而駭客就可以利用這樣的貸款方式,以很小的成本借出大筆資金,然後用這筆資金去造成一些數字資產的價格波動,再從中漁利。

根據安全機構的梳理,我們可以清楚地從value defi的這起攻擊中,看到閃電貸攻擊的運作方式。

當晚,駭客先透過 aave 的閃電貸功能借來8萬枚 eth,緊接著透過uniswapv2上的閃電貸借來 1.16億枚 dai。借來大把錢後,駭客開始在curve和value defi上操縱價格進行套利。 

選擇這兩個協議,駭客是利用了它們之間的關聯——curve上有usdc的兌換池,要想在value defi合成資產3crv,也需要用到usdc。

在curve上,駭客主要是用閃電貸借來的錢抬高usdc的價格,一度讓這個美元穩定幣脫錨上漲至1.788美元。而在value defi上,駭客將一部分dai存入該協議的機槍池中,鑄造出名為3crv的合成資產。

value defi機槍池合約中有3種合成資產,分別是3crv、bcrv和ccrv,為了方便計價,該協議合約在鑄幣時會將bcrv、ccrv轉換成3crv 進行計價,轉換途徑需先將bcrv/ccrv換成usdc,再把usdc換成3crv。

問題就出在這裡。由於value defi以curve的價格作為預言機,而curve上usdc的價格已經大幅上漲。因此,當攻擊者發起3crv提現時,合約會照常將bcrv、ccrv 轉換成以3crv計價,但此時usdc/3crv 的價格被操作拉高,導致用bcrv、ccrv 能兌換出更多的3crv。

駭客正是憑此完成了套利,在歸集資產、還完閃電貸後,空手套利740萬美元。

簡單來說,整個過程中,閃電貸本身正常執行,但駭客先後利用aave、uniswapv2的閃電貸功能借出一大筆錢,再透過curve操縱usdc的價格,影響value defi的功能,鑄幣套利。



預言機策略失當是風險源頭


從value defi的失竊案例看,它被攻擊主要是由於預言機出了問題。實際上,被攻擊時只是curve上的usdc價格出現了短暫偏差,其他市場的usdc價格並沒變。但由於value defi採用的是curve現貨價格作為預言機,才導致了套利空間的出現。

小島美奈子認為,防範閃電貸攻擊,需要協議開發者使用安全的預言機(oracle)策略。但怎樣才算得上是安全的預言機策略?這正是目前開發者需要持續探索的難題。

由於閃電貸攻擊頻頻發生,這個功能被一些人貼上了黑標籤。有人認為,閃電貸是危險的工具;還有人覺得,它只是讓協議的漏洞更早暴露出來,對協議的安全提升有益。

chainlink 的cmo adelyn zhou便是帶著發展的眼光來看待閃電貸的兩面性。他認為,閃電貸的新奇之處在於,它可以讓世界上任何一個人短暫地成為資金充裕的交易者,當然,這也讓這個人具備了突然操縱市場的可能性。但本質上,「閃電貸攻擊」這個詞並沒有抓住問題的全部。閃電貸本身不是漏洞,它只是揭示了defi存在已久的系統性風險。

adelyn zhou與小島美奈子的觀點一致,即閃電貸攻擊往往只是對價格預言機的攻擊,「defi生態系統中真正的系統性風險是圍繞著中心化的oracle,而不是閃電貸。」因此,adelyn zhou認為,「閃電貸攻擊」這種說法分散了關注點,一些擁有數億美元tvl(鎖倉量)的defi協議仍然依賴於單一交易所的價格反饋oracle,這才是導致價格容易被操縱的根源。

這其實與一些中心化交易所合約市場被操縱的情況類似。 

去年5月,bitstamp交易所btc現貨價格閃崩,導致合約交易平臺bitmex短時爆倉2萬個比特幣,時值1.5億美元。這是因為,bitmex的btc合約指數成分中採用了bitstamp的btc現貨價格,且權重達50%。而在okex的合約指數成分中,採用了4個以上的交易所現貨價格,且權重分散,因此受到的影響較小。

這或許能給予defi開發者們一些啟示——要在價格預言機這一源頭上下功夫,才能避免因預言機傳達失真資料而帶來的價格操縱風險。

jeff則提供了另一種預防方案,他介紹,根據閃電貸的特性,借貸和取款都要在一個區塊內完成,所以對defi協議開發方來說,更穩妥的設計是不允許在同一個區塊記憶體款和取款,這樣試圖利用閃電貸的駭客便無計可施。

作為一種新的、不存在於傳統金融世界的借貸模式,閃電貸透過區塊鏈被創造,頗有創新意義,但它不應成為駭客的幫兇。defi協議開發者理應在頻頻發生的「閃電貸攻擊」中吸取教訓。成都鏈安提示,專案方在業務邏輯設計時,應當考慮這類極端情況。如果對此不瞭解,應找專業的審計機構進行審計和研究,防範各種可能的風險。


互動時間:

你認為閃電貸是否應該被禁用?


免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读