风险提示:理性看待区块链,提高风险意识!

比特币节点如何验证一个区块?

1个回答

转身改变角度4星评价

2020-09-18 10:41:24

比特币节点如何验证一个区块?

1、验证工作量证明,即验证区块头的哈希值小于当前目标值。

2、验证MerkleRoot是否是由区块体中的交易得到的,即重构区块Merkle树得到的树根,看是否和区块头中的hashMerkleRoot值相等。

3、验证区块大,即看区块大小是否在设定范围之内。(btc是数据区块体不能大于1M,隔离验证区块不能大于3M;BCH是区块不能大于32M;BSV现在是不能大于128M)

4、验证是否只有一个Coinbase交易,即一个区块,矿工只能给自己奖励一次。

5、验证所有的交易,即遍历区块内所有的交易,检查是否是合法的交易。

以上就是比特币节点(BTC、BCH、BSV都一样)标准的验证区块程序,这部分代码叫CheckBlock函数。