作者| Leno

12 月 2 日, 知名協議 Badger DAO 發生了一起 DEFI 安全事故,用戶總損失約為 2100 BTC 和 151 ETH,約 1.2 億美元,是今年被盜金額最高的安全事故之一。

其實 DEFI 安全事故早已屢見不鮮,僅僅在今年,Cream Finance 就受到兩次攻擊,最近的一次是 10 月 27 日,損失約 1.3 億美金。首次是 8 月 30 日損失約 1800 萬美元。

在 90 天的時間裡連續兩次遭受閃電貸攻擊,讓其生態系統的脆弱性暴露了出來,駭客們攪亂的渾水里,讓從業者重新把目光放在了安全性上。

更為嚴重的是其弱點屢屢被暴露,包括 NFT 市場和 GameFi 市場,都將會因其安全性受到質疑而發展停滯。我們並不擅長技術分析,但可以通過對比歷次駭客攻擊從邏輯層面嘗試解讀 DEFI 平台目前面臨的安全困局

在了解閃電貸攻擊之前,我們先要了解什麼是閃電貸。

頻繁被駭客利用的「創新金融」—— 閃電貸

在閃電貸中,放貸者和借貸者之間的一切協議和風險都由平台控制,借貸的發生和效率遠高於普通銀行借貸方式,省去了很多資產審查和資質審查環節,因其便捷程度所以被稱之為「閃電貸」

在區塊鏈領域,去中心化金融作為中心化金融在區塊鏈中的映射,其生態系統大量套用了現實中的銀行管理體系,借貸和質押規則等大多與中心化金融的規則體系一致。

只不過中心化的金融體係是由中心化機構制定的規則來執行,有可能出現失誤,而 DEFI 的金融規則的執行均交由智能合約。分散式的結構和完全由智能合約掌控的資產安全性,促進了該領域的發展速度。

2021 年初至今,DEFI 生態系統已經快速發展到了千億美元級別,隨著質押池和用戶資金量的指數級增長,於是也自然出現了 DEFI 閃電貸形式。

閃電貸作為其金融的一種創新型模式,可以實現與跟網路閃電貸一樣的借貸速度和快捷體驗,可以實現無抵押借貸,但要求在同一個區塊內還款,否則成交將回滾無效。

於是,在閃電貸的模式之下,大多數從業者體驗到了無需任何努力和付出的情況下,就能在該平台中秒變「富豪」,利用龐大的資金量和高頻交易挖掘市場收益的感覺。同時,也有大量早期從事閃電貸的用戶獲得了巨額的財富。

但是,閃電貸其中的利益也被駭客們看在了眼裡。惡意攻擊其協議的誘因變的越來越大,以至於出現了更多的駭客,以犧牲普通用戶的資產為代價,通過反覆測試,利用協議漏洞盜取閃電貸質押池內資金的事件。

那麼,駭客究竟是如何進行閃電貸攻擊的呢?

DEFI 閃電貸攻擊

一般認為,閃電攻擊通常利用閃電貸協議和平台漏洞,通過技術手段繞過回滾機制,進行套利或操縱價格,進而通過影響市場價格牟利。

我們通常認為,駭客一般都有兩個目的。一種是為了竊取對方系統中的資料(包括數位資產和其他資料),另一種是為了純粹的技術炫耀,通過攻破對方的防禦系統來彰顯自己的技術實力。

然而,DEFI 領域內的閃電攻擊卻並不像是一個真正的駭客行為,他既不通過暴力破解(其實分散式結構的系統少量駭客幾乎無法破解),也不去尋找系統的漏洞彰顯實力。

從原理上說,DEFI 領域的閃電攻擊通常不像是駭客的手法,使用更多的是利用金融和資金槓桿,以極低的成本撬動市場,在多個協議間進行價格操縱的金融手段。

因此,閃電攻擊的目的一般較為明確,並非是駭客為了顯示直接的技術有多麼厲害的無意識攻擊,而其目的就是大量的數位資產。從這方面說,與其說進行 DEFI 閃電攻擊的是「駭客」,倒不如說這些人是深諳數位資產交易規則的資金巨鱷。

除了上述通過技術手段和金融手段操縱市場進行牟利,致使用戶產生直接的資產損失之外,DEFI 閃電攻擊也會通過操縱治理架構,通過閃電貸攻擊獲取大量生態選票,以更低的成本變更平台的治理規則,從而讓規則無限契合自己的利益,以此來達到牟利的目的。

從資金操縱和治理架構操縱這兩點來說,DEFI 平台一旦被閃電貸攻擊成功,沒有中心化進行干預的 DEFI 智能合約就成了印鈔機,駭客可以通過嚴格遵守合約機制的智能合約源源不斷地從平台中「套出」資金。

為了便於理解,我們可以參考今年以來的歷次閃電貸攻擊事件,從中找出攻擊者的切入點,同時也能看出 DEFI 閃電貸模式最薄弱的部分在何處!

歷次閃電貸攻擊對

1、2021 年 5 月 30 日,BSC 鏈上結合多策略收益優化的 AMM 協議 Belt Finance 遭到閃電貸攻擊

此次攻擊源於攻擊者通過重複買入賣出 BUSD,利用 bEllipsisBUSD 策略餘額計算中的漏洞操縱 beltBUSD 的價格進行獲利。(請注意,此次事件中的攻擊者最終操縱的是 BELTbusd 的價格,並非去掌控用戶和流動池中的資金。)

攻擊方式如下:

第一步:攻擊者首先從 PancakeSwap 中借出 8 筆閃電貸。其中的 1000 萬 BUSD 存入了 bEllipsisBUSD 協議中;

第二步:將 1.87 億 BUSD 存入 bVenusBUSD 策略,再通過 Ellipsis 合約將 1.9 億 BUSD 兌換為 1.69 億 USDT;

這是關鍵的一步,在此次事件中,攻擊者累計進行 7 次提——換——充的操作,這種重複的操作並不會讓攻擊者獲利,但如此巨量的資金流動對 beltBUSD 的價格產生影響。

當 beltBUS 的價格產生影響之後,其實就已經相當於攻擊者操縱了該數位資產的價格,然後攻擊者利用 bEllipsis 合約餘額計算中的漏洞,在進行新一次的提——換——充的時候就能夠產生餘額。也就是說,至此,利潤產生了!

當利潤產生之後,攻擊者通過 Nerve(Anyswap)跨鏈橋將所獲資產分批次轉換為 ETH,然後揚長而去。

2、2021 年 6 月 23 日, ElevenFinance 中與 Nerve 相關的機槍池遭到閃電貸攻擊。

此次攻擊者攻擊的方向是 Eleven Finance 的 Emergencyburn 計算餘額錯誤,且未執行銷毀機制。

攻擊方式如下:

第一步,攻擊者從 PancakeSwap 中借出 BUSD,並將其中一部分 BUSD 兌換成 NRV;這一步是正常的操作,任何人都可以完成。

第二步,攻擊者將 Nerve 和 BUSD 在 PancakeSwap 中添加流動性,獲得 LP token;

第三步,攻擊者將 LP token 放入 Eleven Finance 中與 Nerve 相關的機槍池獲得 nrvbusd LP token;

通過反覆的兌換充提,當攻擊者提取 Pancake LP token 時,ElevenNeverSellVault 中的 Emergencyburn 函數本應銷毀 11 nrvbusd LP token 換回 Pancake LP token,但 Emergencyburn 並未執行 burn(銷毀)這個動作。

攻擊者很快發現了這個漏洞,並加以利用。

隨後該攻擊者又創建了 0x01ea 合約,借出 30.9 BTCB;0xc0ef 合約借出 285.66 ETH 以及 0x87E9 借出兩筆閃電貸 2,411,889.87 BUSD 和 7,693 BUSD 進行攻擊。最終獲利近 460 萬美元後揚長而去。

3、Cream Finance 發生的這次攻擊。10 月 27 日,Cream Finance 被駭客通過在兩個地址(A、B)之間反覆利用「閃電貸」借出和借入資金以利用一個定價漏洞。

攻擊方式如下:

第一步:攻擊者用 A 地址從 MakerDAO 閃電貸獲得了價值 5 億美元的 DAI 穩定幣,並將其 yPool 鑄造 yUSD,然後將 yUSD 存入 Yearn 的 yUSD 策略。

攻擊者用 5 億美元的 DAI 鑄造出了 5 億美元的 crYUSD,請注意,第一步並不存在任何問題,只是一個數額巨大的兌換。

第二步:通過地址 B,攻擊者從 AAVE 閃電貸獲取了價值 20 億美元的 ETH,以用作 CREAM 的抵押品。這允許其再借入約 5 億美元的 yUSD,再次存入以鑄造 crYUSD。

第三步:攻擊者開始在兩個帳戶間進行存入和借出的循環,直到帳戶 A 擁有約 15 億美元的 crYUSD 和約 5 億美元的 yUSDVault。

在反覆循環的操作中,yUSDVault 的價格被這種操作撬動,並產生了波動,本來並無利潤的兌換、鑄造開始產生了利潤。

攻擊完成後,攻擊者攜帶 1.3 億美元的 BTC 和 ETH 揚長而去。

通過以上三個閃電貸攻擊,相信可以大致總結出一個 DEFI 閃電貸平台真正的安全隱患所在了。

DEFI 平台的安全性與脆弱性

仍然要說的是,DEFI 平台的資產安全是可靠的,請注意,這裡說的資產安全是用戶的資產安全。在 DEFI 的質押和成交過程中,用戶的資金完全由智能合約管理,並不通過中心化的團隊或資管平台。因此,平台從用戶資金的安全性上,是沒有問題的。

然而,這種安全是脆弱的。因為一切交易都需要策略的幫助,所以一個平台內往往要兼容很多個協議。協議與協議之間邏輯就有可能產生衝突。這種協議衝突在一般的用戶使用過程中是完全沒有問題的,一般用戶手中的資金也無法引起市場的波動。

但是,當攻擊者利用手中巨額的資金進行價格操縱時,由於沒有中心化的團隊進行管理,這種波動只能任其發生。而由價格波動造成的兌換「餘額」就因此產生了。

每個 Token 的餘額產生是相當小的,但當這種餘額被放大到數億乃至數十億美元的資金量時,就形成了較大的利潤。

當攻擊者利用協議邏輯的衝突和價格操縱完成利潤提取時,因波動造成的「虛假」利潤就會形成一個資金空洞,最終這些空洞將由所有的用戶和平台共同買單,因此,DEFI 閃電貸的安全性又是脆弱的。

在 Cream Finance 被攻擊之後,業內普遍的看法是由於開發團隊急於擴大市場,因此兼容了過多的協議,這種毫無顧忌的兼容正是發生連續攻擊閃電貸攻擊的真正原因。更多人則看到的是,DEFI 閃電貸暴露出的風險將在今後嚴重阻礙行業發展進程。

 小結

Cream Finance 被攻擊,行業不應僅看到最終的損失由誰來買單,用戶的信心如何挽回。更應該看到的是,堅固的底層建築很可能並不能決定上層的穩固程度。

協議漏洞(確切地說是協議設計時就已經存在的漏洞)到底是開發者刻意留下的「後門」,還是被行業巨鱷們盯上的「韭菜地」,這其實才是用戶更加擔憂的。

另外,閃電協議究竟如何在設計之初就規避短時間內的價格波動對協議本身造成的影響,或者說如何規避大規模資金惡意對市場和單個 Token 價格的波動仍需要進一步探討。

無論如何,行業發展不能因噎廢食,但也要知道亡羊補牢。當協議邏輯漏洞被價格操縱放大,帶給行業的損失將是巨大的。現在的行業已經解決了基礎安全問題,是時候對上層建築進行加固和重新定義了。


(以上內容獲合作夥伴 火星財經 授權節錄及轉載,原文連結 | 出處:白話區塊鏈

聲明:文章僅代表作者個人觀點意見,不代表區塊客觀點和立場,所有內容及觀點僅供參考,不構成投資建議。投資者應自行決策與交易,對投資者交易形成的直接間接損失作者及區塊客將不承擔任何責任。


熱門市場動態與新聞傳送門:

區塊客致力於發掘和整理各種與區塊鏈技術有關的內容,只要與區塊鏈或區塊客網站有關的合作和/或建議,我們都非常歡迎。請您發電郵至 [email protected] 與我們聯繫。

Avatar

區塊客