02月15日,bZx團隊在官方電報群上發出公告,稱有黑客對bZx協議進行了漏洞攻擊,且已暫停除了借貸外的其他功能。對于攻擊細節,bZx官方并沒有進行詳細披露。
PeckShield安全人員主動跟進bZx攻擊事件,發現這起事件是針對DeFi項目間共享可組合流動性的設計進行攻擊,特別在有杠桿交易及借貸功能的DeFi項目里,該問題會更容易被利用。
Figure1:FiveArbitrageStepsinbZxHack
漏洞的攻擊細節如下:
此攻擊事件發生在北京時間2020-02-1509:38:57。攻擊者的transaction信息可以在?etherscan?上查到。此攻擊過程可以分為以下五個步驟:
第一步:閃貸獲取可用資金
攻擊者通過在部署的合約中調用了?dYdX閃貸功能借入了10,000個?ETH。這部分是已知的dYdX的基本借貸功能,我們不做進一步解釋。
Lionel Lim:Luna與FTX的崩潰事件不是區塊鏈技術的失敗:金色財經報道,星展銀行Digital Exchange首席執行官Lionel Lim表示,Terra-Luna與FTX的崩潰事件嚴重動搖了人們對加密貨幣的信心,可以說引發了該行業 15 年歷史上最可怕的生存危機。盡管資產類別今年有所復蘇,比特幣今年迄今已上漲近 65%,但這些里程碑仍然是反思去年挫折以及該行業如何更好地重建的最佳時機。
我們應該承認,這些事件不是區塊鏈技術的失敗,而是風險管理和公司治理不善的結果,一些失敗的公司存在欺詐行為。市場繼續認識到區塊鏈的完整性和創新潛力, FTX 崩潰后大量資金流入去中心化交易所,以及對以太坊的權益證明 (PoS) 過渡和 Shapella 升級的積極反應證明了這一點。2022 年的事件表明,要讓行業向前發展,投資者保護、透明度、穩健的治理結構和為客戶提供價值必須回到交易所建立和運營方式的最前沿。擁抱這些價值觀的 CEX 將發現自己具有競爭優勢,因為投資者越來越依賴可信賴的集中式平臺來管理他們的數字資產組合。[2023/5/26 10:40:46]
Figure2:FlashloanBorrowingFromdYdX
當第一步操作過后,如下表中攻擊者資產,此時并沒有收益:
本月底前將迎來6個Token解鎖,包括GLMR、Aptos等:1月2日消息,據Token Unlocks數據顯示1月16日至1月27日期間有6個Token計劃解鎖,總金額約合1.69億美元。分別是:Moonbeam(GLMR,解鎖46,182,879.41枚)、Aptos(APT,解鎖4,543,478.03枚)、BitDAO(BIT,解鎖187,500,000.02枚)、ApeCoin(APE,解鎖7,343,750枚)、Axie Infinity(AXS,解鎖4,893,759枚)和Ronin(RON,解鎖41,932,626枚)。[2023/1/3 22:21:28]
第二步:囤積WBTC現貨
通過第一步閃貸獲得ETH后,攻擊者將其中的5,500ETH存入Compound作為抵押品,貸出112WBTC。這也是正常的Compound借貸操作,貸出的WBTC將在第四步中被拋售。
數據:在過去的12小時內,價值1760萬美元的多頭中有87.76%被平倉:金色財經報道,據coin360數據顯示,在過去的12小時內,價值1760萬美元的多頭中有87.76%被平倉。在過去的7天里,以太坊產生了2030萬美元的費用,是BNB Chain的5.2倍、BTC的15.6倍。它在過去7天的收入為1700萬美元,是BNB Chain的44倍,并且是為數不多的錄得正收益的公鏈。[2022/12/15 21:47:04]
Figure3:WBTCHoardingFromCompound
在此步驟操作后,我們可以看到關于攻擊者控制的資產發生了改變,但此時仍然沒有獲益:
第三步:杠桿拉盤WBTC價格
利用bZx的杠桿交易功能,做空ETH購入大量WBTC。具體步驟是:攻擊者存入1,300ETH并調用bZx杠桿交易功能,即接口mintWithEther(),在內部會繼續調用接口marginTradeFromDeposit()。接下來,攻擊者將從bZx5倍杠桿獲得的5,637.62個ETH,通過?KyberSwap兌換成51.345576WBTC。請注意,此處做空ETH是借來的5倍。本次交易導致將WETH/WBTC的兌換率提高到109.8,大約是正常兌換率的3倍。
FTX相關地址買入116,915枚BNB,買入價為395美元:11月12日消息,據Lookonchain數據顯示,以 0x59ab 開頭 FTX 相關地址用用 4620 萬枚 USDT 買入 116,915 枚 BNB,買入價為 395 美元。[2022/11/12 12:55:59]
為了完成此交易,KyberSwap基本上會查詢其儲備金并找到最優惠的匯率,最終只有Uniswap能提供這樣的流通性,因此這個交易從本質上推動了Uniswap中WBTC價格上漲了3倍。
Figure4:MarginPumpingWithbZx(andKyber+Uniswap)
應該注意的是,這步操作在合約內部實現有個安全檢查邏輯,但是實際上在交易之后并沒有驗證鎖倉值。也就是說,當攻擊發生時,此檢查沒有啟用,我們在后面會有一節詳細介紹此合約中的問題。
在這一步之后,我們注意到關于黑客控制的資產有以下改變。不過,在這一步之后仍然沒有獲利。
跨鏈流動性聚合器Chainge已集成ETHW鏈:9月18日消息,跨鏈流動性聚合DEX Chainge Finance發推稱,其App已經集成EthereumPoW(ETHW)鏈,支持WETHW、ETH、WBTC、USDT、USDC、BUSD、DAI 、BNB等資產跨鏈操作。[2022/9/18 7:04:33]
第四步:拋售WBTC現貨
在Uniswap中WBTC價格飆升后,攻擊者將第二步中通過Compound借的112WBTC全部賣給Uniswap并返還了相應的WETH。
這次交易攻擊者共計獲得6,871.41個ETH的凈額作為回報。在這一步之后,可以看到攻擊者已經獲得不少利潤。
Figure5:WBTCDumpingWithUniswap
第五步:閃貸還款
攻擊者從拋售的112WBTC中獲得的6,871.41個ETH,將閃貸的10,000個ETH償還給dYdX,從而完成閃貸還款。
在這一步之后,我們重新計算了以下資產詳情。結果顯示,攻擊者通過此次攻擊獲得71ETH,加上這兩個鎖倉:Compound和bZx。bZx鎖倉處于違約狀態,Compound的鎖倉是有利可圖的。顯然,在攻擊之后,攻擊者就開始償還Compoud債務以贖回抵押的5,500個WETH。由于bZx鎖倉已經處于違約狀態,攻擊者也不再感興趣了。
參考1WBTC=38.5WETH的平均市場價格,若攻擊者以市場價格購入112WBTC花費約需4,300個ETH。此112WBTC用以清償Compond債務并取回抵押品5,500ETH,則最終攻擊者總共獲利為?71WETH+5,500WETH-4,300ETH=1,271ETH,合計大約$355,880。
硬核解析:bZx可規避風險代碼邏輯缺陷
通過前面攻擊者在合約中實現的步驟可以看出,問題的核心原因是在第三步調用marginTradeFromDeposit()通過借貸的1,300ETH,加5倍杠桿來實現做空ETH/WBTC交易的,于是
我們進一步審查合約代碼,發現這是一個「可避免的套利機會」,但因為代碼存在的邏輯錯誤造成可用于規避風險的代碼邏輯沒有生效。具體代碼追蹤如下:
首先是marginTradeFromDeposit()調用_borrowTokenAndUse(),此處由于是以存入的資產作杠桿交易,第四個參數為true。
在_borrowTokenAndUse()里,當amountIsADeposit為true時,調用_getBorrowAmountAndRate()并且將borrowAmount存入sentAmounts。
在1,355行,sentAmounts被設置為sentAmounts并且于第1,370行調用_borrowTokenAndUseFinal()
經由IBZxinterface進入bZxContract的takeOrderFromiToken()函數。
bZxContract屬于另一個合約?iTokens_loanOpeningFunctions?于是我們我們繼續分析合約代碼,在函數中發現有一個關鍵的邏輯判斷:
在第148行,bZx事實上嘗試利用oracle合約的shouldLiquidate()檢查這個杠桿交易的倉位是否健康。然而,因為第一個條件已經為true,則繼續執行,而忽略了shouldLiquidate()的邏輯判斷。
事實上,在合約?BZxOracle?的shouldLiquidate()中實現了對getCurrentMarginAmount()<=loanOrder.maintenanceMarginAmount判斷,如果執行到shouldLiquidate()就可以有效避免這個攻擊的發生。
如前所述,這是一次很有意思的攻擊,它結合了各種有趣的特性,如貸款、杠桿交易和拉高價格等。之所以可能發生這種攻擊,是因為當前項目共享可組合流動性的設計。特別是,5倍杠桿交易允許用戶以相對較低的成本借入大量代幣,加上DeFi項目間共享的流動性,導致交易價格更容易被操控。
一、引言: 2020年2月初,比特幣價格重新站上10,000美元的大關。然而僅僅在兩個月前,比特幣度過了近半年的熊市,下挫至6,800美元,跌幅高達40%,市場一度充滿悲觀情緒.
1900/1/1 0:00:002月14日,世人矚目的Voice公測版上線。瀏覽Voice網站,已經有了新變化。一、首頁,依然是原有單色鋪底的簡潔風格,但是宣傳文字有了新內容.
1900/1/1 0:00:00作者丨不二做 編輯丨門人 運營丨小石頭 天下苦熊久矣。 北京時間2月9日上午11點14分,比特幣價格突破一萬美元大關.
1900/1/1 0:00:00Hi體驗新鮮好物,吐槽反人類設計,這里是ChainNode測評間,我是本期客串女俠,曉萌。以交易挖礦轟動行業的Fcoin在2月正式宣布兌付無力,規模高達7000-13000個BTC,數萬投資者或.
1900/1/1 0:00:00前言 2020年2月,全球區塊鏈投融資市場繼上月大幅縮水后再遇冷,單月融資額和融資數量較1月又有所下滑.
1900/1/1 0:00:00聰明又狡猾的某人剛剛通過操控DeFi貸款協議bZx的方式,獲得35萬美元的賬面「收益」,不過bZx團隊通過adminkey限制了操縱人提現,使其無法真正獲利.
1900/1/1 0:00:00