编者按:本文来自链闻ChainNews,作者李画,Odaily星球日报经授权转载。1月18日,以太坊核心开发者在电话会议中达成一致,确定了以太坊君士坦丁堡升级的时间推迟到在7280000区块高度激活。根据目前的以太坊出块速度,普遍预计该升级将于6周之后的2月27日前后发生。这次升级尽管再次延后,但是并不影响其对以太坊区块链及生态系统带来的积极影响。关于此次升级的意义,链闻在之前的报道「放长眼,走出君士坦丁堡一小步,以太坊还有大未来」中有过具体分析。不过,推迟6周之后才进行升级,同时也意味着,用于延迟难度炸弹的「EIP1234」要在一个月后才能被正式启动。而实际上,以太坊的难度炸弹已经在大约670万高度的区块「启动」,并在大约700万高度的区块发生了「爆炸」。目前以太坊的区块高度为710万左右,在等待君士坦丁堡升级的一个多月的时间内,这枚引信已经拉响的「难度炸弹」将逐步提升以太坊上的挖矿难度。最早发现这一情况的是Parity的开发者、同时担任以太坊君士坦丁堡升级协调员的AfriSchodeon。Ethhub创始人EricConner随后在twitter发表了难度炸弹已被启动的观点。他指出,以太坊出块时间正在被难度炸弹逐步延长。EricConner指出,在难度炸弹爆炸后的这段时间,平均挖矿时间已经从14秒升至15.5秒,并且会一直延长以太坊的出块时间。随后,一些关注以太坊发展的媒体也开始发出报道,称如果难度炸弹不能迅速且妥善处理,将会把以太坊带入「冰河时代」。尽管这些媒体多少有些夸大该事件的影响,但是,以太坊难度炸弹需要「妥帖」地处理,以减少其影响,已经成为一个不可忽视的话题。实际上,这次的君士坦丁堡升级中的「EIP1234」提出了延迟难度炸弹提案。可是,随着这次升级再次延期,以太坊难度炸弹的引信已经拉开,影响已经开始出现。「难度炸弹」究竟是什么?
「难度炸弹」是一段写在以太坊挖矿算法里的代码,一旦以太坊上的区块高度到达某个数值,它就会显现威力。下图便是以太坊的挖矿难度计算公式,被标记为蓝色的部分是难度炸弹,它是一种每挖出10万个区块后会指数型增长一次的难度因子。以太坊的挖矿难度除了与上一个区块的难度和出块时间有关,还与该难度因子有关。当区块数较少时,难度因子对挖矿难度并无太大影响,但一旦区块数变大,该难度因子在计算结果中所占的比重会显著提升,并最终主导挖矿的难度。下图是区块高度对挖矿难度的影响图。从中可以发现,难度炸弹会在大约370万高度的区块开始发挥作用,并在大约400万高度时加速影响,此时,挖矿难度会被迅速改变,直至矿工难以挖出新的区块。区块号以十万为单位引入难度炸弹的目的,是为了减少来自矿工方面的阻力,好让以太坊能够顺利地从PoW机制过渡到PoS机制。如何阻止难度炸弹?
这不是难度炸弹的第一次爆炸。如上文所言,当以太坊区块高度到达370万后,难度炸弹就会开始发挥作用。下图绿框内是发生在2017年的以太坊难度炸弹的首次爆炸,可以看到区块奖励在难度炸弹爆炸后急速下跌。当时发生时间是2017年3月,区块高度在370万左右。直至2017年10月,拜占庭升级在区块高度437万激活时,上次难度炸弹的影响被消除。在2017年难度炸弹爆炸的这段时期,以太坊上的挖矿难度断崖式提升,出块时间被延长至30秒,ETH发行量减半。因为PoS尚未被准备好,如果不停止难度炸弹,将严重影响以太坊生态。正因为这个原因,2017年10月,开发人员在拜占庭升级中包含了「EIP649」,用于延迟难度炸弹。该提案即刻降低了挖矿难度,让其回到了难度炸弹爆炸前的水平,效果如上图红框所示。产量未回到最初的位置是因为该提案把区块奖励由5ETH降为3ETH。怎么做到的?其实很简单。在计算挖矿难度时,把当前的区块高度减去300万作为公式中使用的区块高度即可。具体算法如下图所示,可在GitHub上获取详细情况:难度炸弹引信再次拉开不难推理,当做挖矿难度计算时,如果区块高度再次达到370万,也就是真实高度达到670万时,难度炸弹会又一次开始发挥作用。目前以太坊上的区块数量已经超过了这个数值。截至发稿,以太坊的区块高度是709万,它甚至已经抵达了难度炸弹即将显现威力的400万的关口709万–300万=409万。观察以太坊运行数据可以得出相同的结论。如下图红框所示,以太坊挖矿难度在近期已被提升一次,ETH发行量正在以每天减少3000ETH的速度下跌。拆弹任务箭在弦上
如果君士坦丁堡升级按预定时间在1月完成,难度炸弹几乎不会对以太坊网络造成影响。但现在,由于升级推迟,导致消除难度炸弹的时间也被同步推迟,有可能带来一些麻烦。其中最显著的影响是,挖矿难度增加,出块时间变长,可能会造成以太坊网络的堵塞,给DApp生态带来负面的影响。君士坦丁堡升级的区块高度定在728万,与现在的区块高度相隔约20万个区块,这意味着挖矿难度在已经被加大的情况下,还会有两次指数级的增长。下图是2017年难度炸弹爆炸时,67万个区块增长下,出现了7次指数级递增。可以预见,以太坊矿工将遭遇减产的影响。不过由于难度炸弹的影响越在后期越明显,所以初期的2~3次指数级增长,还不会把难度提高到不可接受的水平。如上图所示,如果君士坦丁堡升级在728万区块高度顺利完成,挖矿难度只会有图中绿框中最初的那2~3次跃升。矿工受到的另一个影响是,他们可能会更快地迎来下一次难度炸弹的爆炸。拜占庭升级中的EIP649是把当前区块高度减去300万作为计算用的区块高度,也就是说区块数是从137万这个数字开始重新计算的,即437万–300万=137万。君士坦丁堡升级中的EIP1234则是把当前区块高度减去500万作为计算用的区块高度,也就是说,区块数是从228万这个数字开始重新计算的,即728万–500万=228万。因为难度炸弹会在370万左右的区块高度开始发挥作用,这代表着在君士坦丁堡升级完成后,距离下次难度炸弹被激活只剩140万个区块。相比之下,拜占庭升级留出的是230万个区块。这意味着,如果以太坊不能在一年内完成从PoW到PoS的改变,有可能还得进行一次硬分叉升级,处理掉难度炸弹的影响。除此之外,在目前,难度炸弹的爆炸可能也会影响君士坦丁堡升级的完成具体时间。目前市场普遍预计728万高度的区块会在2月27日左右出现,但受难度炸弹的影响,它也可能会到3月才能被挖出。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。