Merkle Tree 简介

故名思义,它是一种树,而且是存储哈希值的树,树中只有叶子节点才是真正的存储值的,其它的非叶子节点都是根据孩子的值进行哈希计算得来的。说说用途,Merkle tree可以用来进行大数据的比对,可以快速定位(O(logn))到哪一部分数据不一致,在分布式环境下可以减少数据的传输量。

对比两个大数据的副本是否一样,可以这样来处理,首先比对两个大数据构造起来的Merkle Tree的root节点是否一致,一致则认为这两个副本是相同的。如果不同,可以比对其下的孩子的哈希值是否相同,不同的节点下的值肯定不同。所以顺着树往下找,就能找到到底是哪一部分的数据时不同的,可以快速定位不同的部分。

DynamoDB和Git都使用了Merkle Tree来验证和定位数据的一致性。

原文:http://blog.csdn.net/hongchangfirst/article/details/26844219

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst

时间: 2024-08-01 13:51:22

Merkle Tree 简介的相关文章

Merkle Tree算法详解

转载自:http://blog.csdn.net/yuanrxdu/article/details/22474697Merkle Tree是Dynamo中用来同步数据一致性的算法,Merkle Tree是基于数据HASH构建的一个树.它具有以下几个特点: 1.数据结构是一个树,可以是二叉树,也可以是多叉树(本BLOG以二叉树来分析) 2.Merkle Tree的叶子节点的value是数据集合的单元数据或者单元数据HASH. 3.Merke Tree非叶子节点value是其所有子节点value的H

What is Merkle tree?

这是我最近在研究一篇论文的时候发现的,开始不知道是什么,所以查了些资料. What is Merkle tree? Merkle tree是一种树,网上大都称Merkle Hash tree,这是因为它所构造的所有Merkle tree节点都是Hash值. Merkle tree具有以下的特点: 1.它是一种树,可以是二叉树,也可以是多叉树,无论是几叉树,它都具有树结构的所有特点: 2.Merkle tree叶子节点上的value值是由你指定的,这主要看你的设计了,如Merkle Hash tr

区块链~Merkle Tree(默克尔树)算法解析~转载

转载~Merkle Tree(默克尔树)算法解析 /*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为接触时间不长,对Merkle Tree的理解也不是很深入,如果有不对的地方,希望各位大神指正*/ Merkle Tree概念 Merkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树.Merkle树的叶子是数据块(例如,文件或者文件的集合)的hash值.非叶节点是

区块链 -- Merkle Tree

我们地球上大部分人应该连它的名字都没有听过,而且说实话它也是个比较传统的概念了.Merkle Tree 是由计算机科学家 Ralph Merkle 在很多年前提出的,并以他本人的名字来命名.不过,Merkle Tree 确实涉及到了很多有意思的实际应用.最近几年才有的一个例子是,比特币钱包服务用 Merkle Tree 的机制来作”百分百准备金证明“ ( http://blog.bifubao.com/2014/03/16/proof-of-reserves/ ).不过今天,我们还是从数据的“完

Merkle Tree - 默克尔树

Merkle Tree(默克尔树),通常也被称作Hash Tree.顾名思义,就是存储hash值的一棵树. Merkle树的叶子是数据块的hash值(数据块:文件或者文件的集合).非叶节点是其对应子节点串联字符串的hash. 1.Hash Hash是一个把任意长度的数据映射成固定长度数据的函数. 例如,对于数据完整性校验,最简单的方法是对整个数据做Hash运算得到固定长度的Hash值,然后把得到的Hash值公布在网上. 这样用户下载到数据之后,对数据再次进行Hash运算,比较运算结果和网上公布的

hash tree算法

本文转载自:http://blog.csdn.net/yuanrxdu/article/details/22474697 Merkle Tree是Dynamo中用来同步数据一致性的算法,Merkle Tree是基于数据HASH构建的一个树.它具有以下几个特点: 1.数据结构是一个树,可以是二叉树,也可以是多叉树(本BLOG以二叉树来分析) 2.Merkle Tree的叶子节点的value是数据集合的单元数据或者单元数据HASH. 3.Merke Tree非叶子节点value是其所有子节点valu

经常在比特币中看到的merkle树是什么?

区块基础-merkle树   Merkle tree中文叫做梅克尔树,这当然不是一棵真正的植物树,merkle tree是计算机数据结构中的一种树,是由计算机科学家 Ralph Merkle 提出的,并以他本人的名字来命名. Merkle tree是数据结构中的一种树结构,可以是二叉树,也可以是多叉树,他和数据结构中树的特点几乎一致,和普通树不同的是:merkle tree上的叶节点存放hash计算后的hash值,非叶节点是其对应的子节点串联的字符串的hash值.上图可知:hash0=hash0

1.3.2 区块链中的密码学——Merkle 树

在计算机领域,Merkle树大多用来进行完整性验证处理.在处理完整性验证的应用场景中,特别是在分布式环境下进行这样的验证时,Merkle树会大大减少数据的传输量以及计算的复杂度. Merkle哈希树是一类基于哈希值的二叉树或多叉树,其叶子节点上的值通常为数据块的哈希值,而非叶子节点上的值是将该节点的所有子节点的组合结果的哈希值. 如下图所示为一个Merkle哈希树,节点A的值必须通过节点C.D上的值计算而得到.叶子节点C.D分别存储数据块001和002的哈希值,而非叶子节点A存储的是其子节点C.

MongoDB---前世今生

MongoDB的官方文档基本是how to do的介绍,而关于how it worked却少之又少,本人也刚买了<MongoDB TheDefinitive Guide>的影印版,还没来得及看,本文原作者将其书中一些关于MongoDB内部现实方面的一些知识介绍如下,值得一看. 今天下载了<MongoDB The Definitive Guide>电子版,浏览了里面的内容,还是挺丰富的.是官网文档实际应用方面的一个补充.和官方文档类似,介绍MongoDB的内部原理是少之又少,只有在附