北京时间7月31日,Multi-geth发布了1.9.18版本,宣布结束对Ethereum Classic的支持,主要原因是由于Ethereum Classic在其Phoenix硬分叉过程中破坏了其代码的不变性( immutability )以及代码及法则(Code-is-law)的准则,造成部分智能合约的中的回退函数失效。 Multi-geth自身是一个分布式,支持多种区块链的以太坊协议的开发套件。其对Ethereum classic的结束支持代表着会有众多替代链出现并且Ethereum classic的所有节点会根据不同的准则来自己决定那一条替代链会是主链。有一些节点可能会选择最长的链作为主链,一些节点可能会选择有最大区块难度的链作为主链,同样,也会有一些节点选择目前工作量最大的链作为主链进行挖掘。 事件始末: 以太经典(Ethereum Classic)于昨日在官方推特上发布消息,表示目前正在进行网络维护,希望包括交易所、矿池等在内的服务商暂停 ETC 存款,以进一步检查网络问题。 此前以太坊基金会社区经理 Hudson Jameson 在推特表示,Ethereum Classic 区块链出现问题,交易所需要暂停存取款。并建议矿工应合作去挖同一条链,放弃少部分人挖的链,直到问题结束。 北京时间8月2日,Ethereum Classic Labs在Medium官方宣布ETC网络已完成区块链重组,并称该问题已经得到解决。 由于无法识别的错误,OpenEthereum / Parity和Open-ETC不再正常运行。该错误导致临时链和少数链断裂。将来,任何运行OpenEthereum或Open-ETC的以太坊经典节点都可能导致挖掘不正确的链。 问题解析及事件还原: 本次事件发生的流程如下: 1. 恶意矿工(ETC地址:0x75d1e5477f1fdaad6e0e3d433ab69b08c482f14e)挖掘了约3000个区块。 2. 2Miners矿池由于背景中Multi-get结束对Ethereum classic的支持而短暂下线进行维护。 3. 当2Miners矿池维护的这段时间内,2Miners矿池并没有产生新的区块。在2Miners矿池结束维护上线后,约3000个区块同时被插入到2Miners矿池中。 4. 由于Ethereum Classic上所有的Parity或者OpenEthereum节点都无法处理这3693个来自Core-Geth节点的区块,因此就出现了链分叉:所有的Parity或者OpenEthereum节点上的矿工都依旧在原始主链上进行挖掘,但是在Core-Geth节点的矿工就在被插入约3000个区块的新链上挖掘。 5. 根据工作证明(POW)共识,在新链上的工作量会逐渐超过原始主链,在原始主链上Parity节点的一些矿工根据会“选择在更多工作量的链上进行挖掘”的准则,转移到新链上进行挖掘。 (责任编辑:admin) |