以太坊核心开发者解读以太坊双分叉

北京时间1月18日晚22:00点,包括Vitalik Buterin、Martin Holste Swende、Afri Schoedon以及Peter Szilagyi在内的以太坊核心开发者举行电话会议,讨论君士坦丁堡硬分叉事项。

根据以太坊开发者Péter Szilágyi所言,君士坦丁堡硬分叉将被推迟六周,在第7280000个区块上进行,具体时间为北京时间2月27日16:56;另外值得注意的是,本次分叉将是“双分叉”。

以太坊双分叉

“我们会在以太坊主网(mainnet)上进行君士坦丁堡硬分叉以及君士坦丁堡修正性(ConstantinopleFix)分叉,并在已经实行君士坦丁堡硬分叉的测试网(testnet)上,进行君士坦丁堡修正性分叉,这就是所谓的双分叉。”以太坊Geth客户与安全主管Martin Holst Swende表示。

以太坊一直以来有两种网络——主网以及测试网。所谓的测试网是用来模拟主网的行为,功效与主网相同,因此开发者可以在测试网上开发和测试自己的智能合约、发币等等,作为上链前的环境评估。反之,当主网对以太坊协议进行任何重大改变时,其测试主要在这些测试网络上完成。

以太坊最常见的3种测试网分别是:Ropsten、Kovan、Rinkeby。此前Ropsten和Rinkby测试网都已进行君士坦丁堡硬分叉,但由于EIP-1283提案存在“重入攻击”的漏洞,因此必须进行修正。要是回滚区块,势必造成测试网与主网不同步的情况,并且加大了开发难度。

因此,在电话会议上,Peter Szilagyi提议以太坊进行“双分叉”:即先进行既定的君士坦丁堡分叉,再对其进行修正,增加一个禁用项,移除有问题的EIP—1283提案。

“君士坦丁堡修正性分叉的唯一功能就是禁用EIP—1283。”Martin Holst Swende解释说,“但是,双分叉在主网上会应用在同一个区块上,而在测试网上会应用在另一个区块上。”

其他问题汇总

新的分叉会不会再出问题?出了问题又该如何处理?Peter Szilagyi在以太坊核心开发者社群中表示,他们已经设计了备用方案D;但如果计划D再次出错,他们还没设计副本的副本。”至于计划D的具体内容,Peter Szilagyi并未透露。

Martin Holst Swende则认为不可能再次出错,如果再次出错,社区还是会召开电话会议的。

由于双分叉提议是Peter Szilagyi提出的,因此不少社区成员称呼这次分叉为“Peter’s fork”。

社区成员Martin Holst Swende告诉记者,他则认为不应该再叫“硬分叉”,因为硬分叉听起来像是社区推翻共识,重新设计规则,并且硬分叉也会被一些不法分子利用,发行新币,因此建议使用“网络升级”。

对此,Martin Holst Swende则认为,自己作为技术人员,并不在意叫什么名字。“当然,名字你们可以随便取,这不是重点。”

对于存在漏洞的EIP-1283提案,Martin Holst Swende表示社区已经提出了5、6种解决方案,但目前开发者还没想好用哪种方案,因此只能将其剔除。“我们还没决定现在更倾向哪一种(解决方案),没有什么好着急的。”

在Martin看来,最着急的应该是解决难度炸弹问题,而这需要尽快启动君士坦丁堡分叉。由于长时间激活了难度炸弹,以太坊目前网络阻塞时间比既定的“冰河期”增加了9%,尽管对普通的用户来说影响并不明显。

小葱注:难度炸弹(Difficulty bomb)是一个术语,指的是随着挖矿难度增加,在以太坊块链上挖一个新区块所需的时间会随之增加。这最终会导致以太坊无矿可挖,无利可图。不同版本的以太坊区块链正在采取各种措施来规避这个问题。

在昨天的电话会议上,Vitalik Buterin提议尽快升级网络,避免难度炸弹带来更深的影响。“我们预估在六周内,网络堵塞会从‘冰河期’再向上挪动两步,届时出块时间达到20-21秒。如果我们更积极一点,比如3周,那么我们就可以避免这个问题。”

后记

以太坊原定于在第708000个进行君士坦丁堡硬分叉,但由于EIP-1283提案存在“重入攻击”漏洞,后被推迟。在过去的三天时间里,众多的开发者们为了修复这个漏洞,在核心开发者社群展开讨论,建言献策。

“我们是开源的,虽然很多人说我们效率低下,但我很喜欢这种氛围。”Martin Holste Swende如是说。

发表评论

相关文章