主页 > imtoken testflight下载 > 《区块链技术与应用》-07-BTC-挖矿难度

《区块链技术与应用》-07-BTC-挖矿难度

imtoken testflight下载 2023-01-17 11:46:45

为什么要调整挖矿难度挖矿难度

SHA-256 生成的输出有 256 位,输出空间是 2^256 个可能的值。 调整目标空间的大小简单来说就是让输出值的前几位为0。

挖矿难度与目标阈值成反比,如下图btc挖矿难度对价格影响,其中difficulty_1_target为挖矿难度为1时的目标(0111111...)btc挖矿难度对价格影响,即最小挖矿难度。

难度

btc挖矿_btc挖矿 技术_btc挖矿难度对价格影响

改变挖矿难度的原因

系统的总算力得到加强,如果出块难度不变,出块时间就会缩短,无法维持人为选择的10分钟参数。

btc挖矿难度对价格影响_btc挖矿 技术_btc挖矿

出块时间短的问题

假设一个区块在 1 秒内产生并传播数十秒,两个节点同时接收一个区块并同时释放一个区块。 这时候就会出现分叉,所以出块时间短,分叉多就成为常态。 太多的分叉不利于系统达成共识,危及系统的安全。 比特币系统假定大部分计算能力掌握在诚实节点手中。 系统的总算力越强,安全性越好,因为发动51%攻击需要的算力越多,多次分叉会导致系统故障。 网络中总算力分散,恶意节点集中算力进行分叉攻击。 此时只有不到51%的算力可以回滚。

btc挖矿 技术_btc挖矿_btc挖矿难度对价格影响

以太坊的出块速度是比特币的40倍,即15s。 因此,建立了一个新的共识协议来跨ghost。 这时候分叉产生的孤儿块不能简单丢弃,但也有叔叔奖励。

如何调整挖矿难度

btc挖矿 技术_btc挖矿难度对价格影响_btc挖矿

比特币协议规定目标阈值每2016个区块调整一次,大约为两周(2016 * 10min / 60min * 24h = 14天)。 调整公式如下图所示

在这里插入图片描述

btc挖矿难度对价格影响_btc挖矿 技术_btc挖矿

actual time --- time spent mining the last 2016 blocks
expected time --- 2016 * 10

实际代码中上调和下调限制为4次。