币交所平台闪电贷攻击事件:慢雾认定OUSD损失700万美金

WB3交流加微信:WX-93588,⬅️此处为全站广告位,与正文项目无关
注册并登录App即可领取高达 60,000 元的数字货币盲盒:点击此处注册OKX

此次进犯的关键在于运用外部合约调用引发的重入问题,结合了Vault的rebase机制。进犯者经过重入进程,能够不合法获得巨额收益分配。

根据慢雾安全团队的剖析,2020年11月17日,以太坊DeFi项目OUSD遭受了闪电贷进犯。慢雾安全团队第一时间进行了相关剖析。下面是针对本次进犯的简要剖析。具体的进犯进程剖析将在稍后发布。如果您对此感兴趣,请持续重视。

背景提要:
OriginDollar(OUSD)是由OriginProtocol(OUSD)创建的一种新式ERC-20安稳币。当该安稳币依然存放在钱包中时,它会主动从DeFi协议中获取有竞争力的收益。OUSD是由USDT、USDC和DAI等其他安稳币以1:1的份额支持。

进犯流程简述:
1.进犯者运用dydx闪电贷借出70000个ETH,并经过Uniswap将其兑换为USDT和DAI。
2.进犯者调用OUSDVault的mint函数,Vault会先进行一次rebase,将之前积累的奖励进行分配,然后将750万USDT从进犯者的合约转入OUSDVault中。此刻,OUSD合约会铸造出等量的750万OUSD代币给进犯合约,最终经过allocate函数结算当时的收益。
3.在进犯者转入750万USDT之前,Vault的价值约为7018138美元。进犯者转入750万USDT后,其占据Vault总价值的一半以上。
4.接着,进犯合约运用mintMultiple函数传入DAI合约地址和进犯合约地址,同样进行一次rebase,将之前累计的收益进行分配(包含之前转入的750万USDT部分),然后经过transferFrom函数将进犯合约的2050万DAI转入Vault中。接着,进犯合约调用自身的transferFrom函数,在其函数中构造再次调用Vault合约的mint函数的逻辑,然后实现重入进犯。
5.在前一步中转入2050万DAI后,经过进犯合约的transferFrom函数再次调用Vault的mint函数。因为重入时传入2000USDT契合触发rebase条件的判断,此刻会进行一次rebase。重入进犯的原因是进犯者没有经过oUSD.mint函数进行铸币操作,而且进犯者在先前已将2050万DAI转入Vault中,导致Vault的总财物价值仍在添加。因而,Vault会以为添加的2050万DAI是收益部分,并进行rebase分配。因为在步骤3中,进犯者的财物已经占据Vault总价值的一半以上,所以进犯者会随便获得超过1025万美元的收益分配。
6.接着,经过oUSD.mint进行铸造出2000个OUSD,并经过allocate函数结算重入时的2000USDT收益(从前一步能够看出,进犯合约传入的2000USDT只是为了满足触发rebase条件的需求)。重入结束后,进犯者依然经过oUSD.mint铸造之前转入的2050万DAI相等的OUSD代币。
7.最终,Vault的总价值约为3501万美元,但进犯者所拥有的价值超过3825万美元。因而,进犯者运用大部分的OUSD从Vault中进行赎回操作,将Vault根本清空,然后将剩下的OUSD经过Uniswap和Sushiswap的OUSD-USDT池兑换成USDT,以添加收益。

总结:
此次进犯的关键在于运用外部合约调用引发的重入问题,并结合了Vault的rebase收益分配机制。这导致进犯者能够经过重入来不合法获得巨额的收益分配。针对这种情况,慢雾安全团队主张在传入财物后进行检查,对不在白名单内的财物直接进行回滚,并运用防重入锁来避免重入进犯。

相关链接:
参阅进犯买卖:0xe1c76241dda7c5fcf1988454c621142495640e708e3f8377982f55f8cf2a8401

此时快讯

币安VIP借币推出活期利率及无限期借币线上申请服务】金色财经报道,据官方公告,币安VIP及机构推出VIP借币活期利率及无限期借币线上申请服务。用户现在能够通过VIP借币页面选择无限期借币、30天期限借币和60天期限借币,以及活期利率或固定利率借币申请及续借订单,API用户可通过新的SAPI端点进行在线申请。

版权声明:本文收集于互联网,如有侵权请联系站长删除。
转载请注明:币交所平台闪电贷攻击事件:慢雾认定OUSD损失700万美金 | 币百度

相关文章