以太坊开发人员再一次推迟硬分叉升级,这次是“柏林”(Berlin)。那么,为什么以太坊又双叒叕推迟升级了呢?下面就让金色财经和大家一起来解读一下。

目前,依赖以太坊客户端Geth的用户数量非常多,以至于只要该客户端出现漏洞,就有可能暂时冻结以太坊网络——而这,似乎与区块链去中心化的核心思想有所冲突。鉴于此,以太坊核心开发人员在上周五(6月27日)决定将“柏林”硬分叉叉的开发工作至少推迟到八月,这么做的目的只有一个,即:让以太坊其他客户端有机会增加自己的网络份额。

根据Ether Nodes的说法,Geth客户端只是以太坊旗下11个规范客户端中的一个,但是竟然有79%的以太坊节点在这个客户端上面运行。自2019年12月以来,Geth客户端在以太网网络内的客户端数量占比增长了5%。对此,开发人员开始担心一旦Geth客户端出现严重漏洞就极有可能会破坏整个以太坊——特别是在以太坊网络计划过渡到Eth 2.0下的权益证明(PoS)共识算法之前,会持续对Eth 1.x进行滚动更新。

上周五(6月27日),Geth团队负责人佩特·西拉吉(Péter Szilágyi)在以太坊核心开发者小组电话会议上表示:“以太坊网络中的大多数人都使用了Geth客户端,这么做当然无可厚非,但有一点至关重要,那就是我们不能承受不正确的后果。”

以太坊编程语言

毫无疑问,拥有多样化的客户端对以太坊网络来说是有利的。从最小的创业公司到摩根大通这样的大企业,以太坊允许不同的项目加入开发者社区。以太坊于2015年推出,一年后就在完整性的不同级别上支持了八种编程语言。以太坊基金会目前以五种编程语言开发客户端,包括Go、Solidity、Java、JavaScript和Python。

但是,就像人类的语言一样,每种编程语言都有其细微差别,因此在客户端实现方面也存在缺陷。当以太坊开发人员进行更新时,这些细微差别可能会变成令人讨厌的错误。

独立开发人员阿列克·谢诺夫(Alexey Akhunov)在一次私人聊天中表示:“(推迟柏林硬分叉升级)的主要原因,是以太坊社区希望减少对Geth客户端的依赖,最终目标是要确保即便Geth客户端出现问题,也不会破坏整个以太坊网络。由于确保Geth客户端正确运行非常重要,所以目前以太坊开发人员的工作负担变得非常重,他们需要要完成大部分工作以确保一切正常。”

随着Parity Technologies在2019年12月宣布以太坊网络弃用Parity Ethereum客户端,以太坊对Geth客户端的依赖似乎越来越严重了。当时Parity团队在其官方博客发文中写道:“Parity客户端已经无法获得所需的资源,不仅无法投入到后续开发,甚至连简单维护工作都难以为继。”

Parity以太坊客户端项目的代码库现在已移交给由ConsenSys衍生公司Gnosis资助的去中心化自治组织(DAO)。现在,该项目以“开放以太坊”(Open Ethereum)的名称运行。根据Web Archive的数据显示,自2019年12月以来,该客户端已经丢失了近60%的节点。 (需要注意的是:自2019年12月以来,Geth客户端也失去了大约14%的节点。)

多元化的以太坊客户端

Gnosis创始人马丁·科珀尔曼(Martin Köppelmann)在发布的一条私人消息中说道:“在理想情况下,以太坊应该拥有多个客户端,而且每一个客户端的市场份额都不应该超过33%。虽然Parity——也就是开放以太坊(Open Ethereum)确实达到了运行以太坊客户端所要求拥有的节点数量,但我们并不认为节点数量下降是有问题的。恰恰相反。当Gnosis确认接管开放以太坊客户端的时候,我们的市场份额为0。”

不管马丁·科珀尔曼对开放以太坊客户端的热情如何,Geth团队负责人佩特·西拉吉的担忧仍然值得关注。由于庞大的市场占有率,想要让个人用户、企业、或是交易所删除Geth以太坊客户端是非常困难的,然而一旦Geth客户端出现技术问题,这种严重依赖性就会导致致命问题。

那么,为什么以太坊网络会如此会暴露出对Geth客户端的严重依赖问题呢?答案正是Eth 2.0启动过于缓慢。一旦硬分叉遇到一个或多个问题,Eth 2.0研究人员每次都会同意延迟升级,然后与各种各样的客户端开发人员开会讨论问题,以防止任一客户端在升级之后出现问题。

相比之下,比特币和大多数其他加密货币的升级效率要高得多,至少不像以太坊这样需要与那么多客户端进行沟通协调。不得不说,以太坊现在的确遇到了一些束缚:如果想要100%正常运行,就需要取决于其项目复杂,但同时他们有需要在每六到十二个月滚动进行一次硬分叉。

相比之下,比特币和大多数其他加密货币的使用频率并不高,或者运行的应用程序数量不多。以太坊面临一些束缚:100%的正常运行时间取决于它的项目负载,但每6到12个月滚动一次硬分叉。

问题源自Geth客户端过于倦怠吗,或许不是?

需要注意的是,如何吸引以太坊用户使用其他客户端、以减弱Geth客户端的市场领导力,似乎一直是个悬而未决的问题。

以太坊开发人员格雷格·科尔文(Greg Colvin)在开发人员电话会议中表示,吸引以太坊用户使用其他客户端已经成为一个业务问题,不太可能通过开发人员计划来解决。事实上,项目可以选择与市场占比较小的客户端合作,因为他们有Geth客户端无法解决的迫切需求,例如代码未开源等等。可话虽如此,据格雷格·科尔文透露,Geth客户端一直在试图招募用更多的员工,目的很可能就是希望进一步巩固市场“统治地位”。

暂停测试“柏林”硬分叉升级的以太坊改进提案(EIP)是开发人员的一种选择,尽管如此,正如Geth团队负责人佩特·西拉吉所说,为了确保以太坊客户端能够24/7全天候稳定运行,其实已经耗尽了其团队很多精力和资源。

2020年6月,佩特·西拉吉透露以太坊测试客户端Geth最新版本即将发布,新版本中将会添加一个功能,即手续费大于1ETH的交易将会被拒绝。“有趣”的是,六月初Geth还专门为“柏林”升级发布了最新版本1.9.15,除了常规修复漏洞之外,本次更新中已经实现了下一次硬分叉升级“柏林”(Berlin)已经规划的所有改进提案,针对这些EIP的临时测试网络Yolo也已经上线。但现在看来,反而是以太坊社区“出尔反尔”,担心Geth的中心化问题而延迟升级。

如果一切顺利的话,希望以太坊能够如其计划的那样,在今年八月实施“柏林”硬分叉升级,但到时候还会有其他状况发生吗?就让我们拭目以待吧。

本文部分内容编译自coindesk