美文网首页区块链学院
区块链之——Markle树

区块链之——Markle树

作者: Share猿 | 来源:发表于2018-02-23 15:34 被阅读27次

所谓的Markle树,说的直白一点就是哈希值按一定规则组成的一颗树,不同于hash list的是,markle树方便校验而且是区域性校验。(作者:Share猿

一、什么是 Merkle Tree?

  Merkle Tree,是一种树(数据结构中所说的树),网上大都称为Merkle Hash Tree,这是因为 它所构造的Merkle Tree的所有节点都是Hash值。Merkle Tree具有以下特点:

  1. 它是一种树,可以是二叉树,也可以多叉树,无论是几叉树,它都具有树结构的所有特点;
  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计算而得到.

Markle树
二、 Merkle Tree的应用

  目前, 在计算机领域,Merkle Tree大多用来进行比对以及验证处理。比特币钱包服务用 Merkle Tree 的机制来作”百分百准备金证明“ 。在处理比对或验证的应用场景中时,特别是在分布式环境下进行比对或验证时,Merkle Tree会大大减少数据的传输量以及计算的复杂度。例如,就拿图一举例,假如是 15,16.......30是一个个数据块的hash值,我把这些数据从A传输到B,数据传输到B后,我想验证下传输到B上的数据的有效性型(验证数据是否在传输过程中发生变化),只需要验证A 和 B上所构造的Merkle
Tree的root节点值是否一致即可,如果一致,表示数据是有效的,传输过程中没有发生改变。假如在传输过程中,15对应的数据被人篡改,通过Merkle Tree很容易定位找到(因为此时,节点0,1,3,7,15对应的hash值都发生了变化),定位的时间复杂度为O(log(n))

三、Merkle Tree的优点

  相对于 Hash List,Merkle Tree 的明显的一个好处是可以单独拿出一个分支来(作为一个小树)对部分数据进行校验,这个很多使用场合就带来了哈希列表所不能比拟的方便和高效。

  小猿有一个梦想,可以把区块链通过直白的语言讲给每一个人听。从一篇博文开始!从一段视频开始!从一本书开始!如果您想让您的团队了解区块链!让您的公司了解区块链!让您的学生了解区块链!可以私信小猿或者加小猿微信预约小猿,带你们走进区块链的世界!如果是西安的朋友,小猿可以在业余时间到贵公司为大家讲解!只赚人气不赚钱!!哈哈!!


扫描以下公众号关注小猿↓↓↓↓↓↓↓↓


更多资讯请在简书、微博、今日头条、掘金、CSDN都可以通过搜索“Share猿”找到小猿哦!!!

相关文章

网友评论

    本文标题:区块链之——Markle树

    本文链接:https://www.haomeiwen.com/subject/kdsxxftx.html