当前位置:首页 > 知识 >

比特币挖矿难度调整原理与方法

比特币挖矿难度是衡量挖矿困难程度的度量指标。难度越大,挖出区块就越困难。挖矿难度和目标值成反比,难度越高,目标值越小。比特币系统通过调整区块头中的难度目标来控制挖出区块所需的平均时间。

难度目标是一个长度为256比特的字符串,约有2^256种可能的取值。调整难度目标,就是调整目标值在整个输出空间的占比。

举个例子来说明,挖矿就像射击一样,所有射出去的子弹都会落在一个很大的靶子上。难度目标就是在这个大靶子上圈出一个范围,这个范围越小,被射中的难度就越高。调节难度目标,就是调节这个圈在整个靶子上的占比。

挖矿算力增大,单位时间射击的次数就越多,目标范围被射中所需的时间就越短。相反,挖矿算力减小,目标范围被击中所需的时间就越长。比特币系统追求的平均出块时间是10分钟,所以需要通过调整难度目标来实现。

比特币系统通过每过2016个区块(大约14天)自动调整一次难度目标。如果上一个调整周期的平均出块时间大于10分钟,说明挖矿难度偏高,需要降低难度目标;反之,如果平均出块时间小于10分钟,说明挖矿难度偏低,需要增大难度目标。

难度目标的可调范围是有限制的,比特币系统规定了上调和下调的范围都是原来的四倍。例如,如果上一个调整周期内的2016个区块由于算力暴涨只用了7天全部挖出来了,通过调整难度目标将其缩小一倍可以维持平均出块时间在10分钟左右。但是,如果算力暴涨,前2016个区块全部挖出只用了1天,那么难度目标最小只能调整为原来的四分之一。

总结一下,比特币的算力会持续波动,通过调整难度目标来使平均出块时间维持在10分钟左右。难度目标和挖矿难度成反比,挖矿难度越大,难度目标越小。每当区块高度为2016的整数倍时,比特币系统会在该区块上自动调整难度目标。如果上一个调整周期内的平均出块时间超过10分钟,则降低挖矿难度,增大难度目标;反之则提高挖矿难度,减小难度目标。难度目标的可调范围都有4倍的限制。

相对于BCH每个区块都调整挖矿难度的方式,比特币每2016个区块调整一次的方式有明显的滞后性。你认为哪种调整方式更合理呢?为什么呢?欢迎在留言区分享你的观点。

猜你喜欢

微信二维码

微信