主页 > 以太坊imtoken > 比特币区块头中的默克尔根生成

比特币区块头中的默克尔根生成

以太坊imtoken 2023-01-17 13:16:21

在比特币区块链中,每个区块都有一棵默克尔树,而区块头中的默克尔根(也称为默克尔树的根哈希值)是块体中所有交易的哈希值生成的:

(1)如果一个区块只有一个 CoinBase 交易(如创世块),则 CoinBase 交易的哈希值 Hash_Tx0 作为 Merkle 树的根哈希值。

(2)如果一个区块有两笔交易:CoinBase交易和另一笔交易,则将CoinBase交易的哈希值Hash_Tx0和其他交易的哈希值Hash_Tx1按顺序拼接在一起,然后SHA256 (SHA256 (Hash_Tx0 | Hash_Tx1)) 计算得到 Merkle 树的根哈希。

(3)如果一个区块有3个以上的交易交易区块哈希值如何生成,交易哈希是有序和配对的。CoinBase交易的Hash_Tx0排在第一位交易区块哈希值如何生成,每一对拼接在一起,然后是SHA256(SHA256( HashTxi | Hash_Txj)) 计算形成第二行哈希,如果有奇数个交易哈希值,则复制最后一个交易哈希值形成一对,然后计算SHA256(SHA256())。如果第二行的hash值超过2个,重复上一步的操作,直到只剩下2个hash值得到时,再次拼接,最后SHA256(SHA256() ) 计算得到默克尔树的根哈希值。

注意:CoinBase 交易是区块的第一笔交易,由矿工创建,也称为造币交易(新挖出的比特币的交易)。