Blockchain教程

区块链Merkle树

Merkle树是区块链技术的基本组成部分。它是一种数学上的数据结构,由不同数据块的哈希组成,可作为一个块中所有事务的汇总。它还允许对大量数据中的内容进行有效且安全的验证。它还有助于验证数据的一致性和内容。比特币和以太坊都使用Merkle Trees结构。 Merkle Tree也被称为 Hash Tree 。
Merkle Tree的概念以 Ralph Merkle 命名,该专利在 1979年获得了专利。 。从根本上讲,它是一个数据结构树,其中每个叶子节点标记有数据块的哈希,而非叶子节点标记有标签的密码哈希其子节点。叶节点是树中的最低节点。

默克尔树如何工作?

默克尔树通过产生数字信号将所有交易存储在一个块中整个交易记录的指纹。它使用户可以验证交易是否可以包含在一个块中。
通过重复计算节点的哈希对直到只有一个哈希来创建梅克尔树。此哈希称为Merkle Root或Root Hash。默克尔树是以自下而上的方式构造的。
每个叶节点都是事务数据的哈希,非叶节点是其以前的哈希值的哈希。 Merkle树位于二叉树中,因此它需要偶数个叶节点。如果交易数量为奇数,则最后一次哈希将重复一次,以创建偶数个叶节点。
Blockchain Merkle Tree
上面的示例是Merkle树的最常见和最简单的形式,即 Binary Merkle Tree 。一个区块中有四个交易记录: TX1 , TX2 , TX3 和 TX4 。在这里,您可以看到最上面的哈希是整个树的哈希,称为 Root Hash 或 Merkle Root 。重复对每个哈希进行哈希处理,并将其存储在每个叶节点中,从而得到哈希0、1、2和3、然后,通过哈希 Hash0 和 Hash1 ,生成 Hash01 ,并分别对 Hash2 和 Hash3 进行哈希处理,从而生成 Hash23 。然后再次对两个哈希值( Hash01 和 Hash23 )进行哈希处理以生成Root Hash或Merkle Root。
Merkle Root存储在块头。区块头是比特币区块的一部分,在挖掘过程中会得到哈希值。它包含Merkle树中当前块中最后一个块的哈希,一个Nonce和所有事务的Root Hash。因此,在块标题中使用Merkle根会使交易变得防篡改。由于此"根哈希"包含该块中所有事务的哈希,因此这些事务可能会节省磁盘空间。
Blockchain Merkle Tree
Merkle树维护数据的完整性。如果有任何单个交易细节或交易顺序的更改,那么这些更改将反映在该交易的哈希中。此更改会将Merkle树级联到Merkle根,从而更改Merkle根的值,从而使该块无效。因此,每个人都可以看到Merkle树可以快速,简单地测试是否包含特定交易。
Merkle树具有三个好处:
它提供了一种维护数据完整性和有效性的方法。 它有助于节省内存或磁盘空间作为证明,并且计算简便,快速。 他们的证明和管理要求在网络上传输少量信息。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4