比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

DeFi平臺Opyn智能合約漏洞詳解:攻擊者空手套白狼_DEF

Author:

Time:1900/1/1 0:00:00

北京時間2020年08月05日,DeFi期權平臺Opyn的看跌期權智能合約遭到黑客攻擊,損失約37萬美元。Opyn是一個通用期權協議,于今年2月份轉型為保險平臺,通過oTokens為DeFi平臺提供可交易的ETH看跌期權,以此錨定ETH市場價格,為高波動性的DeFi市場提供相對的穩定性。PeckShield安全團隊獲悉Opyn平臺遭受攻擊后,迅速定位到問題關鍵點在于:攻擊者發現Opyn智能合約行權接口對接收到的ETH存在某些處理缺陷,其合約并沒有對交易者的實時交易額進行檢驗,使得攻擊者可以在一筆對自己發起真實的交易之后,再插入一筆偽裝交易騙得賣方所抵押的數字資產,進而實現空手套白狼。簡單來說,由于OpynETHPut智能合約中的行權函數exercise()沒有對交易者的ETH進行實時校驗。根據Opyn平臺的業務邏輯,看跌期權的買方給賣方轉移相應價值的ETH,即可獲得賣方抵押的數字資產。狡猾的攻擊者,先向自己發起偽裝的交易,利用這筆ETH可以重復使用的特性,再次向賣方用戶發起轉賬,進而騙取賣方已經抵押的數字資產。下面為您詳細分析漏洞原因及攻擊過程。漏洞詳細過程分析

Grayscale將Lido添加到其DeFi基金中:金色財經報道,自2021年7月該產品推出以來,Grayscale首次將Lido添加到其DeFi基金中。Lido(LDO)目前是排名第一的資產,灰度DeFi基金中排名第二的資產,占比19.04%。Uniswap(UNI)仍然占據主導地位,占基金份額的45.46%。[2023/7/8 22:24:46]

先來說說,Opyn平臺的業務邏輯:當用戶使用Opyn合約行權即買賣期貨時,需要買方向賣方轉入相應數量的ETH或者ERC20Token,然后合約將銷毀買方對應的oToken,而后買方將獲得賣方已經抵押的資產。例如:小王認為行情進入了下跌趨勢,看到Opyn上掛著一個小李對ETH330美元的看跌期權,于是進入交易系統,向小李轉賬一個ETH,獲得小李抵押的等額數字資產。若此刻行情已經跌至了300美元,小王便可獲得其中的差價。

跨鏈DeFi借貸平臺Arco與互操作性協議Wormhole達成合作:10月29日消息,跨鏈DeFi借貸平臺Arco Protocol宣布與跨鏈互操作性協議Wormhole達成合作,當主網啟動時將在其DApp上線相關代幣。[2022/10/29 11:56:02]

圖1.exercise()函數中循環執行傳入的vaults地址列表如上面的合約代碼片段所示,行權函數exercise()的內部是一個循環,依據參數中傳遞的vaultsToExerciseFrom中的地址數量依次調用真正的行權邏輯_exercise()函數。

DeFi項目YamFinance啟動代幣分配 不到一小時時間流動性挖礦者注入7600萬美元:DeFi項目YamFinance于今日凌晨三點進行首次代幣分配,并將200萬初始代幣平均分配給8個質押池,每個質押池為25萬枚,初始代幣分配將持續7天。8個質押池分別為COMP、LEND、LINK、MKR、SNX、WETH、YFI和ETH/APMLUniswapv2LP代幣。7天之后,即8月13日凌晨三點,Yam將通過YAM/yCRVUniswap資金池進行第二次分配(共300萬枚),第一周將分配150萬枚,此后每周減少50%。值得注意的是,YamFinance提醒投資者尚未對其合約進行正式審計,且該項目從開始到啟動僅用了十天時間。據TheBlock統計,在YamFinance啟動分配后不到一個小時內,流動性挖礦者就向該項目質押池存入價值7600萬美元的代幣。[2020/8/12]

DeFi6月鎖倉總金額超20億美元 環比上升102.90%:7月3日,據DeBank數據顯示,去中心化金融(DeFi)總鎖倉代幣金額已達20.4億美元。6月DeFi總鎖倉金額與5月相比上升了102.90%。鎖倉排名前三的項目分別為:Compound6.16億美元;Maker5.06億美元;Synthetix3.20億美元。[2020/7/3]

圖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被重復使用的風險。

Tags:ETHDEFEFIDEFIethnographyinbusinessRestaurant DeFiInfiniityDeFiIDEFI

萊特幣最新價格
星球日報 | dForce開啟流動性挖礦;近1億美元比特幣在7月轉移至以太坊_區塊鏈

頭條 dForce開啟流動性挖礦北京時間2020年8月3日22:00去中心化金融平臺dForce開啟DF流動性挖礦.

1900/1/1 0:00:00
一文了解波卡如何在平行鏈之間進行有效的分片_POLK

編者按:本文來自PolkaWorld,Odaily星球日報經授權轉載。Polkadot的可用性和有效性協議使整個網絡能在平行鏈之間有效地分片,同時有著強大的安全性保證.

1900/1/1 0:00:00
以太坊網絡的5年歷程:從長期被誤解到機構進場_以太坊

重大突破通常遵循七步走的路徑:1.首先,沒有人聽說過你。2.然后,他們聽說過你,但認為你是個瘋子。3.然后,他們了解你的產品,但認為它沒有機會。4.然后,他們把你的產品看成是玩具.

1900/1/1 0:00:00
鄒傳偉:深度解析“區塊鏈+物聯網”與新基建_區塊鏈

編者按:本文來自PlatON,Odaily星球日報經授權轉載。根據國家發改委對“新基建”的界定,區塊鏈屬于新技術基礎設施,物聯網屬于通信網絡基礎設施.

1900/1/1 0:00:00
萬向區塊鏈肖風:區塊鏈應用落地的三個階段_CCE

編者按:本文來自萬向區塊鏈,Odaily星球日報經授權轉載。7月31日,萬向區塊鏈董事長兼總經理肖風博士受邀出席由工信部所屬中國電子技術標準化研究院主辦,萬向區塊鏈協辦的“區塊鏈技術和應用峰會暨.

1900/1/1 0:00:00
DeFi身處何處?_EFI

編者按:本文來自藍狐筆記,Odaily星球日報經授權轉載。從6月份以來,DeFi越來越熱,說2020的夏天是DeFi的夏天不為過.

1900/1/1 0:00:00
ads