Alert Source Discuss
🚧 Stagnant Standards Track: Core

EIP-1227: 移除难度炸弹并重置区块奖励

Authors SmeargleUsedFly (@SmeargleUsedFly)
Created 2018-07-18
Discussion Link https://github.com/ethereum/EIPs/issues/1227
Requires EIP-649

简述

本 EIP 提议永久禁用“难度炸弹”并将区块奖励重置到拜占庭升级前的水平。

摘要

FORK_BLKNUM 开始,客户端将计算不包含额外指数成分的难度。此外,区块奖励将调整为 5 ETH 的基数,叔块和侄块的奖励也将相应调整。

动机

由于 EIP #2 中引入的“难度炸弹”(也称为“冰河时代”),难度呈人为的指数级增长,直至链冻结,用户可能会发现,在硬分叉后,要留在未分叉的链上极具挑战性。 在计划的网络升级的情况下,这是冰河时代的理想效果(实际上,这是其唯一声明的目的),但是当硬分叉包含有争议的更改时,这尤其成问题。

这种情况已经观察到:在拜占庭硬分叉期间,用户可以选择跟随链的升级方或保留在原始链上,后者已经经历了超过 30 秒的出块时间。 实际上,人们会发现,在这种情况下,要组织分散且去中心化的一组人来保持原始的、即将消亡的链是不可能的。 当有争议的更改(例如 EIP #649)在硬分叉日期前如此接近时被合并时,这种情况会加剧,因为用户无法在这么短的时间内被组织起来,以便对更改采取有根据的立场。

最终,难度炸弹只有一个目的:使硬分叉后更难保持原始链的存活。 如果社区表达意见的唯一方式是运行/不运行客户端软件,而不是通过 EIP 流程,这是不可接受的,因为他们实际上别无选择,因此没有权力。 本 EIP 提议完全消除难度炸弹,从而将以太坊治理过程中的一些权力返还给用户和社区。

鉴于围绕直接相关的 EIP #649 的争议,发行量也应重置为拜占庭升级前的水平。 以后可能会通过新的硬分叉再次减少它,只有这一次,用户实际上可以选择接受或不接受更改。 注意:发行量减少不是本提案的重点,而是可选的; 降低难度炸弹是首要关注的问题。

规范

移除难度调整的指数部分

为了 calc_difficulty 的目的,只需删除指数难度调整部分 epsilon,即 int(2**((block.number // 100000) - 2))

重置区块、叔块和侄块奖励

为了确保以太币发行量恒定,请将区块奖励调整为 new_block_reward,其中

new_block_reward = 5_000_000_000_000_000_000 if block.number >= FORK_BLKNUM else block.reward

(5E18 wei, 或 5,000,000,000,000,000,000 wei, 或 5 ETH)。

类似地,如果一个叔块包含在 block.number >= FORK_BLKNUM 的区块中,使得 block.number - uncle.number = k,则叔块奖励为

new_uncle_reward = (8 - k) * new_block_reward / 8

这是现有的拜占庭升级前的叔块奖励公式,只需使用 new_block_reward 进行调整。

block.number >= FORK_BLKNUM 的侄块奖励为

new_nephew_reward = new_block_reward / 32

这是现有的拜占庭升级前的侄块奖励公式,只需使用 new_block_reward 进行调整。

理由

这将永久地,无需进一步更改地禁用“冰河时代”。 它还将区块奖励重置为拜占庭升级前的水平。 这两个更改的指定方式与 EIP #649 类似,因此它们应该只需要客户端开发人员进行最少的更改。

向后兼容性

本 EIP 不向前兼容,并且在难度计算以及区块、叔块和侄块奖励结构中引入了向后不兼容性。 但是,它在用户群的不同部分之间可能存在争议——这正是本 EIP 旨在解决的问题。 因此,不应将其包含在特定区块号的计划硬分叉中。 建议在两个大都会硬分叉中的第二个之前,在隔离的硬分叉中实现此 EIP。

测试用例

即将推出。

实现

即将推出。

版权

通过 CC0 放弃版权及相关权利。

Citation

Please cite this document as:

SmeargleUsedFly (@SmeargleUsedFly), "EIP-1227: 移除难度炸弹并重置区块奖励 [DRAFT]," Ethereum Improvement Proposals, no. 1227, July 2018. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-1227.