什么是比特币挖矿?我们先来了解一下,比特币区块的构造。
比特币区块主要由两部分组成:区块头和区块体。区块体用来装载该区块打包的所有交易,一个装载满交易信息区块,其大小一般不超过1M。
区块头里包含的信息有版本、父区块头哈希值(也就是前一个区块)、该区块中默克尔树根的哈希值、时间戳、难度目标、随机数(Nonce)6个字段。区块头的大小是固定的,只有80字节,12500个区块头容量大小也只有1M。
6个字段中,除了随机数需要不断试错寻找,其他的5个字段都是很容易获得的。
1、版本字段:是用来跟踪软件升级的版本号,可自动从软件信息得到;
2、父区块头的哈希值:父区块被挖出后,其区块头哈希值就确定了,也很容易得到;
3、该区块中默克尔树根的哈希值:当一个区块打包的交易确定了,这个字段也就确定,So Easy;
4、时间戳,是指该区块产生的近似时间,也是确定;
5、难度目标:该区块工作量证明算法的难度目标,系统给出的,同样是确定的;
在6个字段中,其中5个很容易得到,只有第6个字段——随机数,需要矿工不断试错寻找。直到找出合适的随机数,也就是对区块头里的6个字段整体进行哈希运算,得到的值小于等于难度目标值,才算挖出新的区块,得到相应的比特币奖励。
什么是合适的随机数呢?对区块头里的6个字段取哈希值,如果这个值小于或等于系统给定的难度目标值,那么就算是找到了合适随机数,就能挖出新区块,得到比特币奖励。这就是比特币挖矿的过程。
,