有惊无险!以太坊完成难得一见“双重硬分叉”

北京时间 3 月 1 日凌晨近 4 点,全球市值第二大的加密货币——以太坊,正式启动第六次和第七次全系统升级。由于此前一连串突发状况,这次升级事前一延再延,全球区块链社区都高度关注这难得一见的“双重硬分叉”,国内用户也是彻夜围观,所幸分叉结果成功收场,可以说是有惊无险。

截至截稿为止,以太坊链上活动相对平稳,以太币价格也未出现太大波动,约在136-138美元之间徘徊。

此次两个升级被称为君士坦丁堡(Constantinople)和圣彼得堡(St. Petersburg),皆属于“硬分叉”(hard fork),意思是升级过程将在以太坊软件中添加与过去版本不兼容的新规则,包含矿工、交易所和开发商等完整节点,必须配合下载最新版本进行升级,否则就会只能在旧的区块链上运行,无法发送以太币或在升级后的网络上运行。

不过在一般用户来说,包含 Coinbase、Binance 等大型交易所的客户,或是一般加密钱包用户,除非是收到服务商的通知,否则不需要采取特别措施。

(来源:ETC | FLICKR)

这两个升级是在相同的区块高度——7,280,000 实施分叉。

之所以同时进行两个升级,是因为原订先行进行的君士坦丁堡升级,此前因故数度推迟,最终以太坊核心开发者决定在相同的区块上同时进行两个协议升级,

图|以太坊区块高度已达 7,280,000,君士坦丁堡和圣彼得堡升级启动(来源:Amberdata)

以太坊一共分四个阶段,分别是 Frontier(前沿)、Homestead(家园)、Metropolis(大都会),以及 Serenity(宁静)。目的是将以太坊运作的共识机制由工作权益证明机制(PoS)逐步转换至权益证明(PoW),不再需要大批矿工耗费大量资源挖矿。每个阶段之间、或阶段之中都可能进行硬分叉。

以太坊过去发生过哪些重大硬分叉?

自 2015 年 7 月启动以来,以太坊已经成功进行了数次硬分叉,有些分叉是按照计划进行,有些则是出于意外,也有因出现变数而打乱计划的状况,如这次的双分叉。

根据维基百科纪录,以太坊 2015 年第一次分叉调整了未来挖矿的难度,确保未来的使用者会有从原始的工作权益证明机制(PoS)转换至权益证明(PoW)的动机。

2016 年春季以太坊进行了第二次分叉,释出了第一个稳定版本,称作“家园”(Homestead)。

2016 年 6 月,以太坊上的一个去中心化自治组织 The DAO 被骇,造成市值 5000 万美元的以太币被移动到只有该骇客可以控制的“分身 DAO”。此事最终导致以太坊社区决议在 2016 年 7 月 20 日进行硬分叉,让所有以太币(包括被移动的)回归原处。不接受此改变的,则成为分叉币“以太坊经典”(Ethereum Classic)。

有些时候,重大分叉可能轰动整个区块链圈,上述以太坊经典分叉就是一例。但也有很多時候,分叉并不会引起太多关注。独立以太坊开发人员 Lane Retting 就认为,此次 5 项计划进行的以太坊改进提案(EIP)中,其中 4 项估计一般用户都不会注意。

史上首次双分叉,将带来哪些影响?

而此次的君士坦丁堡/圣彼得堡双分叉一旦激活,最主要的差别将是以太坊区块奖励会从 3 ETH 减少为 2 ETH。此前拜占庭(Byzantium)硬分叉也发生过类似情形,当时的区块奖励从 5 ETH 减少为 3 ETH。

区块奖励削减最直接冲击的就是矿工收益。Lane Retting 就说,“减少 ETH 区块奖励??显然将会对矿工产生重大冲击。”尽管理论上可以通过通胀率下降的调整来带动币价上涨以应对冲击,但其中仍存在不确定性,即便一切顺利,算力与价格也至少需要一段时间才能达到平衡。

因此一如既往地,此次分叉发生前,矿工群也存在许多反对声音。唯矛盾的是,若因对立导致以太坊网络分裂,通常是矿工更不乐见的情况。

不过整体来说,君士坦丁堡分叉主要是为了“维护和优化升级”,除矿工需要面对收益削减的重大改变外,对其余用户群影响并不是太大。

以太坊信息网站 ETHHub 创始人 Eric Conner 就解释,此次升级只是一个暂时性的措施,最终要达成的主要目的,是下一次“宁静”(Serenity)升级时,以太坊区块链上的矿工将被新的“验证者”(Validator)所取代。

除了区块奖励削减,这次双分叉还包含了几项技术升级,同时也是为了让整个以太坊区块链在下一个更重大的 Casper FFG 升级前,能够优化运营。

这些升级分别是针对以太坊虚拟机的按位移动操作、智能合约操作与费用成本等进行改良。包含:

?EIP 145,以太坊虚拟机的按位移动指令(Bitwise shifting instructions in EVM)

?EIP 1014,Skinny CREATE2

?EIP 1052,EXTCODEHASH 操作码

为何以太坊硬分叉会一延再延?

无论是以太坊,或是其它区块链,每逢硬分叉总是会出现诸多变数,存在许多不确定性。硬分叉的一再推迟,这种情况在过去几次以太坊升级也出现过。

自从 2018 年 7 月开始进行升级测试以来,以太坊开发人员就不断面临许多障碍,导致君士坦丁堡激活一再延迟。原本君士坦丁堡最早是预订在 2018 年 10 月就要主网发布,但由于代码在测试网上发布后发现问题,最终将升级延期到了 2019 年 1 月。之后又数度发生临时状况,以下是今年 1 月以来的变化过程:

?2019 年 1 月 11 日:君士坦丁堡预订在主网上激活的前一周,开发人员对该次升级表示谨慎乐观。

?2019 年 1 月 13 日:区块高度 7,080,000 预订实施硬分叉前 48 小时,以太坊开发人员被告知存在一个重大安全漏洞。

?2019 年 1 月 18 日:开发人员同意将君士坦丁堡主网激活推迟至今年二月底,并提出新的分叉区块高度。

?2019 年 2 月 12 日:Geth 和 Parity 等主要以太坊客户端发布了君士坦丁堡和圣彼得堡的最终软件版本,之后以太坊官方网站并发布一篇博客文章加以完整说明。