EIP-2515: 实施难度冻结
Authors | James Hancock (@madeoftin) |
---|---|
Created | 2020-02-10 |
Discussion Link | https://ethereum-magicians.org/t/eip-2515-replace-the-difficulty-bomb-with-a-difficulty-freeze/3995 |
简单总结
难度冻结是难度炸弹的一种替代方案,它在协议的难度调整算法中实现。难度冻结从预先确定的某个区块高度开始,冻结难度并在该区块之后永远增加 1%。这不会停止链,但它会激励开发人员定期升级,并要求任何链分裂解决难度冻结问题。
摘要
难度冻结是一种易于预测和建模的机制,核心开发人员和客户端维护人员更容易感受到错过它的压力。客户端维护人员也被定位为最能够响应即将到来的难度冻结的群体。这种与可预测性相结合,更有可能导致及时扩散炸弹。
动机
当前难度炸弹对区块时间目标机制的影响很难建模,它既在未预期时出现(穆尔冰川),又在矿工不是目标时对矿工产生负面影响(由于技术困难而延迟分叉)。由于区块时间增加,矿工受到区块奖励减少的影响。用户受到影响是因为链的可用性受到区块时间增加的影响。这两个群体都无法单独解决难度炸弹问题。在难度冻结的情况下,错过它的后果更容易被客户端维护人员感受到,而且它更具可预测性,因此很容易知道何时进行更改。
规范
添加变量 DIFFICULTY_FREEZE_HEIGHT
难度冻结的逻辑定义如下:
if (BLOCK_HEIGHT <= DIFFICULTY_FREEZE_HEIGHT):
block_diff = parent_diff + parent_diff // 2048 * max(
1 - (block_timestamp - parent_timestamp) // 10, -99)
else:
block_diff = parent_diff + parent_diff * 0.01
可选实施
添加变量 DIFFICULTY_FREEZE_DIFFERENCE
并使用 LAST_FORK_HEIGHT
来计算难度冻结何时发生。
例如,我们可以设置 DFD = 1,800,000 blocks
或大约 9 个月。然后难度计算将是。
if (BLOCK_HEIGHT <= LAST_FORK_HEIGHT + DIFFICULTY_FREEZE_DIFFERENCE) :
block_diff = parent_diff + parent_diff // 2048 * max(
1 - (block_timestamp - parent_timestamp) // 10, -99)
else:
block_diff = parent_diff + parent_diff * 0.01
这种方法还有一个额外的好处,那就是更新难度冻结更容易,因为它会在每次升级时自动发生。缺点是检查的逻辑更复杂,需要进一步的分析和测试用例,以确保不会出现共识错误。
理由
区块高度在系统中非常容易预测和评估。这消除了难度炸弹对区块时间的影响,简化了区块时间目标机制。在反馈表明该机制的博弈论没有可靠地导致之后,增加了难度的增加。
https://twitter.com/quentinc137/status/1227110578235330562
向后兼容性
无向后不兼容性
测试用例
待定
实施
待定
安全注意事项
错过难度冻结的影响与错过难度炸弹的影响不同。在难度冻结时,协议不再能够适应网络上哈希算力的变化。这可能导致以下三种情况之一。
- 哈希率增加: 在难度增加到网络无法添加更多矿工之前,网络上的区块时间会在短时间内增加。
- 哈希率降低: 区块时间将会增加。
- 哈希率保持不变: 区块时间持续增加。
客户端有动力使其客户端完全同步到网络,因此非常有动力防止这种情况发生。同时,延迟难度冻结最容易由客户端团队实施。因此,受负面影响最大的群体也是最能有效解决该问题的群体。
经济考虑因素
在当前的难度炸弹下,随着冰河时代的影响,ETH 的发行量减少。在难度冻结下,发行量很可能在短时间内增加;但是,客户端有动力阻止这种情况并保持客户端有效同步。这意味着它不太可能发生。随着时间的推移,难度增加最终将减少区块时间和发行量。
也很容易预测何时会发生这种变化,并且受影响的利益相关者 (Eth 持有者) 可以通过观察难度冻结何时临近并在 Twitter 上大喊大叫来让客户端开发人员负责。
版权
在 CC0 下放弃版权和相关权利。
Citation
Please cite this document as:
James Hancock (@madeoftin), "EIP-2515: 实施难度冻结 [DRAFT]," Ethereum Improvement Proposals, no. 2515, February 2020. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-2515.