考虑到区块高度越高,实现分叉的难度就越大,矿工不能等到完全没有产出了才开始分叉,而是应该在难度炸弹开启的第一时间就开始行动。然而试想一下,作为一个理性的矿工个体,你会在难度炸弹开启的时候尝试分叉主链吗?事实上你会担心:如果有个别矿工没有齐心协力地分叉,而是在原最长链上继续挖,那么他们的产出将会大幅上升,甚至超过难度炸弹造成的损失,一旦分叉失败,这些「背叛」的矿工会赚的盆满钵满,而「团结」的矿工却竹篮打水。因此,理性的矿工会选择沿着主链继续挖(或者选择以合理的退出价格离场),即使知道最终的结果是产出为零,也没人愿意带头冒险。 理解了难度炸弹的意义我们自然就能明白其开启时间与 ETH2.0 合并时间的先后顺序。如前文所述,难度炸弹的存在就是为了在以太坊 1.0 与 2.0 合并时不要发生矿工集体分叉的局面,因此如果以太坊已经顺利完成了合并,那么难度炸弹也就没有存在的意义了。之所以 把难度炸弹的最终开启时间视为 PoW 终结的先行指标 便是基于这个逻辑。 难度炸弹开启后,以太坊合并必须在两三个月内完成,如果完成不了,团队只能选择暂停并推迟,这在历史上发生过三次。 历次推迟难度炸弹的 EIPs历史上难度炸弹曾开启过,又四度被推迟了,四次推迟分别发生在拜占庭升级、君士坦丁堡升级、缪尔冰川升级和刚结束的伦敦升级。 上图为历史上以太坊出块时间的变化,可以看到正常情况下出块时间维持在 13-14 秒,但出现过三次急剧上升的情况,这三次正是难度炸弹开启的时候。每次开启后,出块时间都会呈现锯齿状上升,这便是因为每挖出 10 万个区块难度会调整一次。以最初的 13 秒为例,10 万个区块大约耗时 15 天,而最后一次时间增加到 25 秒,此时 10 万个区块需耗时将近一个月,因此锯齿呈现逐渐变宽的趋势。三次难度炸弹最终都被暂停并推迟,原因就是以太坊开发团队还没做好完全转向 PoS 的准备,而 PoW 模式下区块难度的上升会导致交易等待时间和叔块概率的增加,从而降低以太坊的实用性与安全性。 第一次推迟难度炸弹2017 年 3 月,区块高度达到 370 万,难度炸弹第一次开启,出块时间迅速上升,期间经过 6 次难度调整,直至 10 月被延长至 30 秒。此时,若不尽快停止难度炸弹,将严重影响以太坊生态。经过开发团队讨论后,以太坊在区块高度 437 万处启动硬分叉——拜占庭升级,在升级版本中包含了 EIP-649 提案,该提案通过把当前的区块高度减去 300 万作为公式中使用的伪区块高度,以此来延缓难度炸弹的启动时间。 (责任编辑:admin) |