伦敦时间24日下午3点,以太坊的两个主要的客户端Parity 和Geth突然意外地出现了两条并行运行的区块链。这意味着以太坊区块链目前没有达成共识。在该问题解决之前,强烈建议用户,特别是交易所,停止交易或等待多个确认。
目前开发者们正在紧张工作,希望能够在几个小时之内拿出一个解决方案。
Geth客户端的一位主要开发者Nick Johnson说:
“这个问题是因为清除账户的特殊情况而出现的:正常情况下,如果发现空账户,会清除掉这些空账户;但是现在的情况是当没有gas时,Geth客户端仍处于清除账户状态,而Parity则不会发生这种情况。
以太坊团队并没有解释哪种是正确的,但是所有人都同意Parity的实施更有意义。没有在标准中明确说明此事,并且没有对这个特殊情况编写共识测试确实是一件不幸的意外疏忽事件。
我们想到的解决方案是Geth团队编写一个补丁,然后修正Geth客户端地分叉问题,最后让其与Parity客户端进行匹配。我们希望能够很快发布这一补丁。”
Parity Technologies的创始人Gavin Wood告诉CNN,Geth客户端存在bug,这意味着“大约一半的挖矿网络正在使用有问题的Geth客户端,而另一半的网络在使用正常的Parity客户端。”Wood说“Parity客户端会继续这样运行,不会有回滚等变化,”但是运行在Geth客户端可能会回滚。关于这一点,Johnson解释:
“Geth客户端这边的分叉是不正常的,最终会被舍弃。绝大部分的交易都包含在两条链中,因此很多用户不用回滚系统。主要的风险在于与最终与其它系统进行交互,例如交易所充值以及法币提现。”
Wood说道Geth将会得到修复,主链将会继续运行,但是所有人都需要小心,因为以太坊区块链目前处于非正常的运行环境。
这种情况与比特币在2013年和2015年的分叉类似。在这两种情况下,由于漏洞,网络升级意外出现了两条区块链。在过去的6个小时中,矿工在两条不同的链上挖矿,最终会出现一条链回滚,舍弃另外一条链。
以太坊目前的意外分叉也是网络升级的原因。就在两天之前,该数字货币刚刚进行了很多的优化以解决特定的攻击问题,但是因为本次升级时这两个客户端稍有差别的方法中存在的漏洞而导致了网络分叉。
如上所述,这些问题将会在数小时内得到解决,但是同时,特别是如果你正在使用Geth client,最好不要进行交易,或者等待多个交易确认,直到问题得到解决。