主页 > imtoken官网下载安全吗 > 比特币架构Merkle树简述
比特币架构Merkle树简述
imtoken官网下载安全吗 2023-01-17 03:08:45
来自比特币维基
默克尔树
Merkle 树是由哈希值组成的二叉树。 比特币中的 Merkle 树使用双 SHA-256比特币系统架构,它是 SHA-256 哈希的 SHA-256 哈希。
当在树中形成一行时(树的根除外),如果该行当前总共有奇数个元素比特币系统架构,则复制末尾的这个双哈希以确保该行具有偶数个哈希。
首先形成树的最下面一行,这里是区块中的交易排序,顺序按照交易的双SHA-256哈希的字节流内存排序(有点啰嗦,大体思路就是按照每笔交易的哈希值)排序)。
那么它上面一行的哈希值个数是当前行哈希值个数的一半。 每个条目都是树中对应的两个哈希值的 64 字节串联的双 SHA-256。
此过程递归重复,直到我们到达由单个双哈希组成的行。 这是树的 Merkle 根。
例如,想象一个包含三个事务 a、b 和 c 的块。 默克尔树是:
dhash(a) = sha256(sha256(a))//双重哈希
//底部的行
d1 = dhash(a)
d2 = dhash(b)
d3 = dhash(c)
d4 = dhash(c) # a, b, c 是 3. 这是个奇数,所以再取一遍c的双哈希
//倒数第二行
d5 = dhash(d1 concat d2)
d6 = dhash(d3 concat d4)
//树根
d7 = dhash(d5 concat d6)
d7 是该区块中 3 笔交易的 Merkle 根。
注意:区块浏览器中显示的 Merkle 树中的哈希是小端(符号)。 对于某些实现和计算,这些字节需要在散列之前或之后进行反向操作。
附上地址:在线计算哈希