嘀嗒嘀嗒,以太坊难度炸弹的引信已经拉开…

转载
2166 天前
13125
链闻ChainNews

来源:链闻ChainNews    作者:李画


1 月 18 日,在刚刚过去的这个周五晚间,以太坊核心开发者在电话会议中达成一致,确定了以太坊君士坦丁堡升级的时间推迟到在 7280000 区块高度激活。根据目前的以太坊出块速度,普遍预计该升级将于 6 周之后的 2 月 27 日前后发生。

这次升级尽管再次延后,但是并不影响其对以太坊区块链及生态系统带来的积极影响。关于此次升级的意义,链闻在之前的报道「放长眼,走出君士坦丁堡一小步,以太坊还有大未来」中有过具体分析。

不过,推迟 6 周之后才进行升级,同时也意味着,用于延迟难度炸弹的「EIP 1234」要在一个月后才能被正式启动。

而实际上,以太坊的难度炸弹已经在大约 670 万高度的区块「启动」,并在大约 700 万高度的区块发生了「爆炸」。

目前以太坊的区块高度为 709 万左右,在等待君士坦丁堡升级的一个多月的时间内,这枚引信已经拉响的「难度炸弹」将逐步提升以太坊上的挖矿难度。

最早发现这一情况的是 Parity 的开发者、同时担任以太坊君士坦丁堡升级协调员的 Afri Schodeon。


Ethhub 创始人 Eric Conner 随后在 twitter 发表了难度炸弹已被启动的观点。他指出,以太坊出块时间正在被难度炸弹逐步延长。


Eric Conner 指出,在难度炸弹爆炸后的这段时间,平均挖矿时间已经从 14 秒升至 15.5 秒,并且会一直延长以太坊的出块时间。


随后,一些关注以太坊发展的媒体也开始发出报道,称如果难度炸弹不能迅速且妥善处理,将会把以太坊带入「冰河时代」。



尽管这些媒体多少有些夸大该事件的影响,但是,以太坊难度炸弹需要「妥帖」地处理,以减少其影响,已经成为一个不可忽视的话题。

实际上,这次的君士坦丁堡升级中的「EIP 1234」提出了延迟难度炸弹提案。

可是,随着这次升级再次延期,以太坊难度炸弹的引信已经拉开,影响已经开始出现。

「难度炸弹」究竟是什么?

「难度炸弹」是一段写在以太坊挖矿算法里的代码,一旦以太坊上的区块高度到达某个数值,它就会显现威力。

下图便是以太坊的挖矿难度计算公式,被标记为蓝色的部分是难度炸弹,它是一种每挖出 10 万个区块后会指数型增长一次的难度因子。以太坊的挖矿难度除了与上一个区块的难度和出块时间有关,还与该难度因子有关。


当区块数较少时,难度因子对挖矿难度并无太大影响,但一旦区块数变大,该难度因子在计算结果中所占的比重会显著提升,并最终主导挖矿的难度。

下图是区块高度对挖矿难度的影响图。从中可以发现,难度炸弹会在大约 370 万高度的区块开始发挥作用,并在大约 400 万高度时加速影响,此时,挖矿难度会被迅速改变,直至矿工难以挖出新的区块。


区块号以十万为单位

引入难度炸弹的目的,是为了减少来自矿工方面的阻力,好让以太坊能够顺利地从 PoW 机制过渡到 PoS 机制。

如何阻止难度炸弹?

这不是难度炸弹的第一次爆炸。

如上文所言,当以太坊区块高度到达 370 万后,难度炸弹就会开始发挥作用。

下图绿框内是发生在 2017 年的以太坊难度炸弹的首次爆炸,可以看到区块奖励在难度炸弹爆炸后急速下跌。当时发生时间是 2017 年 3 月,区块高度在 370 万左右。直至 2017 年 10 月,拜占庭升级在区块高度 437 万激活时,上次难度炸弹的影响被消除。

在 2017 年难度炸弹爆炸的这段时期,以太坊上的挖矿难度断崖式提升,出块时间被延长至 30 秒,ETH 发行量减半。


因为 PoS 尚未被准备好,如果不停止难度炸弹,将严重影响以太坊生态。

正因为这个原因,2017 年 10 月,开发人员在拜占庭升级中包含了「EIP 649」,用于延迟难度炸弹。

该提案即刻降低了挖矿难度,让其回到了难度炸弹爆炸前的水平,效果如上图红框所示。产量未回到最初的位置是因为该提案把区块奖励由 5 ETH 降为 3 ETH。

怎么做到的?其实很简单。

在计算挖矿难度时,把当前的区块高度减去 300 万作为公式中使用的区块高度即可。具体算法如下图所示,可在 GitHub 上获取详细情况:


难度炸弹引信再次拉开

不难推理,当做挖矿难度计算时,如果区块高度再次达到 370 万,也就是真实高度达到 670 万时,难度炸弹会又一次开始发挥作用。

目前以太坊上的区块数量已经超过了这个数值。截至发稿,以太坊的区块高度是 709 万,它甚至已经抵达了难度炸弹即将显现威力的 400 万的关口 709 万 – 300 万 = 409 万。

观察以太坊运行数据可以得出相同的结论。如下图红框所示,以太坊挖矿难度在近期已被提升一次,ETH 发行量正在以每天减少 3000 ETH 的速度下跌。


拆弹任务箭在弦上

如果君士坦丁堡升级按预定时间在 1 月完成,难度炸弹几乎不会对以太坊网络造成影响。但现在,由于升级推迟,导致消除难度炸弹的时间也被同步推迟,有可能带来一些麻烦。

其中最显著的影响是,挖矿难度增加,出块时间变长,可能会造成以太坊网络的堵塞,给 DApp 生态带来负面的影响。

君士坦丁堡升级的区块高度定在 728 万,与现在的区块高度相隔约 20 万个区块,这意味着挖矿难度在已经被加大的情况下,还会有两次指数级的增长。

下图是 2017 年难度炸弹爆炸时,67 万个区块增长下,出现了 7 次指数级递增。


可以预见,以太坊矿工将遭遇减产的影响。不过由于难度炸弹的影响越在后期越明显,所以初期的 2~3 次指数级增长,还不会把难度提高到不可接受的水平。

如上图所示,如果君士坦丁堡升级在 728 万区块高度顺利完成,挖矿难度只会有图中绿框中最初的那 2~3 次跃升。

矿工受到的另一个影响是,他们可能会更快地迎来下一次难度炸弹的爆炸。

拜占庭升级中的 EIP 649 是把当前区块高度减去 300 万作为计算用的区块高度,也就是说区块数是从 137 万这个数字开始重新计算的,即 437万 – 300 万 = 137 万。

君士坦丁堡升级中的 EIP 1234 则是把当前区块高度减去 500 万作为计算用的区块高度,也就是说,区块数是从 228 万这个数字开始重新计算的,即 728 万 – 500万 = 228 万。

因为难度炸弹会在 370 万左右的区块高度开始发挥作用,这代表着在君士坦丁堡升级完成后,距离下次难度炸弹被激活只剩 140 万个区块。相比之下,拜占庭升级留出的是 230 万个区块。

这意味着,如果以太坊不能在一年内完成从 PoW 到 PoS 的改变,有可能还得进行一次硬分叉升级,处理掉难度炸弹的影响。

除此之外,在目前,难度炸弹的爆炸可能也会影响君士坦丁堡升级的完成具体时间。目前市场普遍预计 728 万高度的区块会在 2 月 27 日左右出现,但受难度炸弹的影响,它也可能会到 3 月才能被挖出。