以太坊三度推迟“冰河期”为哪般?新的硬分叉又双叒叕要来了!
在最近的以太坊开发者会议当中,关于难度炸弹(或冰河期)的话题成为了讨论焦点,根据规则,冰河期到来后,每100,000个区块,以太坊网络难度就会增长一次,如果持续下去,我们在2020年2月就会看到30多秒的以太坊区块时间。为此,以太坊开发者James Hancock提议在以太坊主网区块高度达到9,200,000时(预计明年1月6日左右)进行一次名为Muir Glacier(缪尔冰川)的紧急硬分叉,以推迟冰河期。
( 注:所谓冰河期,它是一种包含在以太坊难度调整算法中的机制,其最初的主要设计目标是为了平稳地实现ETH1.0(PoW链)——》ETH2.0(PoS链)的过渡,但由于ETH2.0的进度一再延迟,冰河期已被推迟了2次,目前,以太坊的难度炸弹再次触发,而距离ETH2.0的上线时间又还较远,因此以太坊网络需要再进行一次硬分叉。 )
以下是涉及这次硬分叉的EIP 2387及EIP-2384提案的具体内容:
EIP 2387 :硬分叉 Muir Glacier(缪尔冰川)
作者:James Hancock状态:最后一次意见征求时间( review 截止日期:2019-12-12) 类型:Meta 创建日期:2019-11-22 要求:EIP 1679,EIP 2384
摘要
这个EIP指定了名为Muir Glacier(缪尔冰川)的以太坊硬分叉中包含的更改内容。这一硬分叉解决了以太坊主网即将发生的冰河期,并纳入了旨在解决冰河期根本问题的commitment。动机
以太坊由于其难度调整算法实现了一致的区块时间。如果区块时间大于20秒,则网络难度就会降低,如果区块时间小于10秒,则难度就会增长。这种机制使得以太坊的平均区块时间通常会维持在13-14秒左右。而在这个机制当中,还存在着一个被称为“难度炸弹”或“冰河期”的机制,它人为地增加了网络难度,以至于难度调整机制在某一点上无法适应这种增长,我们会看到整个网络的区块时间会出现增长。冰河期每100,000个区块就会增长一次,一开始这种变化是不明显的,而一旦我们可以观察到这种变化,那么它对网络将会产生巨大的负面影响。冰河期的主要问题,在于它被包含在目标区块时间的复杂机制中。更糟糕的是,由于与该算法交织在一起,因此很难模拟或预测其对网络的影响。要预测冰河期的影响,既要对未来主网的难度做出假设,又要预测难度变化对冰河期影响及区块时间的影响。
这个硬分叉,将尽可能合理地推迟冰河期,并给我们时间来更新冰河期,从此以后不再面临这一设计问题。
而在这个时间范围内,有两种解决方案可供社区考虑。
- 更新机制,使行为变得可预测;
- 完全移除冰河期机制;
规范
代号:Muir Glacier(缪尔冰川)激活时间:
- 以太坊主网区块号 >= 9,200,000;
- Ropsten测试网区块号 >= 7,117,117;
- Kovan测试网区块号 >= N/A;
- Rinkeby测试网区块号 >= N/A;
- Görli测试网区块号 >= N/A;
包含的EIP
- EIP-2384:伊斯坦布尔/柏林 难度炸弹延迟
EIP 2384:伊斯坦布尔/柏林 难度炸弹延迟
作者:Eric Conner状态:最后一次意见征求时间( review 截止日期:2019-12-12)
类型:Core
EIP创建时间:2019-11-20
简单总结
由于难度炸弹(也被称为“冰河期”)以及缓慢加速机制,以太坊的平均区块时间正在增加,而这个EIP提议会将难度炸弹再延迟4,000,000个区块(大约611天)。摘要
从???_FORK_BLKNUM
开始,客户端将根据一个假区块号计算难度,这一难度炸弹的时间将调整至比Homestead分叉晚900万个区块,比拜占庭分叉晚700万个区块,以及比君士坦丁堡分叉晚400万个区块。动机
2019年10月5日,在以太坊区块高度达到8,600,000之后,难度炸弹问题再次引人注目。之前的平均区块时间大约在13.1秒左右,而在区块高度达到8,900,000之后,平均区块时间大约在14.3秒左右,而每100,000个区块后,区块间隔时间将会呈现指数级增长。如果难度炸弹持续下去,我们将在2019年12月底看到20秒左右的区块时间,而从2020年2月开始,我们会面临30+秒的区块时间。这会使得以太坊区块链变得拥堵,使用成本也会变得更高。因此,我们最好将难度炸弹再次推迟。
规范
用假区块号调整难度为了
calc_difficulty
目的,只需使用以下公式替换“冰河期”组成部分中使用的block.number:fake_block_number = max(0, block.number - 9_000_000) if block.number >= ???_FORK_BLKNUM else block.number
理论基础
这将使以太坊冰河期延迟5200万秒(约611天),因此,区块链将在2021年7月左右恢复到20秒的区块时间。需要注意的是,这是将冰河期从网络高度达到8,800,000时再推迟 4,000,000个区块,而不是从即将发生的硬分叉时间点计算。向后兼容性
这个EIP不是向前兼容的,因此,它应该被包含在某个区块号的预定硬分叉中。建议在伊斯坦布尔硬分叉后不久纳入这一EIP。
相关资料:
1、https://eips.ethereum.org/EIPS/eip-2387
2、https://eips.ethereum.org/EIPS/eip-2384