区块链默克尔树

Merkle 树是区块链技术的基本组成部分。它是一种由不同数据块的哈希组成的数学数据结构,作为一个块中所有交易的汇总。它还允许对大量数据中的内容进行高效和安全的验证。它还有助于验证数据的一致性和内容。比特币和以太坊都使用默克尔树结构。默克尔树也称为哈希树

Merkle Tree 的概念以Ralph Merkle 的名字命名,他于1979 年为该想法申请了专利从根本上说,它是一个数据结构树,其中每个叶节点都用数据块的哈希标记,非叶节点则用其子节点的标签的加密哈希标记。叶节点是树中的最低节点。

默克尔树是如何工作的?

Merkle 树通过生成整个交易集的数字指纹将所有交易存储在一个块中。它允许用户验证交易是否可以包含在块中。

Merkle 树是通过重复计算节点的散列对直到只剩下一个散列来创建的。这个散列称为默克尔根,或根散列。Merkle 树以自下而上的方法构建。

每个叶节点都是交易数据的散列,非叶节点是其先前散列的散列。Merkle 树是一棵二叉树,所以它需要偶数个叶子节点。如果有奇数个交易,最后一个哈希将被复制一次以创建偶数个叶节点。

区块链默克尔树

上面的例子是最常见、最简单的默克尔树形式,即二叉默克尔树一个区块中有四个交易:TX1TX2TX3TX4在这里您可以看到,有一个顶部哈希,它是整个树的哈希,称为Root HashMerkle Root每一个都被重复散列,并存储在每个叶节点中,产生 Hash 0、1、2 和 3。然后通过散列Hash0Hash1 将连续的叶节点对汇总在父节点中,从而产生Hash01,并分别散列Hash2Hash3,导致Hash23然后再次对两个散列(Hash01Hash23)进行散列以生成根散列或默克尔根。

Merkle Root 存储在区块头中区块头是比特币区块的一部分,在挖矿过程中获得哈希值。它包含了最后一个区块的哈希值、一个 Nonce 以及当前区块中所有交易的根哈希值在 Merkle 树中。因此,在区块头中拥有 Merkle 根可以使交易防篡改由于这个Root Hash 包含了区块内所有交易的散列值,这些交易可能会节省磁盘空间。

区块链默克尔树

Merkle Tree 维护数据完整性如果交易的任何单个细节或交易的顺序发生变化,那么这些变化就会反映在该交易的哈希中。这种变化会将默克尔树级联到默克尔根,改变默克尔根的值,从而使区块无效。所以每个人都可以看到 Merkle 树允许快速简单地测试特定交易是否包含在集合中。

Merkle 树具有三个好处:

  • 它提供了一种维护数据完整性和有效性的方法。

  • 它有助于节省内存或磁盘空间作为证明,计算简单快捷。

  • 他们的证明和管理需要通过网络传输少量信息。


  • 使用社交账号登录,本站支持
全部评论(0)