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

据了解,任何一个下载并安装运行的完整节点都会从比特币网络中获取区块,并验证区块,以此更新节点的账本。当一个节点通过p2p网络获得一个新区块时,都会执行验证程序,以识别这个区块是不是有效的区块。比特币区块的验证标准如下:
1、验证工作量证明,即验证区块头的哈希值小于当前目标值。
2、验证MerkleRoot是否是由区块体中的交易得到的,即重构区块Merkle树得到的树根,看是否和区块头中的hashMerkleRoot值相等。
3、验证区块大,即看区块大小是否在设定范围之内。(btc是数据区块体不能大于1M,隔离验证区块不能大于3M;BCH是区块不能大于32M;BSV现在是不能大于128M)
4、验证是否只有一个Coinbase交易,即一个区块,矿工只能给自己奖励一次。
5、验证所有的交易,即遍历区块内所有的交易,检查是否是合法的交易。
以上就是比特币节点(BTC、BCH、BSV都一样)标准的验证区块程序,这部分代码叫CheckBlock函数。

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

扫一扫手机访问

发表评论