以太坊挖矿难度调整算法怎么运行的?

  • 时间:
  • 浏览:172

  本文解释了自2016年3月14日Homestead发布以来在以太坊(ETH)中使用的难度调整算法。下面将详细探讨如何在以太坊中实现平均15秒的出块时间。

  概述

  在Homestead发布之前,以太坊遇到了区块难度调整的问题:出块时间设置为13秒的中位目标,但平均值却越来越高。

  为什么?

  矿工们发现他们可以挖掘时间戳比前bet365官方一个区块(父块)高出一秒的区块,获得比解决其他区块更高的难度,从而使其解决方案优于其他分支。因此,使用这种求解区块的方法符合矿工的经济利益,即使这意味着平均出块时间会增加。

  为了解决这个问题,社区提出了一种完全不同的难度调整算法作为EIP 2的一部分。

  以太坊改进提案(EIPs)

  以太坊改进提案(EIP)等同于以太坊的征求意见稿(RFC):它们是以太坊生态系统中提议的功能和改进标准。EIP官方网站包含所有EIP及其当前状态。

  EIP 2包含四个不同的部分,每个部分对应以太坊的一个问题。第四部分(此处称为EIP2 / 4)是本文的重点:改变以太坊的难度调整算法。

  新算法:10-20秒的窗口

  block_diff=parent_diff + parent_diff // 2048 * max(1 - (block_timestamp - parent_timestamp)// 10,-99)+ int(2 **((block.number // 100000) - 2))

  注意://运算符指的是简单除法(例如6 // 2==3)

  上面的公式可能看起来很复杂,但逻辑可以分解成如下步骤:

  如果区块在不到10秒内解决,则增加bet365官方难度; 如果区块在20秒内解决,则降低难度; 如果区块在10到20秒之间解决,则什么也不做; 在一段长的时间内实现10到20秒的出块时间,从而实现平均15秒的目标。

  时间窗口本身就在代码中:

  max(1 - (block_timestamp - parent_timestamp)// 10,-99)

  用d代表时间差,则用日常数学的方式写出来就是:max(1 - (d / 10), - 99)。公式中假设d / 10的结果是整数bet365,而不是小数,因此在9秒的情况下,9/10求出的数值为0,而不是0.9。


bet365 bet365官方 bet365

猜你喜欢