比特幣區(qū)塊鏈中,每個區(qū)塊都有一個Merkle Tree,區(qū)塊頭中的Merkle Root(也稱為Merkle樹的根哈希值)是由區(qū)塊體中所有交易的哈希值生成的:
(1)如果一個區(qū)塊僅有一個CoinBase交易(例如創(chuàng)世區(qū)塊)绞愚,這個CoinBase交易的哈希值Hash_Tx0就被用作Merkle樹的根哈希值嫉沽。
(2)如果一個區(qū)塊有兩個交易:CoinBase交易和一個其它交易钉迷,那么就將CoinBase交易的哈希值Hash_Tx0和其它交易的哈希值Hash_Tx1,按照順序拼接在一起钠署,然后進行SHA256(SHA256(Hash_Tx0 | Hash_Tx1))計算糠聪,得到Merkle樹的根哈希值。
⌒扯Α(3)如果一個區(qū)塊有3個以上的交易舰蟆,交易哈希值按順序排列并配對。CoinBase交易的Hash_Tx0排在第一位狸棍,每一對拼接在一起身害,然后進行SHA256(SHA256(HashTxi | Hash_Txj))計算,形成第二排哈希排列草戈。如果有奇數(shù)個交易哈希值塌鸯,則最后一個交易哈希值復(fù)制自己組成一對,然后進行SHA256(SHA256())計算猾瘸。如果第二排有超過2個以上的哈希值界赔,則重復(fù)上一步的操作。直到只剩2個哈希值的時候牵触,再拼接淮悼,最后進行SHA256(SHA256())計算,得到Merkle樹的根哈希值揽思。
注:CoinBase交易為區(qū)塊的第一個交易袜腥,由礦工創(chuàng)建,也被稱作:創(chuàng)幣交易(新挖出比特幣的交易)钉汗。