EIP-2384: 缪尔冰川难度炸弹延迟
Authors | Eric Conner (@econoar) |
---|---|
Created | 2019-11-20 |
Discussion Link | https://ethereum-magicians.org/t/eip-2384-difficulty-bomb-delay |
简述
由于难度炸弹(也称为“冰河时代”)的影响,平均区块时间正在增加,并且正在缓慢加速。本 EIP 提议将难度炸弹再延迟 4,000,000 个区块(约 611 天)。
摘要
从 MUIR_GLACIER_FORK_BLKNUM
开始,客户端将根据一个虚假的区块号来计算难度,这个虚假的区块号向客户端表明难度炸弹的调整比 Homestead 分叉晚 900 万个区块,比 Byzantium 分叉晚 700 万个区块,比 Constantinople 分叉晚 400 万个区块。
动机
难度炸弹在 2019 年 10 月 5 日,区块 8,600,000 处再次开始变得明显。平均区块时间约为 13.1 秒,而截至区块 8,900,000,约为 14.3 秒。这将每 100,000 个区块呈指数级加速。估计难度炸弹对区块时间的影响表明,我们将在 2019 年 12 月底看到 20 秒的区块时间,并在 2020 年 2 月开始看到 30 秒以上的区块时间。这将开始使链变得臃肿并且使用成本更高。最好再次延迟难度炸弹,大约到 Eth2 最终性小工具预计发布的时间。
规范
使用虚假区块号放松难度
为了 calc_difficulty
的目的,只需将指数冰河时代组件中使用的 block.number
替换为以下公式:
fake_block_number = max(0, block.number - 9_000_000) if block.number >= MUIR_GLACIER_FORK_BLKNUM else block.number
理由
这将把冰河时代推迟 5200 万秒(约 611 天),因此链将在 2021 年 7 月左右恢复到 20 秒的区块时间。重要的是要注意,这会将冰河时代从 ~区块 8,800,000 推迟 4,000,000 个区块,而不是从这个 EIP 在分叉中激活的时间开始算。
向后兼容性
此 EIP 不向前兼容,并在难度计算中引入向后不兼容性。因此,它应该包含在某个区块号的预定硬分叉中。建议在伊斯坦布尔分叉后不久包含此 EIP。
测试用例
一旦开发人员接受规范或客户端实施规范,就应创建测试用例。
实现
其逻辑上的实现与 EIP-649 或 EIP-1234 没有区别;Parity-Ethereum 的实现可在 parity-ethereum#9187 中找到。
版权
在 CC0 下放弃版权及相关权利。
Citation
Please cite this document as:
Eric Conner (@econoar), "EIP-2384: 缪尔冰川难度炸弹延迟," Ethereum Improvement Proposals, no. 2384, November 2019. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-2384.