merkle树是什么?

merkle树,merkle是发明人的姓名,因为是树形结构,所以叫merkle树。

其实merkle有另外一个名字Hash tree,它的结构如下。

merkle树是什么?_第1张图片

Hash tree的用途

1.校验文档正确性

从网上下载一个文档如何验证文档是否和原文档相同?

假设文档是DataA+DataB+DataC+DataD

原文档Hash tree树根Hash是hashABCD

在本机重新对下载的文档(DataA+DataB+DataC+DataD)生成Hash树,对比新生成的树根与原文档树根。

 

2.快速定位错误

原文档与本机文档不同,树根hashABCD必然不同,向下递归,如果hashAB不同,必定是A,B数据块有出入。

 

3.快速校验部分数据是否在原始数据中

小明告诉我DataC在文档中,因为原始文档特别大,我电脑磁盘不能存放,我怎么快速验证DataC在不在原始文档中?

我从网上下载DataC->hashC/hashD->hashCD/hashAB->hashABCD数据,校验下载的正确与否以及DataC是不是小明口中的DataC。

比特币轻钱包中的SPV也是应用了这一原理,使得可以再不下载完整区块数据,还可以验证交易的有效性。

你可能感兴趣的:(blockchain)