EIP2384 - 缪尔冰川(Muir Glacier)难度炸弹推迟
# 简述
由于难度炸弹(也被称为“冰川时期”)的缓慢加速,平均出块时间不断增加。本次 EIP 提议将难度炸弹再推迟 400 万个区块(换算成时间单位,大约是 611 天)。
# 摘要
从 MUIR_GLACIER_FORK_BLKNUM
开始,客户端将根据一个经过修改的区块编号来进行难度计算,具体的说,比起家园硬分叉(Homestead Fork),难度炸弹被往后调整了 900 万个区块;比起拜占庭硬分叉(Byzantium Fork),往后调整了 700 万个区块;比起君士坦丁堡硬分叉(Constantinople Fork),则是往后调整了 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 不是向前兼容的,在计算难度时引入了向后不兼容。因此,它应该包含在某个块号的预定硬分叉中。我们的建议是在伊斯坦布尔硬分叉(Istanbul Fork)后不久加入这个 EIP。
# 测试案例
暂无测试案例可以提供,但只要规范被开发人员接受或由客户实施,就会创建测试案例。
# 执行
具体执行的逻辑与 EIP-649 或 EIP-1234 没有区别;parity-ethereum#9187 (opens new window) 节点的搭建同样适用。
# 版权声明
通过 CC0 (opens new window) 放弃全部著作权与邻接权。