MerkleTree

2017-09-30  本文已影响0人  花丶小伟

MerkleTree介绍

Hash

HashList

HashTree

Merkle Tree的特点

  1. MT是一种树,大多数是二叉树,也可以多叉树,无论是几叉树,它都具有树结构的所有特点;
  2. Merkle Tree的叶子节点的value是数据集合的单元数据或者单元数据HASH。
  3. 非叶子节点的value是根据它下面所有的叶子节点值,然后按照Hash算法计算而得出的。

Merkle Tree的操作

创建Merkle Tree

  1. 创建Merckle Tree
    加入最底层有9个数据块。

  2. (红色线)对数据块做hash运算,Node0i = hash(Data0i), i=1,2,…,9。

  3. (橙色线)相邻两个hash块串联,然后做hash运算,Node1((i+1)/2) = hash(Node0i+Node0(i+1)), i=1,3,5,7;对于i=9, Node1((i+1)/2) = hash(Node0i)

  4. (黄色线)重复step3

  5. (绿色线)重复step3

  6. (蓝色线)重复step3,生成Merkle Tree Root


    此处输入图片的描述此处输入图片的描述

检索数据块

为了更好理解,我们假设有A和B两台机器,A需要与B相同目录下有8个文件,文件分别是f1 f2 f3 ....f8。这个时候我们就可以通过Merkle Tree来进行快速比较。假设我们在文件创建的时候每个机器都构建了一个Merkle Tree。具体如下图:


此处输入图片的描述此处输入图片的描述

Merkle Tree的应用

数字签名

P2P网络

BitCoin和Ethereum

上一篇 下一篇

猜你喜欢

热点阅读