在之前的文章中,我们讲过哈希的概念,今天我们就要用到它了。简单来说,挖矿就是利用算力不断计算哈希值,直到找到一个满足要求的结果。
实际上,挖矿就像是参与一个竞赛。我们都知道,哈希算法会根据输入来计算一个哈希值,只是我们不知道给定的输入会得到什么输出。所以,如果我们想要找到一个满足要求的哈希结果,唯一的方法就是逐个尝试不同的输入数据,即碰运气。
在比特币中,想要挖到一个区块,就需要矿工来进行挖矿。在区块头中,有一个nonce(随机数),同时我们还有一个target(目标值)。有了这两个值,我们就知道要做什么了,那就是随机修改nonce,然后根据区块头中的其他数据来计算一个哈希值。每次修改nonce后,计算出的哈希值也会不同。我们的目标是找到一个小于target的哈希值,而不是找到与target相同的哈希值。举个例子,如果我们的target是100,那么计算出的哈希值只要小于100就可以,比如1、2、56、99等等。
比特币中使用的哈希函数是SHA256,所以说挖矿实际上就是使用计算机不断执行SHA256函数。最开始,大家使用的是CPU进行挖矿,但这很浪费且效率低下。后来又使用了GPU,接下来则是使用了专门用于计算哈希值的芯片。但这种专用芯片需要进行定制,这就超出了我们的讨论范围。
那么,target的值是由谁设置的呢?根据什么进行设置的呢?为什么要这样设置呢?如果你对这些问题感兴趣,即将发布的文章都会一一解答。今天就到这里,更详细的内容请期待。