這是白話區塊鏈的第1508期原創

作者| Leno出品|白話區塊鏈(ID:hellobtc)

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

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

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

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

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

01頻繁被黑客利用的“創新金融”閃電dai

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

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

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

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

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

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

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

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

02

DEFI閃電dai攻擊

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

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

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

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

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

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

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

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

03

歷次閃電dai攻擊對

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

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

攻擊方式如下:

第一步:攻擊者首先從PancakeSwap中藉出8 筆閃電dai。其中的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 相關的機槍池遭到閃電dai攻擊。

此次攻擊者攻擊的方向是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 借出兩筆閃電dai 2,411,889.87 BUSD 和7,693 BUSD 進行攻擊。最終獲利近460 萬美元後揚長而去。

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

攻擊方式如下:

第一步:攻擊者用A地址從MakerDAO閃電dai獲得了價值5 億美元的代穩定幣,並將其yPool鑄造yUSD,然後將yUSD存入Yearn 的yUSD策略。攻擊者用5 億美元的代鑄造出了5 億美元的crYUSD,請注意,第一步並不存在任何問題,只是一個數額巨大的兌換。第二步:通過地址B,攻擊者從AAVE 閃電dai獲取了價值20億美元的ETH,以用作CREAM 的抵押品。這允許其再藉入約5 億美元的yUSD,再次存入以鑄造crYUSD。第三步:攻擊者開始在兩個賬戶間進行存入和借出的循環,直到賬戶A 擁有約15 億美元的crYUSD和約5 億美元的yUSDVault。

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

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

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

04DEFI平台的安全性與脆弱性

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

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

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

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

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

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

05

小結

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

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

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

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