区块链知识总结——比特币挖矿难度的调整

为什么要调整挖矿难度:

挖矿的过程就是不断尝试找到一个nonce值,使得区块头的哈希值小于等于给定的目标预值。目标预值越小,挖矿的难度越大。调整挖矿的难度就是调整目标空间在整个输出空间中所占的比例。


挖矿难度和目标预值的关系:

挖矿难度和目标预值是成反比的,公式是Difficulty = difficulty_1_target(挖矿难度为1时所对应的目标阈值)/target。挖矿难度最小就是1,这个时候对应的目标预值是个非常大的数。


挖矿难度的调整频率:

比特币网络会每隔2016个区块调整一次挖矿难度,大约是两周一次。

如果一个节点故意不调整比特币代码中的目标(target),那么它的行为可能会导致该节点与网络中的其他节点出现分歧,从而产生分叉(Fork)。

在比特币网络中,节点之间需要达成共识,以确定哪些区块是有效的,哪些是无效的。如果一个节点不遵循比特币协议中的规则,例如不调整目标值,那么它产生的区块可能会被其他节点拒绝,从而导致在网络中出现分叉。


挖矿难度调整的目的:

通过调整挖矿难度,可以保证比特币网络中的区块生成速度大致保持在10分钟/区块的速度。这样可以保证比特币的稀缺性,同时也能够保证网络的安全性(如果出块时间太短分叉就会容易出现,而且可能不止二分叉,分叉过多,对系统达成共识没有好处,会危害系统的安全性)。


挖矿难度调整的具体过程:

每当网络中生成了2016个新的区块,比特币网络就会根据这2016个区块的生成时间来调整下一个2016个区块的挖矿难度。如果这2016个区块的生成时间少于两周,那么挖矿难度就会提高;如果这2016个区块的生成时间多于两周,那么挖矿难度就会降低

target = target * actual time(系统产生2016个区块的实际花费时间)/expected time(产生2016个区块的预计花费时间大约14天)

猜你喜欢

转载自blog.csdn.net/2303_79193185/article/details/137665366