主页 > 最新imtoken官方下载 > 北京大学肖震老师《区块链技术与应用》ETH笔记-8.0 ETH挖矿难度调整

北京大学肖震老师《区块链技术与应用》ETH笔记-8.0 ETH挖矿难度调整

最新imtoken官方下载 2023-05-12 07:25:28

8.0 ETH挖矿难度调整

比特币每 2016 个区块调整一次挖矿难度。 目标是保持大约 10 分钟的平均块生成时间。 在以太坊中,可以调整每个区块的挖矿难度,调整的方式也比较复杂。 此外,还更改了几个版本,包括以太坊的黄皮书和实际代码。 有一些差异。 这部分以我们的代码为准。

8.1 出块难度公式

H:指的是当前块。 Hi:当前区块序号。 D(H):当前区块的难度。

最大括号中的第一部分称为基本部分。 为了保持出块时间在15s左右,后面的espilon是第二部分,也叫难度炸弹,目的是为了以后过度证明权益。

我们先看第一部分,就是根据父块的难度进行调整。 第一部分的D0是线下难度,无论怎么调整,最低难度都不会低于这个难度。

808比特币创始人颜万卫 炮制比特币风险大_比特币难度下调时间_比特币挖矿难度计算

这里的x是调整的强度,是父块的难度除以2048。无论是向上调整还是向下调整,都是按照这个x整数来调整的。

下面的公式与两个因素有关,一个是出块时间,一个是是否有叔块(即当前开采的前一个父块,是否有叔块)。 因为如果当前挖出的区块的前一个区块包含叔块,货币的流通量会增加,所以当前挖出的区块的难度会增加一个等级。 最大括号中的第一部分可以是正数或负数。 如果为负数,则降低难度,一次最多99个单位。 每个单元是父块难度的 1/2048。 因此,一次性减少的难度最多为99/2048。

比特币难度下调时间_808比特币创始人颜万卫 炮制比特币风险大_比特币挖矿难度计算

y:如果有叔块则y=2,如果没有叔块则y=1。 所以 y 必须是常数。 如果后面的部分大于y,则减法为负,降低难度。 反之,如果后一项小于前一项,则减法为正,增加难度。

Hs是当前块的时间戳,P(H)Hs是父块的时间戳。 这两个区块相减就是区块时间的时间间隔。

假设出块时间在1到8秒之间,除以9向下取整,等于0。假设y=1,最后的答案等于1。表示难度要增加一个单位。

假设出块时间在9到17秒之间,除以9向下取整,等于1。假设y=1,最终答案等于0。说明难度不变。

假设出块时间在18到26秒之间,除以9向下取整,等于2。假设y=1比特币难度下调时间,最后的答案等于-1。 表示难度应该降低一个单位。

如果出块时间非常非常长,那么最终一次性降低难度不会大于99个单位。

808比特币创始人颜万卫 炮制比特币风险大_比特币难度下调时间_比特币挖矿难度计算

8.2 难度炸弹

设计之初,以太坊计划逐步从POW(Proof of Work)转向POS(Proof of Equity),而Proof of Equity不需要挖矿,这就带来了一个问题——那些已经投入大量资金的人在挖矿设备中,矿工们会联合起来抵制这种转换吗? 从 POW 到 POS 的过渡需要通过硬分叉来实现,这可能会导致社区分裂,以太坊可能会分裂成两条平行链。 早期的以太坊,区块数量少,难度炸弹计算出来的值也小。 难度调整等级基本由难度调整中的自适应难度调整部分决定。 随着挖出的区块越来越多,难度炸弹的威力开始显现,使得挖矿难度越来越大,从而迫使矿工愿意转投POS。

比特币挖矿难度计算_808比特币创始人颜万卫 炮制比特币风险大_比特币难度下调时间

8.3 难度炸弹调整

因为开发者低估了POS设计的难度,所以很久没有设计出来,但难度炸弹的威力已经开始显现,系统的出块时间也逐渐变长。 原本出块需要15秒,后来变成了30秒,但是矿工还是要继续挖。 最后在EIP中决定回滚难度炸弹中的区块号,所以我们可以看到上图中第二项中的假区块号(fake block number)是当前区块号减去三万,相当于回滚区块数三百万。 这降低了生产区块的难度。 当然,为了保持公平,区块奖励也从 5 ETH 减少到 3 ETH。 下图显示了影响难度炸弹难度的难度调整结果:

img

8.4 以太坊发展的四个阶段

808比特币创始人颜万卫 炮制比特币风险大_比特币难度下调时间_比特币挖矿难度计算

降低难度炸弹也会降低ETH的奖励,因为回调是突然的,不调整奖励对调整前的矿工是不公平的。 本来我很努力,只拿到了5个ETH,突然间难度降低了,别人轻易挖到5个不公平。 与此同时,货币总供应量保持不变。

8.5 具体代码实现

难度计算公式

bigTime:当前区块的时间戳。 bigParentTime:父块的时间戳。

比特币难度下调时间_比特币挖矿难度计算_808比特币创始人颜万卫 炮制比特币风险大

基础部分的计算

808比特币创始人颜万卫 炮制比特币风险大_比特币难度下调时间_比特币挖矿难度计算

难度炸弹计算

为什么要减去 2999999? 如果当前块号正好是300万,那么父块的序号就是2999999,这里判断父块的序号。 如果满足条件比特币难度下调时间,让父块序号减去2999999,则父块序号为0(块号实际从1开始,逻辑上父块序号变为0),则当前区块序号变为1。

808比特币创始人颜万卫 炮制比特币风险大_比特币挖矿难度计算_比特币难度下调时间

8.6 以太坊实际统计数据(截至2018年)

挖矿难度变化曲线的断崖式下降是难度炸弹的调整,下降前的难度增加呈曲线状。

808比特币创始人颜万卫 炮制比特币风险大_比特币难度下调时间_比特币挖矿难度计算

阻塞时间

前期稳定在15秒左右。 2017年中旬5、6月左右,出块时间开始明显增加,最高达到30秒左右。 最终,虽然挖矿难度回到了之前的水平,但出块时间仍然在15秒左右,可见难度增加的同时,算力也增加了。

808比特币创始人颜万卫 炮制比特币风险大_比特币难度下调时间_比特币挖矿难度计算

实际块示例

最长的合法链也被称为以太坊最难的合法链。 总难度最高的合法链。 每个区块的难度反映了挖出这个区块所需的工作量。 总难度最高意味着挖出这条链的总工作量最大。 挖出区块的工作量比较大。

808比特币创始人颜万卫 炮制比特币风险大_比特币挖矿难度计算_比特币难度下调时间