北京時間2020年08月05日,DeFi期權平臺Opyn的看跌期權智能合約遭到黑客攻擊,損失約37萬美元。
Opyn是一個通用期權協議,于今年2月份轉型為保險平臺,通過oTokens為DeFi平臺提供可交易的ETH看跌期權,以此錨定ETH市場價格,為高波動性的DeFi市場提供相對的穩定性。
PeckShield安全團隊獲悉Opyn平臺遭受攻擊后,迅速定位到問題關鍵點在于:
攻擊者發現?Opyn智能合約行權接口對接收到的ETH存在某些處理缺陷,其合約并沒有對交易者的實時交易額進行檢驗,使得攻擊者可以在一筆對自己發起真實的交易之后,再插入一筆偽裝交易騙得賣方所抵押的數字資產,進而實現空手套白狼。
DeFi協議Lido Finance已超過600萬ETH存入其流動質押平臺:金色財經報道,Dune Analytics 數據顯示,DeFi 協議 Lido Finance 已超過 600 萬 ETH 存入其流動質押平臺,其中,Lido 上周凈流入 105,644 ETH,價值約 1.99 億美元,將存款推高至 6,008,480 ETH 。
根據 DefiLlama 的數據,Liquid Staking 已成為投資者賺取數字資產收益的一種流行方式,使其成為最大的 DeFi 行業之一,總價值達 160 億美元。[2023/5/5 14:43:50]
簡單來說,由于OpynETHPut智能合約中的行權函數exercise()沒有對交易者的ETH進行實時校驗。根據Opyn平臺的業務邏輯,看跌期權的買方給賣方轉移相應價值的ETH,即可獲得賣方抵押的數字資產。狡猾的攻擊者,先向自己發起偽裝的交易,利用這筆ETH可以重復使用的特性,再次向賣方用戶發起轉賬,進而騙取賣方已經抵押的數字資產。
Terra鏈上DeFi鎖倉量跌至41.8億美元:金色財經消息,據DefiLlama數據顯示,當前Terra鏈上DeFi鎖倉量跌至41.8億美元,近24小時減少70.48%。在公鏈中仍排名跌至第6位。目前,Terra鏈上DeFi鎖倉量排名前3的分別為:Anchor(28.4億美元,近24小時減少63.54%)、Mirror(2.28億美元,近24小時減少48.56%)、Pylon Protocol(1.59億美元,近24小時減少30.22%)。[2022/5/12 3:09:07]
下面為您詳細分析漏洞原因及攻擊過程。
漏洞詳細過程分析
先來說說,Opyn平臺的業務邏輯:當用戶使用Opyn合約行權即買賣期貨時,需要買方向賣方轉入相應數量的ETH或者ERC20Token,然后合約將銷毀買方對應的oToken,而后買方將獲得賣方已經抵押的資產。
安永:DAO、DeFi和L2是以太坊增長的三大關鍵要素:金色財經報道,1月6日,(EY)區塊鏈技術負責人 Paul Brody 在Coindesk發表專欄文章,他認為2022年屬于以太坊,因為目前區塊鏈世界中幾乎所有創新和重要事件都發生在以太坊生態系統中,2022年會有三大關鍵要素推動以太坊生態系統增長,分別是:DAO、DeFi和Layer 2,而最終的大贏家將是以太坊自己,其次以太坊也很可能從監管中受益,因為未來一年內監管可能會發生積極變化。(Cryptoglobe)[2022/1/6 8:30:10]
例如:小王認為行情進入了下跌趨勢,看到Opyn上掛著一個小李對ETH330美元的看跌期權,于是進入交易系統,向小李轉賬一個ETH,獲得小李抵押的等額數字資產。若此刻行情已經跌至了300美元,小王便可獲得其中的差價。
Compound總法律顧問:除非很清楚自己在做什么,否則不要在DeFi上投資:Compound總法律顧問Jake Chervinsky發推稱:“盡管我對DeFi實驗很著迷,即使是很混亂的那種項目,但我根本不想鼓勵投機。大多數人應該堅持BTC和ETH,這樣做的風險已經夠大了。除非你真的知道你在做什么,否則不要在DeFi(代幣或協議)上投資。”[2020/8/16]
圖1.exercise()?函數中循環執行傳入的?vaults?地址列表
如上面的合約代碼片段所示,行權函數exercise()的內部是一個循環,依據參數中傳遞的vaultsToExerciseFrom中的地址數量依次調用真正的行權邏輯_exercise()函數。
圖2.重用傳入合約的ETH來獲得抵押資產
函數處理ERC20Token時,和大部分的DeFi項目做法一樣,使用transferFrom(),如代碼1882行所示,從msg.sender轉賬到address(this)。
但是當函數處理的資產為ETH時,處理的方式就完全不一樣了。因為在Solidity中,msg.value的意思是合約調用者在調用具有payable接口時所轉給該合約的ETH數量,僅是一個量值,所以在合約代碼的1879行中,檢查msg.value==amtUnderlyingToPay僅能確保合約確實收到了amtUnderlyingToPay數量的ETH,并不會對msg.value的值造成任何影響。
但是正如上面講到的在exercise()中會循環調用_exercise()函數,這導致盡管合約實際只收到一次ETH,然而在循環過程中卻可以重復使用。
攻擊點就在這里,由于合約少了一步對ETH實時數量的檢驗,使得攻擊者可以先偽造一筆指向自己的交易,然后再把已經花掉的本金再次利用,和平臺其他用戶完成一筆正常交易。
圖3.?攻擊交易分析
在圖3中,我們通過Bloxy瀏覽器顯示的調用過程來展示攻擊的過程。由于攻擊者吃掉了很多筆訂單,我們以其中一筆交易為例,向大家展示其攻擊邏輯:
1、攻擊者先從Uniswap購入了75oETH為進一步調用函數行權做好籌備;
2、攻擊者創建了一個Vault地址,作為看空期權賣方,并且抵押24,750USDC鑄造出75oETH,但并未賣出這些期權,等于自己同時買入了以330的價格賣出75ETH的權利;
3、攻擊者在Opyn合約中調用了exercise(),在持有150oETH看空期權的情況下,先向自己的Vault地址轉入了75個ETH,獲得自己事先抵押的24,750個USDC,再重利用了這75個ETH,成功吃掉了另一個用戶的24,750個USDC,進而實現非法獲利。
修復建議
PeckShield安全團隊建議,在Solidity中,合約可使用一個局部變量msgValue來保存所收到ETH。這樣,在后續的步驟中通過操作msgValue,就能準確的標記有多少ETH已經被花費,進而避免資產被重復利用。此外,我們還可以使用address(this).balance來檢查合約余額來規避msg.value被重復使用的風險。
概述 Tendies在幾天前推出了Uniswap池,日交易額已經超過1000萬美元。Tendies使用通貨緊縮的代幣供應,理論上隨著時間的推移,TEND代幣的價格會上周.
1900/1/1 0:00:00DeFi這個牛市的發動機,正在轟隆隆的開動著,正在卷著浪潮而來。 這里說四個事情: 1、做空LINK爆倉2200萬美元;2、Aave或將8月12日開啟流動性挖礦;3、BancorV2上線REN流.
1900/1/1 0:00:00作者:Joss 來源:IPFS原力區 “產業區塊鏈旨在解決商業環境中平等參與者之間的特定業務問題,比如,優化業務流程、降低成本、消除中間人等,其與產業、商業、交易等結合.
1900/1/1 0:00:00據比推數據,距離上周一市值最高的加密貨幣比特幣大幅上漲突破10000美元已經接近兩周,目前鏈上數據顯示比特幣的基本面仍然十分健康.
1900/1/1 0:00:00Non-FungibleArtReport2018-19來源:NonFungible.com 翻譯:BCA 引言: 本文是由NFT數據供應商NonFungible.
1900/1/1 0:00:00最近在多個社交平臺看到這樣一張MEME圖,身處加密圈的你肯定對DeFi不陌生,圖中所指比DeFi更大的DAO是什么,DeFi熱度猶在.
1900/1/1 0:00:00