区块链merkle树

本文概述

  • 默克尔树如何工作?
Merkle树是区块链技术的基本组成部分。它是一种数学数据结构,由不同数据块的哈希组成,可作为一个块中所有事务的摘要。它还允许对大量数据中的内容进行有效且安全的验证。它还有助于验证数据的一致性和内容。比特币和以太坊都使用Merkle Trees结构。 Merkle树也称为哈希树。
Merkle Tree的概念以Ralph Merkle的名字命名,Ralph Merkle在1979年获得了该专利的专利。从根本上讲,它是一种数据结构树,其中每个叶子节点都标记有数据块的哈希,非叶子节点则标记有密码。其子节点标签的哈希值。叶节点是树中的最低节点。
默克尔树如何工作?默克尔树通过产生整个交易集的数字指纹,将所有交易存储在一个块中。它允许用户验证交易是否可以包含在块中。
通过重复计算节点的哈希对来创建Merkle树,直到仅剩一个哈希为止。此哈希称为Merkle Root或Root Hash。 Merkle树以自下而上的方式构建。
每个叶节点都是事务数据的哈希,非叶节点是其先前哈希的哈希。 Merkle树位于二叉树中,因此它需要偶数个叶节点。如果事务数为奇数,则将最后一次哈希重复一次,以创建偶数个叶节点。
区块链merkle树

文章图片
上面的示例是Merkle树(即二进制Merkle树)的最常见和最简单的形式。一个块中有四个事务:TX1,TX2,TX3和TX4。在这里,你可以看到顶部的哈希值是整个树的哈希值,称为“根哈希”或“默克尔根”。重复对每个哈希进行哈希处理,并将其存储在每个叶节点中,从而得到哈希0、1、2和3。然后,通过对哈希Hash0和Hash1进行哈希处理,在父节点中汇总叶节点的连续对,从而分别得到Hash01和Hash01。对Hash2和Hash3进行哈希处理,生成Hash23。然后再次对两个哈希(Hash01和Hash23)进行哈希处理,以生成根哈希或Merkle根。
【区块链merkle树】Merkle Root存储在块标题中。区块头是比特币区块的一部分,在挖掘过程中会散列。它包含Merkle树中当前块中最后一个块的哈希,一个Nonce和所有事务的Root Hash。因此,在块标题中使用Merkle根可以防止事务篡改。由于此“根哈希”包含该块内所有事务的哈希,因此这些事务可能会节省磁盘空间。
区块链merkle树

文章图片
Merkle树可维护数据的完整性。如果有任何单个交易细节或交易顺序的更改,那么这些更改将反映在该交易的哈希中。此更改会将Merkle树级联到Merkle根,从而更改Merkle根的值,从而使该块无效。因此,每个人都可以看到Merkle树允许快速简单地测试特定交易是否包含在集合中。
默克尔树有三个好处:
  • 它提供了一种维护数据完整性和有效性的方法。
  • 作为证明,它有助于节省内存或磁盘空间,并且计算简单,快速。
  • 他们的证明和管理要求跨网络传输少量信息。

    推荐阅读