一次由存储状态引发的惨案 Cover协议被黑简要分析_REWARD:CRE

By :  Kong@慢雾安全团队

据慢雾区情报,2020 年 12 月 29 日,Cover 协议价格暴跌。慢雾安全团队第一时间跟进相关事件并进行分析,以下为分析简略过程。

1、在 Cover 协议的 Blacksmith 合约中,用户可以通过 deposit 函数抵押 BPT 代币;

2、攻击者在第一次进行 deposit - withdraw 后将通过 updatePool 函数来更新池子,并使用 accRewardsPerToken 来记录累计奖励;

以太坊开发人员就下一次升级中可以包含的内容达成一致:金色财经报道,以太坊开发人员决定考虑将八项以太坊改进提案(EIP) 纳入该网络即将推出的名为“上海”的硬分叉中。硬分叉升级将解锁Beacon Chain质押的ETH取款,并且可能包括解决可扩展性问题的提案和其他旨在改进以太坊虚拟机的提案。但具体时间,目前还没有达成共识。

让 EIP“考虑纳入”(CFI) 意味着开发人员将致力于制定这些提案,并将通过开发人员网络 (devnets) 的测试运行它们。然而,不能保证所有这些提议最终都会被纳入上海。[2022/11/25 8:06:10]

3、之后将通过 _claimCoverRewards 函数来分配奖励并使用 rewardWriteoff 参数进行记录;

罗永浩宣布下一次创业将涉足AR/VR/MR领域:12月16日消息,锤子科技创始人罗永浩发布微博称,将再一次高科技创业。他在与网友互动时透露,重返科技行业后将会涉足VR(虚拟现实)、AR(增强现实)、MR(混合现实)类领域。(界面新闻)[2021/12/16 7:42:52]

4、在攻击者第一次 withdraw 后还留有一小部分的 BPT 进行抵押;

5、此时攻击者将第二次进行 deposit,并通过 claimRewards 提取奖励;

奥地利公司完成整个闪电网络的第一次脱链比特币ATM交易:据CNN报道,总部位于奥地利的已经部署了首个比特币ATM和基于网络的数字货币交易平台的数字货币初创公司Coinfinity,本周二完成了整个闪电网络的第一次脱链比特币ATM交易。[2018/2/2]

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 参数差值变化如下图:

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:15ms0-1:123ms