Nic*_*lin 5 algorithm data-structures hashtree
与哈希表相比,使用Merkle 树有什么优点?哈希表是2层结构,Merkle树是log n层结构。两者都可用于验证其中一个节点是否已更改。哈希列表将更快地完成此任务。那么为什么要使用默克尔树呢?
但哈希列表并不能更快地实现这一点。假设从列表中获取哈希树或项目的成本很高:您必须从可能不受信任的来源下载它们。连接速度和验证成本都使得一次性获取整个数据集变得困难。
相反,如果我从我信任的人那里获取树的顶部节点,那么我可以从不受信任的来源获取两个子树,并且仍然验证真实性。依此类推,递归。
同样,有了哈希树,我可以从多个不受信任的来源获取数据块,并验证最终程序集的子集是否真实,而无需下载整个数据。
另一种方法是下载一个 800MB 的文件,对其进行哈希处理,发现它有问题,然后必须再次下载整个文件。