慢雾 : Cover 协议被黑简要分析

2020年12月29日,据慢雾区情报Cover协议价格暴跌,以下是慢雾安全团队对整个攻击流程的简要分析。

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

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

慢雾余弦:解决数据安全问题最优解是构建零信任安全架构:金色财经现场报道,7月5日,由巴比特×算力智库联合主办的《隐私计算:让数据安全有序流动起来》主题会议上,慢雾科技创始人余弦做了主题为《区块链安全建设之道》的演讲。余弦表示,保障数据安全的目标是要实现资产0损失和隐私0泄露,但是人最终会成为所有安全的最大薄弱点,在数据收集、存储、加工、使用、提供、交易、公开等环节都需要加强保障。区块链仅是解决信任问题的一种复杂技术方案,面对安全问题,区块链也自身难保。所以解决数据安全问题,最优的解决方案是构建零信任安全架构,明白各条链路的安全策略。[2020/7/5]

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

分析 | 慢雾:攻击者拿下了DragonEx尽可能多的权限 攻击持续至少1天:据慢雾安全团队的链上情报分析,从DragonEx公布的“攻击者地址”的分析来看,20 个币种都被盗取(但还有一些DragonEx可交易的知名币种并没被公布),从链上行为来看攻击这些币种的攻击手法并不完全相同,攻击持续的时间至少有1天,但能造成这种大面积盗取结果的,至少可以推论出:攻击者拿下了DragonEx尽可能多的权限,更多细节请留意后续披露。[2019/3/26]

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

ETC Cooperative致宝二爷公开信:放弃ETH PoW分叉,矿工应该转移到ETC:8月9日消息,ETC Cooperative在致宝二爷的公开信中表示,其认为以太坊POW分叉不会成功,甚至会是一件非常困难的事情。此次硬分叉不像ETH/ETC分裂的时候那样简单,那时只要继续挖矿和继续运行相同的客户端软件,而此次测试网分叉的代码中的每一个都需要删除POS转换逻辑,禁用难度炸弹,同时更新链ID以提供保护。挖矿软件也可能需要分叉/更新。这将需要与钱包供应商合作,以同意支持 ETHW;并将需要与交易所合作,同意支持ETHW。此外,ETC Cooperative认为,离合并只有几个星期了。现在做任何事情都太晚了。在ETH/ETC分裂的时候,没有DeFi或稳定币,所以没有什么真正的破坏。现在,ETH上的大部分价值是以代币形式存在的,而不仅仅是原生的以太坊。因此,PoW新链对现有的ETH用户来说毫无意义。大项目很可能会明确选择关闭他们在PoW新链上的智能合约——以避免用户的混乱和损失。这是一个巨大的、艰巨的协调任务,而合并尚且只有几周的时间,如今的繁荣在Pow新链上大概率不会重现。

ETC Cooperative呼吁,还有时间来取消这个分叉,它的存在只会造成更多的混乱,并且在最初的拉盘后将不可避免地失败,因为它将没有任何用户。ETC Cooperative称,正如Barry Silbert(DCG首席执行官)所说,“除ETC外,我们完全支持ETH PoS,并且不会支持任何ETH PoW分叉。ETH矿工应该转移到ETC,以使他们的收入长期最大化”。

据悉,中国加密矿工Chandler Guo(宝二爷)表示将分叉以太坊区块链并将新网络称为“ETH POW”后,分叉的想法在过去两周内获得了关注。[2022/8/9 12:12:14]

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

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

金智博客

[0:15ms0-4:165ms