分享 | 以太坊的难度更新算法

以太坊的难度更新算法,是根据以下规则更新的:


diff(genesis) = 2^32

diff(block) = diff.block.parent + floor(diff.block.parent / 1024) *

1 if block.timestamp – block.parent.timestamp < 9 else

-1 if block.timestamp – block.parent.timestamp >= 9


难度更新规则背后的设计目标是:


  • 快速更新:随着以太坊节点的增加或减少,块之间的时间应该重新调整


  • 低波动性:如果哈希力不变,难度不应过度反弹


  • 简单:算法实现起来比较简单


  • 低内存:算法不应该依赖于多个块,并且应该尽可能少地包含“内存变量”。假设最后十个块,加上放置在最后十个块的块头中的所有存储器变量都可用于算法使用


  • 不可利用性:该算法不应该过度鼓励矿工摆脱时间戳,或采矿池反复添加和删除哈希算力,以尽量增加收入


另一个更强大的模拟计算公式位于


https://github.com/ethereum/economic-modeling/blob/master/diffadjust/blkdiff.py(该模拟器使用Bitcoin(比特币)采矿能力,但每天使用的是平均日的平均水平,它一度模拟了一天内95%的崩溃)。


文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。


© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享