別再怪“閃電貸”了,bZx連遭攻擊的真兇是它

買賣虛擬貨幣

作者:海倫

一週內,DeFi貸款協議bZx遭遇兩次攻擊,攻擊者空手套白狼,十幾秒套利超百萬美金。這一事件被高度關注,因為它並非一起簡單的、針對單一漏洞的“駭客式”攻擊,而是在充分了解DeFi的情況下,利用各產品特點組合出拳。這起攻擊事件或許暴露出DeFi系統性金融風險的隱患,並對行業發展的路徑選擇,具有醍醐灌頂的警示意義。筆者先說結論:

1. bZx被攻擊是因自身產品設計漏洞,喂價完全依賴第三方,沒有考慮接入方的機制,也沒有經過極限壓力測試;2. 對於其他DeFi產品,也要謹慎考慮所接入的其他協議可能會對本身協議造成的影響和⻛險,防止協議呼叫導致的系統性風險;3. 對於生態發展,開發炫技式產品和構建無限槓桿似乎成為一種風氣,這是不健康的,DeFi的初心本應是開放式普惠金融。

回顧:攻擊者借刀殺bZx,空手套得百萬美金

首次攻擊發生在2月15日,攻擊者透過“閃電貸”0成本借得1萬個ETH作為初始資金,利用多個DeFi協議的相互呼叫,實現了一筆非常不合理的交易。

第一步:透過“閃電貸”0抵押物從dYdX借出1萬個ETH;第二步:將其中5500 ETH在Compound中抵押借貸112 WBTC 的貸款抵押;第三步:將1300ETH在bZx被髮送到fulcrum,開啟了一個ETH/BTC交易對的5倍槓桿空頭頭寸;第四步:透過 Kyber Reserve 到 Uniswap WBTC pool 賣 5637 ETH(150 萬美金), 獲得 51.34BTC(51 萬美金);第五步:把 Compound 借出來的 112 BTC,在 Uniswap WBTC pool 賣 112 WBTC, 獲得 6800 ETH;第6步:將 3200 ETH + 6800 ETH(賣 112 BTC 獲利)= 10000 ETH 還給 dydx。

筆者也做了一個表格還原資產變化和最終結果:

據悉,攻擊者獲得總利潤為 1193 ETH,目前價值 29.8萬美元。鏈上資料顯示,攻擊者已將所獲資金轉移到了Compound。理論上,Compound 可以使用管理員金鑰沒收資金,但根據Chris Blec 發起的投票,支援沒收資金的僅佔 12.3%,反對者佔 69.5%。Hydro創始人李天放表示「使用管理者許可權非常損害信任,Compound沒有因為攻擊遭受損失,不太可能犧牲自己的信任幫競爭對手找錢。」「Compound也可以發起社羣投票,徵詢這種使用者(攻擊者)是否受歡迎,如果Compound社羣一致抵制,就可以凍結資金。」數字文藝復興基金會董事總經理曹寅表示。

今日(2月18日),bZx再次發現了使用“閃電貸”進行的可疑交易,目前沒有證據表明是同一個攻擊者。儘管首次攻擊發生之後,bZx 關閉了 Fulcrum 交易平臺進行維護,但該攻擊者再出新招,使用了Synthetix進行交易,目前bZx 已暫時關閉被利用的合約。Ethhub 創始人 Eric Conner估算到,這一次攻擊者獲利 2,388 個 ETH,約64.4萬美金。

有趣的是,儘管bZx官方表示這次的損失跟“預言機”沒有任何關係。但在首次攻擊發生後,bZx宣佈將新增整合預言機平臺 ChainLink 作為價格來源之一。「目前看來,ChainLink能夠在真實反映價格和預言機去中心化之間找到比較好的平衡,避免Uniswap等去中心化交易所喂價機制流動性不足導致的價格失真問題」曹寅表示。

澄清:bZx首次攻擊為產品漏洞,第2次是價格操控

對於bZx的首次攻擊,早期網友將其解讀為價格被操縱。但真實情況是「利用了bZx的合約漏洞,借了大筆錢,然後在bZx接入的Kyber和Uniswap上操縱價格,套利成功。」MakerDao中國社羣負責人潘超表示。但今日針對bZx的第二次攻擊,確為價格操控的方式。

我們來具體解釋下,幾個協議之間的關係。bZx是一個保證金交易協議,使用者可以抵押一種幣作為保證金,在某個槓桿下借出另一種幣。但是這兩個幣的浮動匯率是多少呢?bZx需要呼叫預言機或者去中心化交易所來喂價。在第一起攻擊中,bZx 使用 Kyber 作為鏈上預言機來檢查抵押品和借貸的比例。

而Kyber作為去中心化代幣交易協議,它有很多儲備庫來提供流動性。儲備庫為兌換者們提供代幣兌換,它可以是有豐富代幣的個人,也可以是專業的做市商、專案團隊、DEX等。而且為了獲得競爭力,Kyber設計成為兌換者提供最好的兌換匯率,Uniswap就是Kyber的儲備庫之一。

在第一輪攻擊中,攻擊者在bZx上發起了保證金交易,抵押1300個ETH用5被槓桿兌換51.3個WBTC的行為,拉高了Uniswap上WBTC兌ETH的相對價格,此時攻擊者再將從Compound 借出來的112 WBTC在此價位兌換成ETH,於是就獲得了利潤。

不可否認,儲備池式DEX的確交易深度不夠、流動性不足。試想一下,攻擊者僅用1300個ETH就拉高了WBTC的價格,這在主流的中心化交易所大概率不會發生。

究其根本原因,bZx被 “騙”在uniswap上做了一筆非常不合理的交易,只能怪自己太依賴第三方。「此型別的攻擊方案只針對於bZx這種完全依賴第三方AMM(automatic marker maker)的DeFi產品,在dydx, DDEX,和compound等型別產品中並不存在」李天放表示。

因此,bZx被攻擊的主要原因是「它自身存在設計上的失誤,沒有考慮到Kyber聚合型交易所的喂價機制,也沒有經過極限的壓力測試,於是被人利用了。」曹寅表示。從結果上來看,本次攻擊也沒有影響到其他協議,損失由bZx承擔。

詰問:“閃電貸”和協議呼叫,誰才是魔鬼武器?

攻擊事件讓“閃電貸”進入了大眾視線,這是攻擊者無成本套利的關鍵。“閃電貸”是在一個區塊內在不同 DeFi 借貸平臺發起多筆交易的方式,也就是不同資產和債務之間的轉貸。“閃電貸”也是一種無需抵押物的借貸方式,前提是貸款的發行和償還必須在以太坊同一個區塊內完成,按照目前以太坊的出塊速度,就是 13 秒。如果不是空手借來的ETH,而是超額抵押借貸模式,還會出現這個情況嗎?筆者採訪的幾位嘉賓有不同的看法。

曹寅表示,“閃電貸”本身沒問題,但應該要限制“閃電貸”的使用場合,不能讓大家隨意呼叫這個協議,尤其是在DeFi這樣一個無監管、去中心化、程式碼即法律的場景裡,肯定要謹慎使用。他用了一個很形象的比喻:

現在的DeFi從功能的完善度上,就是一隻猴子。而“閃電貸”則相當於一把槍,你給了猴子一把搶,那會有什麼好結果呢?猴子現在需要學習用火,學會種地,學會服務實體經濟,而不是純金融工具型別的DeFi協議。

但李天放認為,“閃電貸”只是降低了攻擊的門檻。就算沒有“閃電貸”,一個本來就很有錢的以太坊賬號也可以做出同樣的攻擊。當然“閃電貸”的存在讓這類攻擊變得更容易,合約設計者必須需要考慮到此現象的存在。

潘超也認為,閃電貸本身不是問題,而是協議之間的耦合問題。「本次攻擊的漏洞對於獨立的單個協議而言沒有問題,但是幾個協議聯絡起來就會被成功攻擊,結果就是雖然賬戶裡沒有資產,但依然可以空手套白狼,或者說是借刀殺人,利用其他協議的漏洞借錢,損失讓其他協議承擔。」就像bZx團隊“狡辯”的那樣,「從協議的角度來看,只是有人簡單地借了一筆錢,而從貸方的角度來看,這筆貸款與其他任何貸款一樣,照常支付利息。」

「這也給了 DeFi 從業者一個警示,設計產品是要謹慎考慮所接入的其他協議可能會對本身協議造成的影響和⻛險」潘超表示。DeFi各產品的智慧合約自由呼叫,增加了很多不確定性因素,那麼應該予以限制嗎?

針對這個問題,李天放表示,所謂的”admin key“(管理者許可權)在各個合約之間中是非常不一樣的,而且並不是個0或1的選擇,在每類操作中你都可以選擇留出full control, limited control, time delayed control等。

「每個合約的設計者需要在”去中心化“和“便於操作”中做出一系列選擇。比如DDEX為了避免中心化,留的管理者許可權非常少。當然這也有一些不便,比如我們不能隨便升級合約的一些模組,加功能,移動資產,哪怕是“為了使用者好”的操作。」他最後說到,時間會告訴我們正確的選擇是什麼。

反思:無限槓桿意義何在,DeFi開發者勿忘初心

對於此次攻擊事件,筆者的直觀感受是DeFi很多產品的主要用途就是“加槓桿”,這讓我想到2008年經濟危機起因,就是華爾街把房地產打包成各種證券產品,製造了太多槓桿,同時讓人們以很低的成本貸款。這和如今DeFi行業做的事情多麼相似。

這究竟有什麼意義?

你說的很對,每個DeFi專案都應該考慮這些問題。一個好的協議設計應該鼓勵更多有價值的”win win”行為。如果一類行為真的是空手套白狼,對整個系統是負價值的,也許協議上可以做一些調整來改善整個系統價值」李天放表示。

然而,DeFi社羣不僅沒有因為攻擊事件變得審慎,反而在推波助瀾。筆者注意到了兩件事:

1.0x 的研發人員 Remco Bloemen 提出直接在代幣的合約中建立免費無限的閃電貸款;2.1inchExchange 新推出的1x.ag,利用“閃電貸”提高槓杆倉位的效率,來做無限槓桿。

「DeFi中造價值的角色有個共同點:它們都需要承擔風險。比如做市商需要承擔風險,liquidator(清算者)需要承擔風險。但是“閃電貸”和“無風險套利”之都是在一個區塊中做操作,空手套白狼」李天放表示。

這暴露出這個行業的開發者存在誤區,就是以“炫技式”的心態,去做一些DeFi協議的開發。」曹寅一刀見血的指出。

DeFi的初心究竟是什麼?這值得建設者和擁護者反思,曹寅的這幾段話非常有道理:

對於投機者來說,高杆杆、空手套白狼,肯定喜歡這樣的工具。雖然套利行為對促進資訊有效性,降低交易成本能夠起到一定的作用。但無限槓桿可能帶來連環性事故,釀成系統性風險。按照DeFi目前的發展方式,這種情況很有可能會發生。

我們做DeFi的初心是什麼?是為了服務那些沒有金融基礎設施的的中小企業、創業者、普通生產者。我們降低中心化帶來的摩擦成本,去掉完全沒必要的中介成本,同時把資料所有權和金融所有權,從不靠譜的中心化機構手裡搶回來,還給生產者,這才是我們做DeFi的初心。

DeFi的開發者,是想做一個服務全球人類,讓金融成為一種普惠商品,讓資料回到生產者和消費者手裡的開放金融市場?還是要做一個沒有監管,無限槓桿,非常投機性的賭場?大家到底想做什麼事,這很重要。

免責聲明:

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

推荐阅读

;