1

据我了解,默克尔树可用于通过递归地将哈希函数应用于块内容来分离块的实际交易(或其他内容)及其验证过程。

这使得实现简化的支付验证(或块内任何其他数据的验证)成为可能。

链接的定义表明 SVP 是

[...] 验证特定交易是否包含在区块中的方法,而无需下载整个区块。

如果 merkle 树是一种检查特定交易是否是块的一部分的方法,这意味着我们不“信任该块”,因此正在检查搜索交易的哈希是否是树的一部分。如果我们不信任区块(或区块的原始验证者),我们怎么会信任默克尔树,它也可能是伪造的(或者不是?)。

我们是否“只是”依赖于具有值是伪随机的事实并且很难创建具有相同根值但一个不同节点值的假树?

谢谢!

4

1 回答 1

0

了解 Merkle 树
Merkle 树允许我们在分类帐的单个块中复用多个交易。树的每个叶节点都代表一个事务。而所有其他节点都是其子节点的哈希。

默克尔树表示

这样做有什么好处?
交易块只需要存储 Merkle 树的根。SPV 声明的目的是,任何在链上进行交易的客户都可以只存储从根到其交易的哈希路径,而不是存储可能非常大的整个分类帐。

我们不信任区块?
处理完您的交易后,您可以通过跟踪从块中提供的根到作为您的交易的叶节点的路径来验证它是否已添加到分类帐中。因此,您验证以确保您的交易是否已实际处理。

可以伪造吗?
不会。一旦一个区块被主链接受,通常是在比特币中增加大约 5 或 6 个区块,您的交易是不可逆转的。区块链的概念是账本是不可变的。这意味着默克尔树的根也永久存储在账本中,无法修改。现在要跟踪您的交易,您只需存储标头和从根到您的交易的路径。

于 2018-10-20T06:01:36.020 回答