木星链 木星链
Ctrl+D收藏木星链
首页 > 中币 > 正文

ETH:DeFi平台Opyn智能合约漏洞详解:攻击者空手套白狼

作者:

时间: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可以重复使用的特性,再次向卖方用户发起转账,进而取卖方已经抵押的数字资产。下面为您详细分析漏洞原因及攻击过程。漏洞详细过程分析

Wemade推出新的Defi服务Kurrency:金色财经报道,韩国游戏巨头Wemade宣布推出一项新的Defi服务Kurrency,旨在提供更高的易用性、透明度和可靠性。Kurrency是一项通过抵押债务头寸发行加密货币的服务。用户可以委托该服务支持的虚拟资产作为抵押品,发行WCD(WEMIX加密美元)。

Wemade希望将WCD打造成跨主要区块链的使用的加密美元和货币服务,包括Klaytn、Ethereum和Wemix 3.0。[2023/3/3 12:40:53]

先来说说,Opyn平台的业务逻辑:当用户使用Opyn合约行权即买卖期货时,需要买方向卖方转入相应数量的ETH或者ERC20Token,然后合约将销毁买方对应的oToken,而后买方将获得卖方已经抵押的资产。例如:小王认为行情进入了下跌趋势,看到Opyn上挂着一个小李对ETH330美元的看跌期权,于是进入交易系统,向小李转账一个ETH,获得小李抵押的等额数字资产。若此刻行情已经跌至了300美元,小王便可获得其中的差价。

Andre Cronje疑似将发布新的DeFi 2.0产品:1月6日消息,Yearn.finance创始人Andre Cronje在社交媒体上发文ve(3,3),疑似将发布新的DeFi2.0产品,引发社区热烈猜测。

注:(3,3)常被作为与DeFi2.0相关项目(如OHM等)的社区meme符号。[2022/1/6 8:30:11]

图1.exercise()函数中循环执行传入的vaults地址列表如上面的合约代码片段所示,行权函数exercise()的内部是一个循环,依据参数中传递的vaultsToExerciseFrom中的地址数量依次调用真正的行权逻辑_exercise()函数。

ZBG将于9月2日开启DeFi项目DF申购活动:据ZBG官方消息,ZBG将于9月2日14:00~9月3日14:00期间开启DeFi项目—DF首发申购活动。申购额度2.2万枚DF,申购价格0.4571USDT;申购结束后将于9月3日15:00开启DF/USDT交易。

据悉,Daily Funds (DF)是一个去中心化且非托管的开放源货币的交换协议,储户可以通过向贷款池提供流动资金来赚取利息,借款人可以通过使用流动性资金来获取超额抵押贷款。和其他DeFi平台(如Compound)类似,DF将存款标记为代币,计算实时利息,并提供多种稳定币选择。

本次申购活动将采用Super Launchpad申购形式,即人人参与皆有所得;实际获得代币=(个人申购金额/全网总申购金额)X 代币销售总量。更多详情可咨询ZBG官网客服(zbg.io/zbg.live)[2020/9/1]

公告 | 基于Cosmos的DeFi平台Kava在11月15日晚间成功启动主网:基于Cosmos 的 DeFi 平台 Kava 于北京时间 2019 年 11 月 15 日晚间 10 点正式启动主网。据 Kava 团队介绍,其启动主网的时间不足 5 秒,上线几分钟内有超过 50 个节点验证者运行网络,目前主网上质押担保着价值 2500 万美元的 Kava 代币。[2019/11/16]

图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被重复使用的风险。

标签:ETHEFIDEFIDEFETH ShibaUMEfinanceDefina FinanceChargeDeFi Charge

中币热门资讯
EFI:融资2.5亿美元的明星波卡,现在生态发展得怎么样了?

编者按:本文来自区块律动BlockBeats,作者:0x66,Odaily星球日报经授权转载。类似波卡这样的明星项目,不用愁冬天没有余粮.

1900/1/1 0:00:00
EOS:币圈投资徒故事

这几天各个币圈媒体仍然在热议8月1日市场大跌、全网爆仓的情形,更多爆仓故事曝光出来。给我印象很深的一个例子是一个2018年以本金1000元入场的投资者.

1900/1/1 0:00:00
BTC:行情分析:大盘如期回调,后市怎么操作?

本文来自:哈希派,作者:哈希派分析团队,星球日报经授权转发。

1900/1/1 0:00:00
比特币:彭博社:比特币成为数字黄金,以太坊上涨因其为投机资产

编者按:本文来自巴比特资讯,作者:MikeMcGlone,编译:Wendy,星球日报经授权发布.

1900/1/1 0:00:00
比特币:美丽的误会?比特币突破1万美元跟监管无关, 一图读懂背后大涨原因

比特币最近的走势非常乏味,在9200-9600美元横盘近两个月,波澜不惊,被业内戏称“比特币再这么纹丝不动,就快变成稳定币了”.

1900/1/1 0:00:00
BIT:Deribit期权市场播报:0803 - 风平浪静

昨天迎来了本次牛市行情中,最大的一次回调。比特币在牛市氛围达到高潮时,急转直下,下跌幅度超过10%。在经历了1500美元的巨幅震荡后,比特币在11100美元附近稳了一手.

1900/1/1 0:00:00