什么是 Merkle Tree?下面小编给大家介绍一下,希望你能喜欢!
一、什么是 Merkle Tree?
Merkle Tree,是一种树(数据结构中所说的树),网上大都称为Merkle Hash Tree,这是因为 它所构造的Merkle Tree的所有节点都是Hash值 。Merkle Tree具有以下特点:
1. 它是一种树,可以是二叉树,也可以多叉树,无论是几叉树,它都具有树结构的所有特点;
【什么是 Merkle Tree?Merkle Tree解答!】2. Merkle树的叶子节点上的value,是由你指定的,这主要看你的设计了,如Merkle Hash Tree会将数据的Hash值作为叶子节点的值;
3 非叶子节点的value是根据它下面所有的叶子节点值,然后按照一定的算法计算而得出的 。如Merkle Hash Tree的非叶子节点value的计算方法是将该节点的所有子节点进行组合,然后对组合结果进行hash计算所得出的hash value 。
例如,下图就是一个Merkle Hash Tree形状,如果它是Merkle Hash Tree,则节点7的hash value必须是通过节点15、16上的value计算而得到.
文章插图
二、 Merkle Tree的应用
目前,在计算机领域,Merkle Tree大多用来进行比对以及验证处理 。比特币钱包服务用 Merkle Tree 的机制来作”百分百准备金证明“。在处理比对或验证的应用场景中时,特别是在分布式环境下进行比对或验证时,Merkle Tree会大大减少数据的传输量以及计算的复杂度 。例如,就拿图一举例,假如是 15,16.......30是一个个数据块的hash值,我把这些数据从A传输到B,数据传输到B后,我想验证下传输到B上的数据的有效性型(验证数据是否在传输过程中发生变化),只需要验证A 和 B上所构造的MerkleTree的root节点值是否一致即可,如果一致,表示数据是有效的,传输过程中没有发生改变 。假如在传输过程中,15对应的数据被人篡改,通过Merkle Tree很容易定位找到(因为此时,节点0,1,3,7,15对应的hash值都发生了变化),定位的时间复杂度为O(log(n))
三、Merkle Tree的优点
相对于 Hash List,Merkle Tree 的明显的一个好处是可以单独拿出一个分支来(作为一个小树)对部分数据进行校验,这个很多使用场合就带来了哈希列表所不能比拟的方便和高效 。
推荐阅读
- 玩3a大作最低需要什么显卡 3060ti玩2k高画质够用吗
- 2020年11月有冷空气吗
- 元宵保鲜可以放多久
- 练习气功有哪几个阶段
- 女孩子性格怎么改柔和 女孩子性格如何改柔和
- qq昵称后面有个火焰怎么弄?qq好友互动标识设置方法
- 国家统计局:2月份居民消费价格同比上涨1.0%
- 长白山天池海拔多少米高
- 有哪些适合备孕吃的食物 推荐个备孕女性的食谱有哪些