区块哈希算法
返回上级
BSV区块链编辑
2022-04-14 17:35
682

比特币使用基于 SHA-256 哈希算法的工作量证明(Proof of Work)函数。该算法需要以下参数:一个服务字符串、一个nonce(随机数)和一个计数器。在比特币中,服务字符串被编码在区块头数据结构中,它包括:版本号字段、前一个区块的哈希值、区块中所有交易的Merkle树的默克尔根哈希值、当前时间,以及工作量证明函数的区块难度目标值。
比特币矿工通常使用两类 nonce 字段:
- 存在于区块头中的 Nonce 字段
- 存在于 Coinbase 交易中的 extraNonce 字段
这两种nonce字段都有一个相对较小(32 位)的计数器参数。哈希函数运算会遍历Nonce 字段的所有值,并将每次计算结果与难度设定值进行比对;然后提升extraNonce 字段的数值(或修改extraNonce数值),再次用哈希函数运算遍历 Nonce 字段的所有值。这里注意,提升 extraNonce 字段的数值后, Coinbase 交易的哈希值发生了变化,此时将需要重新计算Merkle根的哈希值。