我们经常会看到或听到挖矿难度这个概念,也清楚挖矿难度会影响到挖矿收益,但它究竟是如何影响到挖矿收益的呢?究竟什么是挖矿难度?以及其是如何在Proof of Work机制中发挥作用的呢?请阅读本文了解什么是挖矿难度。
为了理解什么是难度,您首先需要理解Proof of Work机制的工作原理及其解决的问题,我们已在该文章中进行了解释。
Proof of Work机制问题解决了双花的问题,即解决了个人或实体将一个比特币重复花费两次的恶意企图。要实现双花,必须控制至少51%的网络算力。
为了防止单一个人或实体控制51%的网络算力,Proof of Work机制允许无限数量的矿工(节点)加入到区块链网络中,从而使其去中心化。但是,当许多矿工加入或离开网络,那么会发生什么呢?
让我们做个假设,加入网络中有100个相同的矿工在进行比特币挖矿,每个矿机的算力速度都是10 TH/s或1000 TH/s,在统计学上,这个算力量将可每10分钟算出一个区块,难度为1,您可以这样算出来,是因为比特币网络的区块时间为10分钟。
如果这时有另外一批新的100个矿工加入网络参与挖矿,此时算力总量增加到了2000 TH/s,算出区块的概率翻倍,这将导致区块时间减半,剩下只有5分钟。但这是不对的,因为区块时间应该是10分钟。
如果我们将网络难度值增加到2,则算出区块正确hash值的难度就会增加。因此,区块时间又回到了10分钟左右。
区块链网络自动调整难度。举个例子,比特币的难度是每2016个区块或每2周调整一次。另一方面,以太坊的难度则是在每个区块上调整一次,大约是15秒。
综上所述,挖矿难度通过提高下一个区块的猜测难度来控制区块的平均时间。
让我们看下一下案例:
Time to solve the block: 1.836 sec
在DATA区域中输入NiceHash,选择Difficulty 1,然后按MINE按钮。您的电脑将猜测这个nonce,直到hash输出以4个0开头的值。通过寻找到正确的nonce,应该需要几秒钟的时间来解决问题。
如果您将难度等级修改为2,电脑将继续猜测nonce值,直至输出以6个0开头的hash值,此时解决该数学问题所需要的时间应该就长一些了。
最后,如果您将难度等级修改为3,电脑将继续猜测nonce值,直至输出以6个0开头的hash值,这所需要的时间跟算力都是最多的。
此时,已经很难再去计算有更多0开头的hash输出值了,因此,在这种情况下,在单位时间内猜测出正确答案所需要的时间和算力也就更多了。