SIG:BCH 硬分叉背后:一场预谋已久的真实攻击

5月15日BCH升级遭到攻击,慢雾安全团队及时跟进,并在社区里注意到相关分析工作,通过交流将此分析文完整转载于此。这是一场真实攻击,从行为上分析来看确实预谋已久,但BCH响应很及时,成功化解了一场安全危机。

BCH的5月15日升级遭到攻击,导致节点报出toomanysigops错误。经分析,攻击载荷为一个精确构造的P2SHTransaction,利用了BCH去年11月升级引入的OP_CHECKDATASIG操作码。

攻击导致了矿工节点无法打包,BCH方面通过类似于空块攻击的方式,紧急挖出十个空块以触发滚动检查点保证升级。攻击发生约1小时后,BCH矿池上线紧急修复后的代码成功继续出块。

BCH突破830美元关口 日内涨幅为3.73%:火币全球站数据显示,BCH短线上涨,突破830美元关口,现报830.17美元,日内涨幅达到3.73%,行情波动较大,请做好风险控制。[2021/4/26 21:00:05]

不过同时也有人观察到,在582698区块高度,有矿工挖出了哈希结尾为6bf418af的区块,大小139369字节。但随后该区块被10分钟后BTC

补丁位置:https://reviews.bitcoinabc.org/D3053

声音 | 分析师Peter Brandt:BCH的目标价格为127.5美元:加密货币分析师Peter Brandt发推称:“BCH的目标价格为127.5美元。”[2019/9/25]

https://github.com/Bitcoin-ABC/bitcoin-abc/blob/f27da0752c0a3b7382df54a65ca3cf1c3629aad4/hide/validation.cpp#L592

//原代码int64_tnSigOpsCount=GetTransactionSigOpCount(tx,view,STANDARD_SCRIPT_VERIFY_FLAGS);//补丁代码int64_tnSigOpsCount=GetTransactionSigOpCount(tx,view,STANDARD_CHECKDATASIG_VERIFY_FLAGS);

行情丨BCH在5分钟内跌幅超过1.50%:据火币全球站数据显示,BCH/BTC在5分钟内出现剧烈波动,跌超1.50%,达到-2.65%。当前报价为 280.77 美元,行情波动较大,请注意风险控制。[2019/7/17]

可见原代码组块过程中在计算Transaction中的SigOP数量时,错误地使用了STANDARD_SCRIPT_VERIFY_FLAGS,而非STANDARD_CHECKDATASIG_VERIFY_FLAGS。

在policy中我们可以找到他们。

https://github.com/Bitcoin-ABC/bitcoin-abc/blob/f27da0752c0a3b7382df54a65ca3cf1c3629aad4/hide/policy/policy.h#L108

staticconstuint32_tSTANDARD_CHECKDATASIG_VERIFY_FLAGS=STANDARD_SCRIPT_VERIFY_FLAGS|SCRIPT_ENABLE_CHECKDATASIG;

所以我们可以见到,当仅使用了STANDARD_SCRIPT_VERIFY_FLAGS时,计算脚本中SigOP数量时,是不包含OP_CHECKDATASIG的。所以这个包含20010个SigOP的攻击载荷,在组块时,统计出来的SigOP数量为零。

总结

攻击者利用了BCH引入OP_CHECKDATASIG时产生的,又未完全修复的漏洞,巧妙地构造了攻击载荷。攻击者应该高度了解客户端代码,并熟悉OP_CHECKDATASIG漏洞。

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

金星链

MANABTC:投资中如何把握止损时机

币价跌到你能够承受的最低价位时,就果断卖出,减少损失。有些人把止损也叫做“割肉”,但是止损和割肉也是有区别的,相对来说选择止损的投资者基本上都有自己后期的操作策略,会选择在适当的点位及时卖掉,降.

火星币POL:波卡如何解决区块链创新的大难题?

前言:波卡的平行链架构和共享安全致力于解决区块链的互操作性、扩展性、安全性等。波卡网络还没有发布,它在区块链世界呈现出一个美好的想象,它能否实现?年底开始慢慢揭晓.

[0:15ms0-0:553ms