繁体   English   中英

默克尔树如何帮助验证区块链中区块的内容

[英]How can merkle trees help validate the content of a block in a blockchain

据我了解,通过将哈希函数递归应用于块内容,可以使用merkle树来分离块的实际事务(或其他内容)及其验证过程。

这使得可以实现简化的付款验证 (或区块中任何其他数据的验证)。

链接的定义指出SVP是

无需下载整个模块即可验证特定交易是否包含在模块中的方法。

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

我们是否只是“依靠”具有伪随机值的事实,而很难创建具有相同根值但节点值不同的假树呢?

谢谢!

了解默克尔树
默克尔树使我们能够在一个分类账中对多个交易进行多路复用。 树的每个叶节点都代表一个事务。 而所有其他节点都是其子节点的哈希值。

默克尔树表示

这有什么好处?
事务块将仅需要存储Merkle树的根。 SPV声明的目的是,在链上进行交易的任何客户都可以只存储从根到其交易的哈希路径,而不必存储整个账本,因为账本可能很大。

我们不相信这个障碍吗?
处理完交易后,您可以通过跟踪从块中提供的根到作为交易的叶子节点的路径来验证是否已将其添加到分类帐中。 因此,您进行验证以确保您的交易是否已被实际处理。

可以伪造吗?
不会。一旦主链接受了一个区块(通常是在比特币中再添加约5或6个区块),您的交易就将不可逆转。 区块链的概念是账本是不可变的。 这意味着merkle树的根也永久存储在分类帐中,无法修改。 现在,要跟踪事务,您只需存储标题和从根到事务的路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM