我试图了解 Merkle 树在 SPV 和区块链技术中的许多其他场景中是如何工作的,但我无法理解这个问题:在验证交易时如何生成 Merkle 路径。
在下图中,假设我想验证事务2 ,我知道需要3、01、4567和根的哈希值,但是,我想知道这个默克尔路径首先是如何生成的。
当事务2被提供给服务器/节点时,服务器/节点如何知道返回哪个路径来验证2?如果服务器已经知道这条路径,为什么服务器不验证它,为什么还要返回这条路径?
谢谢,
(来源:codeproject.com)
我试图了解 Merkle 树在 SPV 和区块链技术中的许多其他场景中是如何工作的,但我无法理解这个问题:在验证交易时如何生成 Merkle 路径。
在下图中,假设我想验证事务2 ,我知道需要3、01、4567和根的哈希值,但是,我想知道这个默克尔路径首先是如何生成的。
当事务2被提供给服务器/节点时,服务器/节点如何知道返回哪个路径来验证2?如果服务器已经知道这条路径,为什么服务器不验证它,为什么还要返回这条路径?
谢谢,
(来源:codeproject.com)
令我困惑的部分是在上图中,1,2,...,8 用于表示交易,但是这种过度简化的表示让我认为交易只有一个组件,因此排序和验证可以在一个组件中进行动作,即被排序正在被验证。
事实上,下面的两张图显示了一条交易数据的详细信息,其中 txid 作为索引,如上面的 1, 2,..., 8,交易中的信息远不止于此一个 txid。
在 Merkle 树中,检查交易 ID(txid)以将传入交易放置在 Merkle 树底部的正确位置,并将 Merkle 路径返回给 SPV 以检查内容。
服务器返回 Merkle 路径比检查事务以减少工作量更容易。因此,整个过程顺利进行。