主页 > imtoken区块链钱包官网 > 自学区块链(六)BTC-挖矿难度

自学区块链(六)BTC-挖矿难度

imtoken区块链钱包官网 2023-01-17 08:43:34

我们来看看挖矿的计算公式

H(区块头)

\leq

target,这个target就是目标阈值

BTC 使用的哈希算法是 SHA-256。它生成的哈希值是 256 位,所以有 2^256 个值。这是他的输出空间。为了增加挖矿难度,调整目标值在这个输出空间的比例。

挖矿难度与目标阈值成反比。当计算能力强时,调整难度,使目标阈值更小。

为什么要调整难度

在不调整难度的情况下,随着矿工数量的增加和算力的增加,挖一个区块的时间会变短,从10分钟缩短到一分钟甚至几秒,这会带来什么样的问题可能很多人觉得这样不太好,六次确认后交易时间会缩短,交易会更快。事实上btc挖矿算法,出块时间被缩短到非常短的时间,风险非常大。由于网络延迟,出块时间变短,不同节点很可能收到不同的出块信息,导致出现很多分叉节点。矿工将根据他们认为正确的区块继续挖矿。在这种情况下,恶意节点更容易发起分叉攻击,因为诚实节点的计算能力是分散的。

不需要51%的算力才能成功,所以缩短出块时间不利于BTC系统的稳定性。虽然 10 分钟可能不是最佳时间,但它是合理的。

以下是算力增长曲线

以下是挖矿难度曲线

以下是平均挖矿时间

平均10分钟

如何调整挖矿时间

我们看一下难度公式:挖矿难度每2016个区块调整一次,平均每两周调整10分钟。

previous_difficulty 是最后的挖矿难度,分母是最近 2016 个区块所花费的时间

每个节点的挖矿是独立的btc挖矿算法,BTC协议也是开源的。会不会有矿工不修改挖矿难度?这种可能性是存在的,但不影响结果,因为广播到其他节点需要独立验证块头的哈希值。这个头部有一个难度压缩代码,修改难度的结果不会被诚实节点识别。 .