美文网首页
区块链技术| Merkle Tree

区块链技术| Merkle Tree

作者: 沙漠中的猴 | 来源:发表于2018-02-07 13:51 被阅读0次

简介

默克尔树是一种二叉树(类似于松树的树冠形状)。

merkle模型.png

结构

  • D0 ~ D3存储数据的数据块,N0 ~ N3是D0 ~ D3对应的哈希值,统称为叶节点。
  • N4、N5称为中间节点。是两个相邻叶节点的HASH值之和再取哈希。N4 = Hash(N0 + N1) , N5 = (Hash(N2 + N3))
  • ROOT节点也被称作根节点。

原理

假如D0的值被恶意修改,那么会牵扯到N0、N4、ROOT等节点。

如果叶节点(D0~D3)是单数,不是双数怎么办?

merkle.png

如图所示D0 ~ D4存储数据,H1-0 ~H1-4是D0 ~ D4对应的Hash值。
H2-1 = Hash(H1-0 + H1-1),H2-2 = Hash(H1-2 + H1-3)。这时我们发现出现了单数的H1-4,遇到这种情况默认会选择进行本身复制(H1-4-1),然后再进行Hash操作,即H2-3 = Hash(H1-4 + H1-4),上面以此类推,直到产生ROOT节点。

典型应用场景

  • 快速比较大量数据:如果两个根节点相同,则表示所有数据都相同。
  • 快速定位修改:例如上例中,如果 D1 中数据被修改,会影响到 N1,N4 和 Root。因此,沿着 Root --> N4 --> N1,可以快速定位到发生改变的 D1,不需要将所有数据Hash进行遍历。

相关文章

  • 存在与不存在的证明:Merkle Tree 与Sparse Me

    Merkle Tree是区块链技术领域最普遍应用的数据结构之一。这是因为Merkle Tree数据结构可以带来两大...

  • 比特币区块头中的Merkle Root生成

    比特币区块链中,每个区块都有一个Merkle Tree,区块头中的Merkle Root(也称为Merkle树的根...

  • 区块链技术| Merkle Tree

    简介 默克尔树是一种二叉树(类似于松树的树冠形状)。 结构 D0 ~ D3存储数据的数据块,N0 ~ N3是D0 ...

  • 区块链:Merkle Tree

    1.Merkle Tree用途 在区块链中,每一个区块中都有一个Merkle Tree,用来储存交易信息,并对交易...

  • Merkle Tree

    如果对区块链有些基本的了解,那应该经常听到一个词叫merkle tree,那么merkle tree到底是做什么用...

  • 关于区块链的几个小问题

    1. 为什么要有 STATEROOT 在区块链的每个区块中,都有一个Merkle Tree ?,StateRoot...

  • RSA累加器,区块链瘦身神器?

    我们知道,默克尔树结构(Merkle tree)对于区块链项目而言是非常重要的,无论是比特币区块链还是以太坊区块链...

  • Merkle Patricia Trie 学习心得

    以太坊(Ethereum)是目前最被接受的区块链,而默克尔基数树(Merkle Patricia Tree,MPT...

  • 区块链概念:Merkle Tree

    通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树。Merkle树的叶子是数据块的hash值。 ...

  • Merkle Tree与区块链

    什么是merkle tree 假设你已经知道了什么是哈希算法以及哈希是用来干啥的。 网络传输数据的时候,A收到B的...

网友评论

      本文标题:区块链技术| Merkle Tree

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