二、共识算法
1、工作量证明(Proof of Work,PoW)
(1)概念:工作量证明算法是应用SHA-256算法——因输入不同而输出不同的特性,不断地计算区块头的SHA-256哈希值,然后再不断地修改Nonce值,直到这个哈希值远小于目标难度值。
(2)过程:
比特币PoW的过程,可以简单理解成就是将不同的nonce值作为输入,尝试进行SHA256哈希运算,找出满足给定数量前导0的哈希值的过程。而要求的前导0的个数越多,代表难度越大。
①生成铸币交易,并与其他所有准备打包进区块的交易组成交易列表,通过Merkle树算法生成Merkle根哈希。
②把Merkle根哈希及其他相关字段组装成区块头,将区块头的80字节数据作为工作量证明的输入。
③不停地变更区块头中的随机数,即nonce的数值,并对每次变更后的区块头做双重SHA256运算(即SHA256,将结果值与当前网络的目标值做对比,如果小于目标值,则解题成功,工作量证明完成)。