《鏈新聞解析》閃電貸花13秒無本套利36萬美元如何辦到的,又怎麼善後呢?

套利是一種相當看重資本的獲利方式,擁有越多資本才能有越多的套利空間與操作機會,然而,不久前卻有駭客利用 DeFi 協議,無本套利獲得了 36 萬美元的巨額利潤,讓我們來看看,這名駭客是如何遊走在不同協議之間並成功獲利。

 

閃電貸(Flash Loan)

source:Aave

在此之前,要先介紹什麼是閃電貸。閃電貸現在是 DeFi 界熱議的話題,其最大的魅力在於,能夠在無須任何抵押品的情況下,借入資產,又或者說獲得資產的「流動性」。但前提是,操作閃電貸時借入與還款都必須在同一筆交易中完成。

具體操作上,你必須有能力編寫一份智能合約,合約內容是告訴以太坊網路,你要將這筆借入的 ETH 發送到一個 A 交易所以較低的價格購買某資產並以較高的價格在 B 交易所售出該資產,並在最後歸還借入的資產。

礦工會負責審核所有交易的有效性,並確認最終一定會執行還款的動作,才會確認交易,將資產借出。從上述例子不難看出,由於零成本,且所有操作被整合在一起,因此,閃電貸用來實現 DeFi 平台或合約之間的低成本價差套利是再適合不過了。

無本套利策略

接下來我們來看看,這名駭客是如何利用閃電貸,在短短 13 秒左右,零成本套利 360,000 美元。

  1. 首先,在 DyDx 平台上透過 Aave 的閃電貸(Flash Loan)協議借入 10,000 ETH(價值約 300 萬美元)。
  2. 將一半 ETH 抵押在 Compound 借入 112 顆 WBTC(以太坊上的比特幣),另一半 ETH 發送給 bZx 的去中心化保證金交易平台,做空 WBTC。
bZx 的去中心化保證金交易平台 Fulcrum 遭放空(source:Fulcrum)
  1. 接著將從 Compound 借入的 112 顆 WBTC 發送至 Uniswap 並以低價售出。
  2. 平空倉,償還 10,000 ETH 的貸款。
  3. 數鈔票。

由於上述操作僅用一筆鏈上交易完成,因此僅花費了駭客 13 秒的時間與 8.71 美元的礦工費。雖然現貨砸盤期貨做空獲利並不是什麼新奇的操作,只要錢夠多,任何人都能成功,但這次之所以這麼特別,正是因為閃電貸讓駭客不需要擁有前期資本,就算是再貧窮的人,只要會寫智能合約,都可以利用此方式套利,這在過去是前所未聞的。

價格數據源漏洞

這次的駭客之所以能夠成功實現零成本套利,其中最重要的一點是 bZx 平台上的 WBTC 合約價格,只參考 Uniswap 的價格數據,因此,只要有人在 Uniswap 上出售大量 WBTC,就會導致 bZx 平台上的 WBTC 合約價格與實際價格脫鉤暴跌。

倘若 bZx 平台上的 WBTC 合約價格預言機能夠追蹤 Coinbase、Binance 或 Huobi 等大型交易所的實時價格,這次的事件就不會發生了,值得深思的是,目前有許多 DeFi 項目,都跟 bZx 一樣存在預言機漏洞。

而 bZx 在被攻擊後意識到問題的嚴重性,立即宣布集成去中心化預言機平台 ChainLink 作為價格數據源之一。bZx 表示

「我們在昨天和 ChainLink 團隊進行了討論,創始人也都見過 ChainLink 的執行長Sergey Nazarov 很多次了,我們將集成 ChainLink。」

bZx 將強制徵收駭客的保證金

除此之外,bZx 也在昨晚發布了有關此事件的最新訊息。其聲稱平台上的所有用戶都沒有損失任何錢,並聲稱攻擊者在交易所留下了價值 60 萬美元的 WBTC,bZx 計畫使用「管理員密鑰」徵收這筆錢並將其分發給交易所的其他用戶。

所謂的「管理員密鑰」是大部分 DeFi 項目硬性融入協議中的設計,萬不得已才會使用的保護措施。管理員密鑰除了能夠讓去中心化應用進行升級或更新時對協議進行修改,而不需要將整個智能合約打掉重練外,管理員密鑰另一個最大的功能是能夠控制託管在智能合約中的資產。

為了避免協議發生不可預期的風險而導致大規模的用戶資產損失,管理員密鑰能夠在發生問題時,挽救用戶的資產,這就是為什麼 bZx 是去中心化協議,卻有能力強制徵收駭客資產的原因。

然而,管理員密鑰明顯存在單點故障問題,用戶必須信任交易所背後的團隊,會管理好該密鑰或不會監守自盜。考慮到 DeFi 的最大訴求是消除這種信任問題,「管理員密鑰」可能是目前大部分去中心化應用相當大的弱點之一。

《2/18 14:37更新》

bZx 共同創辦人 Kyle Kistner 在 Telegram 群中表示再度遭利用,賺取 ETH。Kistner 表示可以用上回的處理方式善後。Twitter公告也表示:由於出現可疑交易並在去中心化交易所 Synthetix 上交易,因而再度暫停協議。

最先爆出此消息的 The Block 媒體編輯 Larry Cermak ,隨後也在推特解析這次的「優雅手法」:

請見《閃電貸又遭利用!攻擊者大賺 64 萬美元,天才步驟全解析》

《2/19 17:20更新》

bZx 已用管理者密鑰移除智能合約上的時間鎖(timelock),直到確認系統問題解決。

衍伸閱讀


立即加入 Telegram 獲得最完整的金融科技資訊、區塊鏈新知、業界實例!