EIP-1276: 在君士坦丁堡升级中移除难度炸弹并调整区块奖励
Authors | EOS Classic (@eosclassicteam) |
---|---|
Created | 2018-07-31 |
Discussion Link | https://ethereum-magicians.org/t/eip-1276-eliminate-difficulty-bomb-and-adjust-block-reward-on-constantinople-shift/908 |
简述
由于难度逻辑中的因素(即众所周知的难度炸弹),平均区块时间正在增加。本 EIP 提议永久消除难度炸弹,并在君士坦丁堡分叉(Metropolis 分叉的第二部分)中降低区块奖励。
摘要
从 CNSTNTNPL_FORK_BLKNUM
开始,客户端将计算难度,而不考虑当前区块号。此外,区块奖励将调整为 2 ETH 的基数,叔块和侄块奖励也将相应调整。
动机
区块时间在区块链生态系统中扮演着最重要的角色,它通过挖矿难度计算逻辑进行调整,该逻辑已作为工作量证明共识的一部分实现在节点客户端上。去年,由于难度逻辑的错误设计,平均区块时间迅速增加,该设计本应在 Casper 升级中进行更改,然而,Casper 的实施被推迟,因此不可避免地推迟了难度炸弹,以防止以太坊网络上交易处理的显着延迟。
尽管成功进行了硬分叉以推迟难度炸弹的激活,但预计难度炸弹的激活将在以太坊网络上实施 Casper 协议之前的未来一段时间内再次发生。因此,完全移除难度炸弹是应对区块时间增加的最合适方式,而不是再次延迟它。
此外,降低区块挖矿奖励以及移除难度炸弹有望帮助以太坊生态系统的稳定增长。目前,以太坊占据了基于 Ethash 链总算力份额的 92%,这相当于巨大的能源消耗水平。由于这种能源消耗具有相关的环境成本,网络参与者有道德义务确保这种成本不会高于必要的水平。目前,降低这种成本最直接的方法是降低区块奖励,以限制 ETH 挖矿的吸引力。从安全的角度来看,算力未经控制的增长也是适得其反的。降低奖励还可以降低在以太坊接近权益证明时,矿工驱动的链分裂的可能性。
规范
移除难度调整的指数分量
为了 calc_difficulty
的目的,只需移除指数难度调整分量 epsilon
,即 int(2**((block.number // 100000) - 2))
。
调整区块、叔块和侄块奖励
为了确保恒定的以太币发行量,将区块奖励调整为 new_block_reward
,其中
new_block_reward = 2_000_000_000_000_000_000 if block.number >= CNSTNTNPL_FORK_BLKNUM else block.reward
(2E18 wei,或 2,000,000,000,000,000,000 wei,或 2 ETH)。
类似地,如果一个叔块包含在 block.number >= CNSTNTNPL_FORK_BLKNUM
的区块中,使得 block.number - uncle.number = k
,则叔块奖励为
new_uncle_reward = (8 - k) * new_block_reward / 8
这是君士坦丁堡之前的现有叔块奖励公式,只需使用 new_block_reward
进行调整。
对于 block.number >= CNSTNTNPL_FORK_BLKNUM
,侄块奖励为
new_nephew_reward = new_block_reward / 32
这是君士坦丁堡之前的现有侄块奖励公式,只需使用 new_block_reward
进行调整。
理由
这将完全移除难度调整算法中的难度炸弹,而无需再次延迟难度炸弹,因此可以防止 2019 年初的网络延迟。
本 EIP-1276 直接反对 EIP-1234 的意图,也应在讨论中考虑。
向后兼容性
本 EIP 不向前兼容,并在难度计算以及区块、叔块和侄块奖励结构中引入了向后不兼容性。因此,它应包含在特定区块号的计划硬分叉中。建议将此 EIP 包含在 Metropolis 的第二次硬分叉 Constantinople 中。
测试用例
一旦开发者接受规范或客户端实现规范,就应创建测试用例。
实现
一旦开发者接受规范或客户端实现规范,就应创建实现。
版权
通过 CC0 放弃版权及相关权利。
Citation
Please cite this document as:
EOS Classic (@eosclassicteam), "EIP-1276: 在君士坦丁堡升级中移除难度炸弹并调整区块奖励 [DRAFT]," Ethereum Improvement Proposals, no. 1276, July 2018. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-1276.