12月29日,针对Cover协议遭受攻击一事,慢雾安全团队对整个流程进行了简要分析,如下:
1.在Cover协议的Blacksmith合约中,用户可以通过deposit函数抵押BPT代币;
2.攻击者在第一次进行deposit-withdraw后将通过updatePool函数来更新池子,并使用accRewardsPerToken来记录累计奖励;
Cream Finance:COVER和1INCH对ETH的抵押系数已从0%提升至45%:Cream Finance发推表示,提案已执行,COVER和1INCH对ETH上的抵押系数已从0%提升至45%。[2021/2/1 18:37:53]
3.之后将通过_claimCoverRewards函数来分配奖励并使用rewardWriteoff参数进行记录;
YFI创始人更新Pickle、Cream、Cover等四项全新版项目审计结果:1月7日消息,YFI创始人Andre Cronje(AC)发推更新Pickle、Cream、Cover等四项全新版项目审计结果。AC表示,Pickle(DILL boosts)需要做修改,预计15号前完成;Cream (v2 protocol lending)全部清除,重新开始;Cover (v1.1 perps)需要重新设计基础原理;第四项未公开项目已收到v1结果,需要重新设计,v4版本已提交,预计15号前完成。另外AC表示,Yearn v2的2/3已审计完毕,最后一项待审核。[2021/1/7 16:37:57]
4.在攻击者第一次withdraw后还留有一小部分的BPT进行抵押;
声音 | CovenantSQL首席研究员:BCH硬分叉将打击比特币融入主流金融市场:数据服务机构CovenantSQL首席研究员郭泽卿表示,BCH硬分叉弊大于利,这是对币圈去中心化理念、比特币融入主流金融市场的打击,在长远来看会损害大多数区块链从业者的利益。他表示,算力和矿工是PoW中很关键的一环,但在这次活动中,只看到矿池巨头裹挟着小矿工卷入纷争,小矿工并没有反抗的余地。他还表示,算力大战并不会让大家重视矿工,充其量会让大家害怕矿池——这个区块链世界中最中心化的部分。[2018/11/16]
5.此时攻击者将第二次进行deposit,并通过claimRewards提取奖励;
6.问题出在rewardWriteoff的具体计算,在攻击者第二次进行deposit-claimRewards时取的Pool值定义为memory,此时memory中获取的Pool是攻击者第一次withdraw进行updatePool时更新的值;
7.由于memory中获取的Pool值是旧的,其对应记录的accRewardsPerToken也是旧的会赋值到miner;
8.之后再进行新的一次updatePool时,由于攻击者在第一次进行withdraw后池子中的lpTotal已经变小,所以最后获得的accRewardsPerToken将变大;
9.此时攻击者被赋值的accRewardsPerToken是旧的是一个较小值,在进行rewardWriteoff计算时获得的值也将偏小,但攻击者在进行claimRewards时用的却是池子更新后的accRewardsPerToken值;
10.因此在进行具体奖励计算时由于这个新旧参数之前差值,会导致计算出一个偏大的数值;
11.所以最后在根据计算结果给攻击者铸造奖励时就会额外铸造出更多的COVER代币,导致COVER代币增发。
具体accRewardsPerToken参数差值变化如下图:
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。