8BTCCI: 13392.64 8BTCVI: 9564.25 24H成交额: ¥5667.43亿 总市值: ¥17026.75亿
内存池 Bug 导致 BCH 出现空交易区块,P网已暂停存取款

内存池 Bug 导致 BCH 出现空交易区块,P网已暂停存取款

星球日报 发布在 竞争币 海盗号 12316

这个问题可能是操作计数Bug,他们使用的是旧规则去验证操作计数,而不是按照新规则来验证的。

比特币现金是目前全球排名第四的加密货币,市值超过60亿美元,之前的全系统范围升级(也被成为硬分叉)已经将比特币现金(BCH)网络分成了两部分——但是现在,问题来了。

一位来自 Reddit 论坛用户透露,由比特币现金开发者团队开发的软件版本——Bitcoin ABC 中出现了一个代码 Bug,该 Bug 很快影响到了与升级本身无关的比特币现金内存池(mempool)。根据 BitMEX Research 的 Forkmonitor 工具披露的数据显示,就在比特币现金网络在第 582,679 区块尝试升级到新软件之后,发生了一次区块链分裂(chain split)。

与比特币区块链类似,比特币现金也要求矿工验证交易之后才能将新区块添加到区块链上,内存池里通常包含了等待矿工批准的比特币现金区块链上的所有待处理交易。Reddit 论坛用户“FerriestaPatronum”解释说:

“看起来,就在比特币现金硬分叉之后,内存池接受规则中出现了一个小 Bug……从我目前的理解,这个问题可能是操作计数(operation count)Bug,他们依然使用的是旧规则去验证操作计数,而不是按照新规则来验证的。”
就在该漏洞出现之后,比特币现金开发人员很快发布了修复 Bug 的新代码,根据 CoinDance 的数据和业内人士披露的信息显示,在这个 Bug 修复之前,比特币现金区块链产生了一串空交易区块。

Vin Armani 是比特币现金应用程序 CoinText 首席技术官,他表示:

“大约在一个半小时之后,区块被清空了。现在内存池没问题了,而且交易也可以像以前那样进入区块,一起都恢复正常。”
不过截至本文撰写时,我们仍然不清楚有多少节点(即运行 Bitcoin ABC 软件的额计算机服务器)已经升级了修复 Bug 的软件。为了修复这个问题,加密货币交易所 Poloniex 已经宣布将暂停 Bitcoin ABC 提款和存款交易,该交易所在 Twitter 上发文称:
“比特币现金今天计划的硬分叉有问题,因此我们将禁止 BCHABC 的存款和取款交易,直到另行通知为止。比特币现金的核心开发人员正在努力解决问题,感谢您的耐心等待。”
 

还是中心化问题惹的祸?

根据挖矿及矿池运营区块链初创公司 Navier 研发团队透露,目前大多数比特币现金矿工使用的都是 Bitcoin ABC 软件,而不是像 Bitcoin Unlimited (BU) 这样的其他比特币现金软件。

Navier 副总裁 David Steinberg 解释说:

“大多数比特币现金矿工使用的都是 Bitcoin ABC 客户端,而不是 Bitcoin Unlimited,所以人们创建交易并将这些交易提交给内存池的速度比他们写入一个区块的速度更快,这导致大部分区块都是空的。”
David Steinberg 同时强调,如果矿工可以尝试使用不同的节点软件,那么就可以有效防止因为代码出现 Bug 而导致区块链网络瘫痪的问题,他补充说道:

“拥有单一类型的节点是一种中心化的形式——你可以从自己选择的节点类型中信任代码库,以保持按预期工作。理想状况下,矿工其实可以尝试选择不同类型的节点软件,防止类似这次 Bug 事件再次发生。”

David Steinberg 认为,在硬分叉期间使用一些特别受欢迎的软件,其实是一件比较危险的事情。他最后总结说道:

“事实上,这个 Bug 出现的时间恰逢硬分叉,结果加剧了问题的严重性,因为通常来说,你必须要升级节点软件才能参与分叉。对于正常的增量升级,并不是每个节点都会及时进行软件更新,因此如果你尝试使用不同的节点软件,那么这种问题可能只会影响到少数矿工。我认为这里最大的问题是程序员也会犯错,而且就算是去中心化系统,假设某个环节存在中心化问题——比如依赖单一的代码库,也会因为一个 Bug 导致网络受到影响。”
 

原文作者:Christine Kim

Odaily 星球日报译者:Moni

本文翻译自 CoinDesk(https://www.coindesk.com/bitcoin-cash-scheduled-hard-fork-tripped-up-by-software-bug)

如若转载请注明出处。

文章标签: 比特币现金
评论(1)
登录 账号发表你的看法,还没有账号?立即免费 注册