Merkle 树

Merkle 树

原文:https://medium.com/hackernoon/merkle-trees-181cb4bc30b4

The adventitious prop roots of an Indian Banyan Tree.

Merkle 树是区块链技术的基础部分。merkle 树是一种允许对大量数据中的内容进行高效和安全验证的结构。这种结构有助于验证数据的一致性和内容。比特币和以太坊都使用 Merkle 树。

Merkle 树是如何工作的?

Merkle 树通过产生整个事务集的数字指纹来汇总块中的所有事务,从而使用户能够验证块中是否包括事务。

Merkle 树是通过重复散列节点对直到只剩下一个散列(这个散列被称为根散列或 Merkle 根)来创建的。它们是自底向上构造的,由单个事务的散列(称为事务 id)构成。

每个叶节点是事务数据的散列,每个非叶节点是其先前散列的散列。Merkle 树是二进制的,因此需要偶数个叶节点。如果事务的数量是奇数,最后一个散列将被复制一次,以创建偶数个叶节点。

The Merkle Tree of transactions A, B, C & D.

让我们来看一个块中有四个事务的示例:A、B、C 和 D。每个事务都经过哈希处理,哈希存储在每个叶节点中,产生哈希 A、B、C 和 D。然后,连续的叶节点对在父节点中汇总,哈希 A 和哈希 B 产生哈希 AB,哈希 C 和哈希 D 分别产生哈希 CD。这两个散列(散列 AB 和散列 CD)然后被再次散列以产生根散列(Merkle 根)。

这个过程也可以在更大的数据集上进行:可以对连续的块进行哈希运算,直到顶部只有一个节点。散列通常使用 SHA-2 加密散列函数进行,尽管也可以使用其他函数。

Merkle 根汇总相关事务中的所有数据,并存储在块头中。它维护数据的完整性。如果任何事务中的一个细节或事务的顺序发生变化,Merkle Root 也会发生变化。使用 Merkle 树可以快速简单地测试特定交易是否包含在集合中。

The entire dataset doesn’t need to be downloaded to verify the integrity of Transaction 5.

Merkle 树与哈希表的不同之处在于,使用 Merkle 树,一次可以下载一个分支,并且可以立即验证每个分支的完整性,即使树的其余部分还不可用。这是有利的,因为文件可以被分割成非常小的数据块,使得如果原始版本被损坏,只需要再次下载小的数据块。

用途

使用 Merkle 树可以显著减少可信机构为了验证目的而必须维护的数据量。它将数据的验证与数据本身分开。Merkle 树可以位于本地,也可以位于分布式系统上。

Merkle 树有三大好处:

1.它们提供了一种证明数据完整性和有效性的方法

2.它们需要很少的内存或磁盘空间,因为证明在计算上是容易和快速的

3.他们的证明和管理只需要通过网络传输极少量的信息

证明日志完整且一致的能力对于区块链技术和总账概念至关重要。Merkle 树有助于验证日志的较新版本是否包含早期版本的所有内容,以及所有数据是否按时间顺序记录和显示。要证明日志是一致的,需要表明以前的记录没有被添加、更改或篡改,并且日志从未被分支或分叉。

Merkle 树使区块链的矿工和用户受益。当挖掘器从对等体接收事务时,挖掘器可以渐进地计算散列。用户可以单独验证块的各个部分,并且可以使用树的其他分支的散列来检查各个事务。

简化支付验证(SPV)

简化支付验证(SPV)是一种验证特定交易是否包含在一个块中而无需下载整个块的方法。Merkle 树被 SPV 节点广泛使用。

SPV 节点没有来自块中所有事务的数据。他们只下载块头。Merkle 树使区块链上的 SPV 节点能够检查挖掘者是否已经验证了块中的事务,而无需下载块中的所有事务。这种方法目前被一些轻量级的比特币客户端使用。

以太坊

以太坊在每个块中使用三个不同的 Merkle 根:

1.第一个根是块中的事务

2.第二个词根代表州

3.第三个词根是交易收据

以太坊使用一种特殊类型的哈希树,称为“Merkle Patricia 树”(点击此处了解更多信息:

https://github.com/ethereum/wiki/wiki/Patricia-Tree】T4

区块链上不可或缺的工具

Merkle 树对于区块链的矿工和用户来说是强大且不可或缺的工具。它们非常健壮,是 BitTorrent、Git、比特币和以太坊等几个对等网络的核心。

沙恩雷

请关注媒体上的 Lansaar Research ,了解最新的新兴技术和新的商业模式。

[## 沙恩·雷

来自 Shaan Ray 的最新推文(@ShaanRay)。创造新价值和探索新兴技术| ENTJ | #科学…

twitter.com](https://twitter.com/shaanray)


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除