内参商机
慢雾分析 Cover 协议攻击流程:rewardWriteoff 新旧参数差值导致计算出更大的铸造奖励数量
2020-12-29  浏览:279
区快洞察消息,针对 DeFi 保险项目 Cover 协议被攻击一事,慢雾安全团队对整个攻击流程进行了简要分析:1. 在 Cover 协议的 Blacksmith 合约中,用户可以通过 deposit 函数抵押 BPT 代币;
2. 攻击者在第一次进行 deposit、withdraw 后将通过 updatePool 函数来更新池子,并使用 accRewardsPerToken 来记录累计奖励;
3. 之后将通过 _claimCoverRewards 函数来分配奖励并使用 rewardWriteoff 参数进行记录;
4. 在攻击者第一次 withdraw 后还留有一小部分的 BPT 进行抵押;
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 代币增发。

联系方式
建材之家小程序码

建材之家小程序

建材之家服务号

微信公众服务号

建材新媒体

建材新媒体

更多»您可能感兴趣的全景微商机:
更多»有关 的产品:
移动社区 陶瓷头条 空调头条 卫浴头条 洁具头条 油漆头条 涂料头条 地板头条 吊顶头条 衣柜头条 家居头条 陶瓷之家 油漆之家 照明之家 防水之家 防盗之家 区快洞察 博一建材 720全景 深圳建材 香港建材 佛山建材 广州建材 东莞建材 惠州建材 南宁建材 崇左建材 来宾建材 河池建材 贺州建材 百色建材 玉林建材 贵港建材 钦州建材 防城港建材 北海建材 梧州建材 桂林建材 柳州建材
(c)2015-2017 ByBc.CN SYSTEM All Rights Reserved