Merkle树路径是如何生成的?

How is a Merkle tree path generated?

我试图了解 Merkle 树如何在 SPV 和区块链技术中的许多其他场景中工作,但无法解决这个问题:在验证交易时如何生成 Merkle 路径。

在下图中,假设我想验证交易 2,我理解 301, 4567 和 root 都需要,但是,我想知道这个默克尔路径一开始是怎么产生的。

当交易 2 被提供给 server/node 时,server/node 如何知道到 return 的哪条路径来验证 2?如果服务器已经知道这条路径,为什么服务器不验证它,为什么还要return这条路径?

谢谢,


(来源:codeproject.com

让我感到困惑的部分是在上图中,1,2,...,8 用于表示交易,但是这种 over-simplified 表示让我认为交易只有一个组成部分,因此排序和验证可以在一个操作中发生,即被排序正在被验证。

其实下面两张图是一笔交易数据的明细,就是txid像上面的1,2,...,8那样作为索引的,有很多一笔交易中的交易比单个 txid 多。

在Merkle树中,检查交易ID(txid),将传入的交易放在Merkle树底部的正确位置,Merkle路径returned到SPV进行检查内容。

服务器 return Merkle 路径比检查每个交易以减少 work-load 更容易。这样,整个过程就搞定了。