比特币难度调整是什么意思?比特币难度调整算法是怎样的?

网友贡献9个月前更新 领域OK
18 0 0

比特难度调整什么意思

比特币挖矿难度(Difficulty),是对挖矿困难程度的度量,挖矿难度越大,挖出区块就越困难。目标值(Target)与挖矿难度成反比。难度越高,目标值越小。而难度目标是目标值通过转化得到,是一个只有 4 个字节的字段(为了便于理解,本文将难度目标等同目标值处理)。比特币系统正是通过调整区块头中难度目标来控制挖出区块所需平均时间的。

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

比特币难度调整是什么意思?比特币难度调整算法是怎样的?

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

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

比特币难度调整算法

比特币平均出块时间10分钟,这个10分钟,就是通过 “挖矿难度调整算法(Mining difficulty adjust algorithm)” 来调节的。

比特币的系统,并不知道目前有多少矿工(算力)在挖矿,只能通过挖出块的速度来推测有多少矿工在挖矿。如果出块比预计快了(一段时间内,平均出块时间小于10分钟),那就说明算力多了,要增加挖矿难度,降低矿工的出块速度。

随着比特币的发展,也出现了大量分叉比特币代码的竞争币,不同币的挖矿收益有高有低,矿工并不会固定挖某一个币,而是会在所有币中选择收益最高的,不断切换着挖(跳矿),乃至出现了专门以跳矿挖为盈利方式的矿池——机枪池。莱比特矿池就是当时发展起来的著名机枪池。

这些币一开始都直接继承了比特币的 “挖矿难度调整算法”。然后,问题就出来了:中本聪在写 “挖矿难度调整算法” 时,并没有考虑到多个币在同一算法中并存,然后矿工在不同币之间跳矿的情况。比特币难度调整周期是每2016个块(约14天)一次,这个14天太长了。

矿工按照 “挖最赚钱币” 的原则,不断地在低难度周期大量涌入挖矿,在高难度周期撤出挖矿,形成 “算力闪击”。这导致难度调整算法误判算力,再进一步把挖矿难度调到超级低 / 超级高的位置,直到某个高难度周期实在亏损太多,哪怕最迟钝的矿工也撤出不挖,这个币就死掉了。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...