Merkle 树路径是如何生成的?
Posted
技术标签:
【中文标题】Merkle 树路径是如何生成的?【英文标题】:How is a Merkle tree path generated? 【发布时间】:2018-08-07 07:06:48 【问题描述】:我试图了解 Merkle 树在 SPV 和区块链技术中的许多其他场景中是如何工作的,但我无法理解这个问题:在验证交易时如何生成 Merkle 路径。
在下图中,假设我要验证交易2,我了解3、01、4567 和根是必需的,但是,我想知道这个默克尔路径是如何生成的。
当事务2被交给服务器/节点时,服务器/节点如何知道返回哪个路径来验证2?如果服务器已经知道这个路径,为什么服务器不验证它,为什么还要返回这个路径?
谢谢,
(来源:codeproject.com)
【问题讨论】:
我想我得到了答案。底部的交易按 txid 排序,计算整个交易区块的哈希值。现在可以关闭了。 回答你自己的问题,让其他人看到你在这里学到了什么。 @AryanFirouzyan 当然。 【参考方案1】:上图中令我困惑的部分是,1,2,...,8 用于表示交易,但是这种过度简化的表示让我认为交易只有一个组件,因此可以排序和验证发生在一个动作中,即被排序正在被验证。
事实上,下面的两张图显示了一条交易数据的详细信息,其中 txid 作为索引,如上面的 1、2、...、8,还有更多交易而不是单个 txid。
在 Merkle 树中,检查交易 ID (txid) 以将传入交易放置在 Merkle 树底部的正确位置,并将 Merkle 路径返回给 SPV 以检查内容。
服务器返回 Merkle 路径比检查交易更容易减少工作量。因此,整个过程顺利进行。
【讨论】:
以上是关于Merkle 树路径是如何生成的?的主要内容,如果未能解决你的问题,请参考以下文章