主页 > imtoken最新官网客服 > 比特币区块头中的 Merkle 根生成

比特币区块头中的 Merkle 根生成

imtoken最新官网客服 2023-08-19 05:11:42

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

哈比特币区块链_比特币区块头_比特币创世纪区块

(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())计算。 如果第二行的哈希值超过2个,重复上一步。 当只剩下2个哈希值时,再次拼接,最后进行SHA256(SHA256())计算,得到Merkle树的根哈希值。

哈比特币区块链_比特币区块头_比特币创世纪区块

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