Merkle tree与Hash list区别在哪?

为什么用Merkle tree而不用Hash list?

既然 Hash list已经可以通过根哈希验证数据完整性,为何还要用Merkle tree代替?

以上两种数据结构都有验证数据完整性的功能,都是采用比较根哈希是否一致来检验从不可信源下载数据的正确性。若数据一直正确,看不出Merkle tree的优势之处。关键在于当出现错误时,若划分的数据块过于庞大,Merkle tree利用二叉树的查找优势(相当于二分查找)可在O(log(n))时间内定位错误块,而Hash list时间复杂度O(n)(相当于顺序查找)。所以Merkle tree并没有大家想象的那样复杂,真正厉害的是Hash list采用哈希根验证数据块正确与否的这个思想,Merkle tree只是借鉴了从顺序查找到二分查找的改进思路罢了。

猜你喜欢

转载自blog.csdn.net/weixin_43756600/article/details/107202019