比特币的共识实现主要是挖矿。熟悉区块链或比特币的同学肯定不陌生。今天,我们来谈谈比特币中的挖矿是什么。
我们在上一篇文章中讨论了什么是hash,所以我们今天使用它。简单说一下挖掘:就是利用计算能力不断计算哈希值,直到计算结果符合要求。
没错,所谓挖矿就是计算能力的比拼。我们知道哈希算法会根据输入结果计算出一个哈希结果,但是我们不知道对于一个输入会输出什么数据。所以我们要想通过哈希算法计算出一个符合我们要求的结果,只有一个办法,就是枚举,也就是碰运气。
在比特币中,如果你想做一个区块,你需要矿工来挖。在块头中,有一个nonce,我们也有一个目标。有了这两个,我们就知道该怎么做了,就是随机修改nonce,然后根据块头中的其他数据计算一个hash。每个nonce都不一样,计算出来的哈希结果也不一样。而且我们也有我们的目标,就是target。挖掘不是找和target一样的hash结果,而是找一个比这个target小的结果。比如我们的目标是100,那么只要我们计算出来的哈希结果小于100就ok,1,2,56,99都ok。
比特币中的哈希计算方法使用的是sha256,所以说白了挖矿就是用一台计算机不断执行sha256函数。一开始我们用CPU挖矿,浪费大,效率低。后来我们用了GPU,然后我们找了更专业的芯片来计算,专门用来计算哈希结果。但是这种专精是需要定制的,这里就不说了,这是超越类的。=
那么谁来设定目标值呢?根据什么设定?这样设置的原因是什么?诸如此类,如果你有兴趣,下面的文章会一一和你聊。今天就到这里,敬请关注更多细节。