默克尔树 (merkle tree)

默克尔树,也称为哈希二叉树,是一种用于有效地汇总和验证大型数据集完整性的数据结构。

默克尔路径

可用于证明在一个很大字节数的区块中上千笔交易中的具体某一笔交易的存在.

为了证明一个块中包含了一个特定的交易,一个节点只要计算log2(N)32字节的哈希值,形成一条从特定交易到树根的认证路径或者默克尔路径。

该路径有4个哈希值 HL、HIJ、HMNOP和HABCDEFGH组成,通过这4个哈希值产生的认证路径,任何节点都可以通过计算另外四对哈希值HKL、HIJKL、HIJKLMNOP和默克尔树根,来证明HK包含在默克尔根中。

默克尔路径的效率

为了证明区块中存在某交易而所需转化为默克尔路径的数据量。

简单支付验证(SPV)

有了默克尔树,一个节点能够仅下载区块头(80字节/区块),然后通过从一个全节点回溯一条小的默克尔路径就能认证一笔交易的存在,而不需要存储或者传输大量区块链中大多数的内容,那些也许有几个GB的大小。这种不需要维护一条完整的区块链的节点,被称作简单支付验证(SPV)节点,它通过默克尔路径去验证交易的存在,而不需要下载整个区块。

一个SPV节点对它钱包中某个比特币地址即将收到的付款感兴趣。该节点会在节点间的通信链接上建立起bloom过滤器,限制只接受含有目标比特币地址的交易。当节点探测到某交易符合bloom过滤器要求,它将以merkleblock消息的形式发送该区块。merkleblock消息包含区块头以及将感兴趣的交易链接到区块中的根的默克尔路径

SPV节点同时也使用区块头去关联区块和区块链中的其余区块。这两种关联(交易与区块、区块和区块链)可以证明交易存在于区块链。


往期精彩回顾:
区块链知识系列
密码学系列
零知识证明系列
共识系列
公链调研系列
比特币系列
以太坊系列
EOS系列
Filecoin系列
联盟链系列
Fabric系列
智能合约系列
Token系列

密码学系列 - 默克尔路径相关推荐

  1. 默克尔树_默克尔树:正在使用中

    默克尔树 Ralph C. Merkle (not pictured above), born 1952, is one of the founding fathers of Public Key C ...

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

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

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

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

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

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

  5. 区块链学习笔记(2)难度整定,区块形成,区块体,Merkle树,Merkle Proof默克尔证明

    难度的调整 是在每个完整节点中独立自动发生的.每2016个区块,所有节点都会按统的公式自动调整难度,这个公式是由最新2016个区块的花要时长与期望时长(期望时长为20160分钟,即两周,是按每10分钟 ...

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

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

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

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

  8. 以太坊解析:默克尔树、世界状态、交易及其他

    以太坊黄皮书中的一些概念.通过本文,我们将学到以太坊中一些主要组成部分以及它们在整个系统中的作用,同时也将简要地讨论以太坊中默克尔树的工作原理. 希望屏幕面前的你在阅读之后能明白默克尔树到底是什么,以 ...

  9. 默克尔树在区块链中的应用

    1 MT(Merkle tree) 默克尔树是一种哈希二叉树,1979年由Ralph Merkle发明.与标准二叉树一样,由一组叶节点,一组中间节点和一个根节点构成.叶节点包含存储数据或其哈希值,中间 ...

最新文章

  1. windows常用命令有哪些(整理)
  2. 如何确定线程池的大小?
  3. Gut Microbes l 锻炼或会增加机体内源性大麻素水平和改变肠道菌群从而降低机体慢性炎症!...
  4. hybriddb mysql移植_HybridDB for MySQL 实现在线与离线数据分离的实践
  5. 敏捷开发与中医理论系列之一:序言及为何中医教材都是千年古籍
  6. 2.1)深度学习笔记:深度学习的实践层面
  7. 论文浅尝 - WWW2020 | 通过对抗学习从用户—项目交互数据中挖掘隐含的实体偏好来用于知识图谱补全任务...
  8. 软件测试工程师-开发与测试模型
  9. c++ 十进制、十六进制和BCD的相互转换
  10. 高通针对LED应用的点阵字库解决方案 — 支持多种字号字体显示
  11. jpeglib的jpeg_finish_compress函数疑似越界
  12. NTPWEdit通过直接修改SAM文件离线更改密码
  13. 2021年网站dns解析错误有什么办法解决呢?
  14. 学习新手给Android新手的一些学习建议
  15. 处理Zabbix历史数据库办法二---使用MySQL表分区
  16. WPF中使用PS导出的SVG矢量图
  17. 程序员五一被拉去相亲,结果彻底搞懂了HTTP常用状态码
  18. Qt程序报错:Socket notifiers cannot be enabled or disabled from another thread
  19. 树、二叉树、满二叉树、完全二叉树、二叉树的重要性质及其存储结构
  20. python培训 中科普开

热门文章

  1. 电影推荐系统 python简书_基于Spark的电影推荐系统(实战简介)
  2. 信息安全国内测评认证标准
  3. 【Linux学习笔记】一、Linux 时间问题
  4. 日期计算器-java(含界面)
  5. 查看SQL server端口
  6. Ubuntu 安装 Mysql【详细步骤】
  7. Atitit 手机号码选号 规范 流程 attilax总结 v4 s81.docx 1. Keyword关键词 2 2. 靓号的定义 2 3. 靓号的重要意义 与解决问题 为什么我们需要靓号
  8. Hololens开发笔记_常见错误汇总
  9. Regeorg 从python2改造为python3-从实战中学习socks5协议
  10. 他24岁北航博士毕业受聘211高校副教授,也曾是个沉迷CF成绩倒数的调皮蛋-1