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

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

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


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%的崩溃)。


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

attachments-2018-02-VbOClZC05a7fafcbcc448.jpg



  • 发表于 2018-02-27 10:56
  • 阅读 ( 4094 )
  • 分类:以太坊

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
社区运营-小以

562 篇文章

作家榜 »

  1. 社区运营-小以 562 文章
  2. 社区运营-小链 244 文章
  3. 于中阳Mercina-zy 79 文章
  4. 涂晶 75 文章
  5. 李晓琼 44 文章
  6. 兄弟连区块链培训 42 文章
  7. 吴寿鹤 36 文章
  8. John-smith 25 文章