在区块链中,主要使用Merkle 树来进行数据正确性的验证。

特点

默克尔树是一种树,可以是二叉树,也可以是多叉树。
默克尔树叶子节点的value是数据项的内容或者是数据项的哈希值;
非叶子节点的value根据其孩子节点的信息,然后按照hash算法计算得出;

优点

1、快速hash重计算:默克尔树中任何一个叶子节点内容变更,都能够在前一次的基础上,仅仅将被修改的树节点进行哈希重新计算就能够得到一个新的根哈希来代表整棵树的状态。
2、叶子节点存在证明:通过返回默克尔树中的节点路径来验证一个叶子节点是否存在,该证明过程又称为默克尔证明。通过默克尔证明可以实现轻节点的扩展。

缺点

存储空间开销大(存储中间hash,根据业务需求,也可以不存储)

THE END!

默克尔树特点及优缺点相关推荐

  1. 区块链基础知识系列 第三课 区块链中的默克尔树

    "区块链是实现无中心分布式总账的一种技术.除了采用块.链结构的典型区块链以外,还有其他的方式实现分布式总账这个需求.总账技术的基本单元是'交易',整个账本是由一条条的交易构成.'块'类似于账 ...

  2. 数据结构与算法 / 默克尔树

    最近在学习 git 原理时,涉及到了默克尔树,这里总结下该数据结构. 默克尔树于 1979 年由美国计算机科学家拉尔夫·默克尔(Ralph Merkle)提出,本质上是一种树状数据结构,由数据块.叶子 ...

  3. 常用的数据结构_三分钟了解区块链常用数据结构「默克尔树」

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 来源:万向区块链 原文标题:三分钟了解区块链常用数据结构「默克尔树」 默克尔树是 ...

  4. Merkle Tree(默克尔树)原理解析

    Merkle Tree(默克尔树)原理解析 一.Merkle Tree 1.1 Merkle Tree的特点 二.Hash list 三.Merkle tree VS Hash list 四.Merk ...

  5. 科普 | 什么是稀疏默克尔树多值证明

    译者注:以太坊网络是一台富状态(stateful)的世界计算机,其状态包括状态余额.交易流水号(nonce).合约代码及合约存储内容等.在技术上,这些状态数据是靠一种叫做 "默克尔树&quo ...

  6. 【区块链 | 默克尔树】使用默克尔(Merkle)树实现NFT白名单

    简介 在我们今天所知道和喜爱的区块链出现之前,默克尔树一直是密码学和计算机科学领域的一个方面.如今,我们开始慢慢看到它们在链上更频繁地被用于数据验证的目的.在这篇文章中,我将解释 Merkle Tre ...

  7. 默克尔树(Merkle Tree)总结

    目录 为什么要有默克尔树 简介 Merkle Tree的特点 图解 创建树 检索-文件夹比较 检索-防伪 更新 插入删除 应用 数字签名 P2P网络 可信计算 区块链-简单验证支付 为什么要有默克尔树 ...

  8. 基于Python实现的默克尔树

    默克尔树常见的结构是二叉树,但它也可以是多叉树,它具有树结构的全部特点. 默克尔树的基础数据不是固定的,想存什么数据都可以,因为它只要数据经过哈希运算得到的哈希值. 默克尔树是从下往上逐层计算,每个中 ...

  9. 6.tendermint默克尔树

    默克尔树概述 在ABCI应用响应Commit请求消息时,需要计算并返回当前状态的哈希,以便Tendermint 将其打包到下一个区块头里(app_hash字段). 但是,如果我们还按原来的方法计算一个 ...

最新文章

  1. Windows服务异常自动关闭
  2. 使用libjpeg进行JPEG图像解码
  3. MapReduce的基本流程
  4. python的基础_python基础知识,python必背内容,一、python的基
  5. Win7——Win10系统如何安装Win7系统
  6. zabbix-server无法启动
  7. 【笔记】工具 - 输入法 - rime 小狼毫(weasel)
  8. r710 linux网卡驱动,Dell R710更换网卡驱动linux
  9. android mmkv使用_Android:MMKV 组件入门
  10. 概率论与数理统计在计算机知识的应用,概率论与数理统计在生活中的应用 (5)...
  11. HTML开心人人新浪微薄等
  12. 直击14号台风“灿都”最新消息!浙江多地停课停运,上海严阵以待!
  13. 8255A并行 I/O 接口芯片
  14. java super extend 区别_Java泛型中extends和super的区别
  15. JavaFx界面功能隐藏和禁用
  16. 解决新安装的 Arch Linux 在 GNOME 中搜狗输入法不显示候选词和输入延迟的问题
  17. Perceptron(感知机与径向基)
  18. SpringBoot - @EnableConfigurationProperties注解使用详解
  19. 沃达丰葡萄牙LTE测试实现1Gbps速率
  20. CoordinatorLayout 添加下拉刷新

热门文章

  1. iOS小技能:解决TableVIew刷新数据带来的界面跳动问题
  2. V90 PN 伺服驱动器的一键自动优化功能_方法示例
  3. 移动互联网时代的四大特征
  4. 三极管基极电阻的确定方法
  5. 没有javaeye积分了,谁了解浙大网新恒天公司啊?
  6. html5毕业答辩ppt,【图】毕业论文ppt内容(毕业论文毕业答辩PPT制作和讲述要点)...
  7. 哈佛凌晨两点半(读书笔记)
  8. 基于微信小程序的订水送水系统设计与实现毕业设计毕设开题报告
  9. 节点还没注册,LoRa网关却收到数据?
  10. SQL语句查看重复值