链资讯 链资讯
Ctrl+D收藏链资讯
首页 > 币安下载 > 正文

ECOIN:DeFi平台Opyn智能合约漏洞详解:攻击者空手套白狼!_toncoin币和eth谁有潜力

作者:

时间:

北京时间2020年08月05日,DeFi期权平台Opyn的看跌期权智能合约遭到黑客攻击,损失约37万美元。

Opyn是一个通用期权协议,于今年2月份转型为保险平台,通过oTokens为DeFi平台提供可交易的ETH看跌期权,以此锚定ETH市场价格,为高波动性的DeFi市场提供相对的稳定性。

PeckShield安全团队获悉Opyn平台遭受攻击后,迅速定位到问题关键点在于:

攻击者发现?Opyn智能合约行权接口对接收到的ETH存在某些处理缺陷,其合约并没有对交易者的实时交易额进行检验,使得攻击者可以在一笔对自己发起真实的交易之后,再插入一笔伪装交易得卖方所抵押的数字资产,进而实现空手套白狼。

现场丨HashQuark 高级研究员Tom:主网运行的客户端过于单一有技术性的风险:金色财经现场报道,11月20日,由金色财经主办,Blocklike,鲸交所,四块科技,DSFS-LABS协办的金色沙龙第57期在杭州举办,在圆桌环节,HashQuark 高级研究员Tom表示,以太坊2.0的升级,这一条路很长,现在还是在探索阶段。以太坊2.0网络主网上线最大的风险就是客户端缺乏多样性风险和phase1.5阶段合并的社区分裂风险。由于客户端的缺乏多样性,一个客户端出现bug将会给主网不能敲定,1.0和2.0的合并也有许多社区利益共识要考虑。[2020/11/20 21:30:21]

简单来说,由于OpynETHPut智能合约中的行权函数exercise()没有对交易者的ETH进行实时校验。根据Opyn平台的业务逻辑,看跌期权的买方给卖方转移相应价值的ETH,即可获得卖方抵押的数字资产。狡猾的攻击者,先向自己发起伪装的交易,利用这笔ETH可以重复使用的特性,再次向卖方用户发起转账,进而取卖方已经抵押的数字资产。

杨海坡:已经进入技术性牛市:7月28日,ViaBTC矿池CEO杨海坡发微博称,牛市呼之欲出,等待BTC突破10500确认。随后,他再次发微博称,已经进入技术性牛市。[2020/7/28]

下面为您详细分析漏洞原因及攻击过程。

漏洞详细过程分析

先来说说,Opyn平台的业务逻辑:当用户使用Opyn合约行权即买卖期货时,需要买方向卖方转入相应数量的ETH或者ERC20Token,然后合约将销毁买方对应的oToken,而后买方将获得卖方已经抵押的资产。

例如:小王认为行情进入了下跌趋势,看到Opyn上挂着一个小李对ETH330美元的看跌期权,于是进入交易系统,向小李转账一个ETH,获得小李抵押的等额数字资产。若此刻行情已经跌至了300美元,小王便可获得其中的差价。

经济参考报:区块链将在产业链和政务治理的技术性改造上有所布局:5月12日,经济参考报刊文“多地印发区块链发展行动计划”。文章表示,近日,贵州、湖南、广州、赣州等多省市发布区块链发展行动规划,对区块链平台和产业集群建设以及促进上万家企业“上链”等方面进行了规划。专家表示,疫情催生了数字化的社会治理创新和软硬基础设施建设需求,未来区块链将在产业链和政务治理的技术性改造上有所布局。在发展行动规划中,多地将建设区块链开放创新平台,促进重点企业“上链”作为下一步工作重点。[2020/5/12]

图1.exercise()?函数中循环执行传入的?vaults?地址列表

随着纳指反弹20% 美三大股指均进入技术性牛市:纳斯达克指数较3月23日收盘价反弹20.5%,进入技术性牛市。目前道指、标普指数较3月23日收盘价分别反弹28.25%、25.77%。(财联社)[2020/4/14]

如上面的合约代码片段所示,行权函数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被重复使用的风险。

标签:ECOINCOICOINLECpiratecoin币行情Filecoin 36Monthtoncoin币和eth谁有潜力Electra

币安下载热门资讯
BTC:DeFi热潮推动WBTC快速增长,闪电网络发展相形见绌_比特币发行量多少

比特币正以前所未有的速度发展,但闪电网络似乎没有跟上比特币前进的步伐。 图片来源:pixabay根据SkewAnalytics的数据,通过WrappedBitcoin锁定在以太坊的比特币总价值已.

BTC:美联储尚未决定是否发行数字货币,将继续评估其机遇和风险_btcp币有没有价值

美国联邦储备委员会在8月13日的一份声明中强调了为加强对央行数字货币(CBDC)相关机遇和风险的理解而进行的研究和实验。这些举措是对美联储系统内目前正在进行的一系列与支付相关的创新项目的补充.

DEF:技术性牛市or暴跌前奏?热闹的DeFi集市上空漂浮着3朵乌云_比特币

最近24小时,加密数字货币显现下跌趋势,BTC从最高11932美金下跌至最低11130美金,跌幅6%。ETH从最高398美金跌至最低367美金,跌幅7%.

ECOIN:Filecoin这把“火”能烧多久?_File Network Star

“‘财富效应’聚集的地方,往往充斥着各种谎言与局,一不小心就会踩雷。”杨姐谈及与IPFS&Filecoin矿机的纠葛,句句在理又扎心.

ECO:矿场主畅谈:关于园区电的方方面面_coinone官网下载

今年5月,在成都举办的矿业大会上,园区电成为会上大家讨论的热点话题之一,今年的丰水期已经过半,知矿大学邀请了两位不愿透露姓名的矿圈大佬进行了访谈.

区块链:加密猫开发团队Dapper Labs完成1200万美元融资,NBA球星领投_PERL

据Ledgerinsights报道,8月6月,DapperLabs宣布为Flow区块链筹集了1200万美元资金.