至今年以來,去中心化金融(Defi)協議的安全事故頻傳,多個知名協議都遭閃電貸攻擊。以下文章將由動區專欄作者 白話區塊鏈,帶讀者一同分析駭客在過去閃電貸項目的攻擊手段與獲利資金。
(前情提要:Defi 協議 BadgerDao 驚傳被駭 1 億鎂!最大苦主損失926枚BTC 、代幣重挫16% )
12 月 2 日, 知名協議 Badger DAO 發生了一起 DEFI 安全事故,用戶總損失約為 2,100 BTC 和 151 ETH,約 1.2 億美元,是今年被盜金額最高的安全事故之一。
其實 DEFI 安全事故早已屢見不鮮,僅僅在今年,Cream Finance 就受到兩次攻擊,最近的一次是 10 月 27 日,損失約 1.3 億美金。首次是 8 月 30 日損失約 1,800 萬美元。
在 90 天的時間裡連續兩次遭受閃電貸攻擊,讓其生態系統的脆弱性暴露了出來,駭客們攪亂的渾水裡,讓從業者重新把目光放在了安全性上。
更為嚴重的是其弱點屢屢被暴露,包括 NFT 市場和 Gamefi 市場,都將會因其安全性受到質疑而發展停滯。我們並不擅長技術分析,但可以透過對比歷次駭客攻擊從邏輯層面嘗試解讀 DEFI 平台目前面臨的安全困局。
在了解閃電貸攻擊之前,我們先要了解什麽是閃電貸。
延伸閱讀:Cream Finance第三度遭閃電貸攻擊、損失 1.3 億美元,駭客留下神秘訊息
頻繁被駭客利用的「創新金融」閃電貸
在閃電貸中,出借者和借貸者之間的一切協議和風險都由平台控制,借貸的發生和效率遠高於普通銀行借貸方式,省去了很多資產審查和資質審查環節,因其便捷程度所以被稱之為閃電貸。
在區塊鏈領域,去中心化金融作為中心化金融在區塊鏈中的映射,其生態系統大量套用了現實中的銀行管理體係,借貸和質押規則等大多與中心化金融的規則體係一致。
只不過中心化的金融體系是由中心化機構制定的規則來執行,有可能出現失誤,而 DEFI 的金融規則的執行均交由智能合約。分佈式的結構和完全由智能合約掌控的資產安全性促進了該領域的發展速度。
2021 年初至今,DEFI 生態系統已經快速發展到了千億美元級別,隨著質押池和用戶資金量的指數級成長,於是也自然出現了 DEFI 閃電貸形式。
閃電貸作為其金融的一種創新型模式,可以實現與網路閃電貸一樣的借貸速度和快捷體驗,可以實現無抵押借代,但要求在同一個區塊內還款,否則成交將回滾無效。
於是,在閃電貸的模式之下,大多數從業者體驗到了無需任何努力和付出的情況下,就能在該平台中秒變「富豪」,利用龐大的資金量和量化交易挖掘市場收益的感覺。同時,也有大量早期從事閃電貸的用戶獲得了巨額的財富。
延伸閱讀:被誤解的閃電貸:我只是一個工具
但是,閃電貸其中的利益也被駭客們看在了眼裡。惡意攻擊其協議的誘因變的越來越大,以至於出現了更多的駭客,以犧牲普通用戶的資產為代價,通過反覆測試,利用協議漏洞盜取閃電貸質押池內資金的事件。
那麽,駭客究竟是如何進行閃電貸攻擊的呢?
DEFI 閃電貸攻擊
一般認為,閃電攻擊通常利用閃電貸協議和平台漏洞,通過技術手段繞過回滾機制,進行套利或操縱價格,進而透過影響市場價格牟利。
我們通常認為,駭客一般都有兩個目的,一種是為了竊取對方系統中的資料(包括數位資產和其他資料),另一種是為了純粹的技術炫耀,透過攻破對方的防禦系統來彰顯自己的技術實力。
然而,DEFI 領域內的閃電攻擊卻並不像是一個真正的駭客行為,他既不透過暴力破解(其實分布式結構的系統少量駭客幾乎無法破解),也不去尋找系統的漏洞彰顯實力。
從原理上說,DEFI 領域的閃電攻擊通常不像是駭客的手法,使用更多的是利用金融和資金槓桿,以極低的成本鞘動市場,在多個協議間進行價格操縱的金融手段。
因此,閃電攻擊的目的一般較為明確,並非是駭客為了顯示直接的技術有多麽厲害的無意識攻擊,而其目的就是大量的數位資產。從這方面說,與其說進行 DEFI 閃電攻擊的是「駭客」,倒不如說這些人是數位資產交易規則的資金巨鱷。
除了上述透過技術手段和金融手段操縱市場進行牟利,致使用戶產生直接的資產損失之外,DEFI 閃電攻擊也會透過操縱治理架構,透過閃電貸攻擊獲取大量生態選票,以更低的成本變更平台的治理規則,從而讓規則無限契合自己的利益,以此來達到牟利的目的。
從資金操縱和治理架構操縱這兩點來說,DEFI 平台一旦被閃電貸攻擊成功,沒有中心化進行干預的 DEFI 智能合約就成了印鈔機,駭客可以透過嚴格遵守合約機制的智能合約源源不斷地從平台中「套出」資金。
為了便於理解,我們可以參考今年以來的歷次閃電貸攻擊事件,從中找出攻擊者的切入點,同時也能看出 DEFI 閃電貸模式最薄弱的部分在何處!
歷次閃電貸攻擊對
1、2021 年 5 月 30 日,BSC 鏈上結合多策略收益優化的 AMM 協議 Belt Finance 遭到閃電貸攻擊。
此次攻擊源於攻擊者通過重覆買入賣出 BUSD,利用 bEllipsisBUSD 策略餘額計算中的漏洞操縱 beltBUSD 的價格進行獲利。(請注意,此次事件中的攻擊者最終操縱的是 BELTbusd 的價格,並非去掌控用戶和流動池中的資金。)
延伸閱讀::Belt Finance遭閃電貸攻擊,BSC鏈上本週第四起!Fork Curve潘朵拉盒子已打開?
攻擊方式如下:
第一步:攻擊者首先從 PancakeSwap 中借出 8 筆閃電dai。其中的 1,000 萬 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 計算餘額錯誤,且未執行銷毀機制。
延伸閱讀:BSC鏈上聚合器 Eleven Finance 遭駭!邏輯漏洞連環「閃電貸攻擊」,共損失 512 萬美元
攻擊方式如下:
第一步,攻擊者從 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 億美元的代穩定幣,並將其 yPool 鑄造 yUSD,然後將 yUSD 存入 Yearn 的 yUSD 策略。
攻擊者用 5 億美元的代鑄造出了 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 閃電貸的安全性又是脆弱的。
延伸閱讀:DeFi安全專欄|拆解Cream.Finance「ERC-777重入攻擊」,駭客獲利1,880萬美元
在 Cream Finance 被攻擊之後,業內普遍的看法是由於開發團隊急於擴大市場,因此兼容了過多的協議,這種毫無顧忌的兼容正是發生連續攻擊閃電貸攻擊的真正原因。更多人則看到的是,DEFI 閃電貸暴露出的風險將在今後嚴重阻礙產業發展進程。
總結
Cream Finance 被攻擊,產業不應僅看到最終的損失由誰來買單,用戶的信心如何挽回。更應該看到的是,堅固的底層建築很可能並不能決定上層的穩固程度。
協議漏洞(確切地說是協議設計時就已經存在的漏洞)到底是開發者刻意留下的「後門」,還是被產業巨鱷們盯上的「韭菜地」其實才是用戶更加擔憂的。
另外,閃電協議究竟如何在設計之初就規避短時間內的價格波動對協議本身造成的影響,或者說如何規避大規模資金惡意對市場和單個 Token 價格的波動仍需要進一步探討。
無論如何,產業發展不能因噎廢食,但也要知道亡羊補牢。當協議邏輯漏洞被價格操縱放大,帶給產業的損失將是巨大的。現在的產業已經解決了基礎安全問題,是時候對上層建築進行加固和重新定義了。
📍相關報導📍
Cream Finance第三度遭閃電貸攻擊、損失 1.3 億美元,駭客留下神秘訊息
台灣Defi | Cream Finance再遭閃電貸駭客攻擊,損失1,800萬美元的 ETH, AMP
乾貨 | Amber 安全專家吳博士:剖析 BSC 的閃電貸攻擊手法,如何再引發 3 個分叉項目連環爆?
讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。
LINE 與 Messenger 不定期為大家服務