正在学习区块链,如果我哪里有错误希望大家指出,如果有任何想法也欢迎留言。这些笔记本身是在typora上写的,如果有显示不正确的敬请谅解。笔记本身也是给我自己写的,所以如果有侵权的请通知我,我立即删除。
7.挖矿难度调整
7.1 挖矿难度公式
是区块序号,具体什么意思我也不清楚,难道创世区块的,其它的都是otherwise?
D(H)是本区块的难度,下面那个分为两部分,前者是max的成为基础部分,为了维持出块时间在15s左右,ε是难度炸弹,为了兼容后续的权益证明。是父区块的挖矿难度。
7.2 挖矿难度调整公式
x是父区块挖矿难度的2048分之一,是难度调整的单位。
y是父区块的叔父区块个数加一。如果父区块没有叔父区块,那y就等于1。为啥出块时间要跟父区块的叔父区块个数有关呢?因为出块时间的修改一个原因是保证交易速度,还有一个就是有限时间内发行的以太币数量。前者可以通过闪电网络解决,后者在以太坊中就是通过调整出块时间实现的。
x一定是正数,如果max中y的减数大于y,说明是负数,出块难度要下调,反之初会难度要上调。
是本区块的时间戳,是父区块的时间戳(我也不知道为啥长得和父区块的挖矿难度很像),以秒为单位。差就是出块间隔。
-99的目的是防止出现黑天鹅事件,减少最小的不能少于-99。
假设没有叔父区块,即y=1。如果出块间隔在[1,8],除以9后等于0,即挖矿难度要加一;如果出块间隔在[9,17], 等于0,挖矿难度不需要改变;如果间隔在[18,26],挖矿难度要增加一。
7.3 难度炸弹
在以太坊挖矿算法出现的时候就打算把工作量证明变成权益证明,可是当时还没研发出来,还怕到时候矿工们不干就打算加上这个ε。因为如果矿工们发现自己的挖矿设备白瞎了,他们就有可能联合起来攻击以太坊,那样就会出现硬分叉,这不是以太坊所希望看到的,所以加上了这个指数上升的参数,到了若干代参数后,矿工们就是不想同意也没办法,因为后续这个值超级高,挖矿已经变成了几乎不可能。可是事实是以太坊的兄弟们目前还没研发出来,可是挖矿的指数难度已经开始了,所以以太坊就把区块数量减去300万计算ε,可以临时性解决这个问题。
下图就能看出在45的时候减了那300万,挖矿难度瞬间下来了。
来源:CSDN
作者:蓝莓侠
链接:https://blog.csdn.net/qigezuishuaide/article/details/104245855