147_Merkle(默克尔)树简单理解

2023-11-02

Merkle(默克尔)树,又叫哈希树,是一种典型的二叉树结构,由一个根节点、若干中间节点以及若干叶节点组成。

结构示例图:

 

默克尔树的所有叶子节点,都用来存放数据。所有非叶子节点,都用来存放其所有孩子节点的内容的hash值。

基于这种数据存储方式,当任何叶子节点中的数据有变动时,其父节点内容也会变动,之后父节点的父节点也会变动,一直传递到跟节点。

因此,默克尔树至少可以有如下两种用途:

1.快速比较大量数据

对要比较的两组数据分别构建默克尔树,最后比较两棵树的根节点是否相同,相同则数据相同。由于Hash计算的过程可以十分快速,预处理可以在短时间内完成。利用默克尔树结构能带来巨大的比较性能优势。

2.零知识证明

如上图,通过构建上述一个默克尔树,你可以不向别人提供任何D0的信息来向他们证明你拥有D0:提供N1、N5和ROOT节点的值,则其他拥有D0的人,就可以依据同样的规则生成ROOT节点,如果得出的结果和你提供的ROOT值相同,那么他就可以验证你确实拥有D0。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

147_Merkle(默克尔)树简单理解 的相关文章

  • 打包人脸识别py文件经历及一系列错误的解决办法

    记录一下自己打包一个人脸识别项目的py文件的经历吧 毕竟弄了整整一天 到处都是错误 下次再出现这些错误也能快点解决 我之后的所有命令操作都是在Anaconda对应的命令行进行的 目录 代码所包含的头文件 pyinstaller安装错误 运行
  • Unity3D 控制角色移动,转向和自动跟随

    Unity3D 角色转向和自动跟随 通过挂载脚本控制3D人物的移动和转向 先上一个官方的例子 这里只有转向而没有移动的方法 看了下原工程 移动是做在动画中的 只要执行了动画就会跟着移动 而且每迈出一步的距离是固定的 如果移动没有做在动画里只
  • python3中默认的字符编码_python3中各个字符编码的转换

    原博文 2017 05 09 20 13 a 我很好 python3 默认的编码为unicode unicode gt gb2312unicode gb2312 a encode gb2312 因为默认是unicode所以不需要decode

随机推荐

  • 阿拉德之怒显示服务器错误,阿拉德之怒无法进入游戏怎么办_阿拉德之怒无法进入游戏解决方法_快吧手游...

    阿拉德之怒无法进入游戏是什么问题呢 阿拉德之怒无法进入游戏的原因又会是什么呢 相信有很多小伙伴们都还不知道吧 那么接下来就由小编给大家带来的王者荣耀阿拉德之怒无法进入游戏解决方法介绍 喜欢的小伙伴们快来看看吧 希望对大家有所帮助 阿拉德之怒
  • ES5严格模式及object,array,function拓展

    ES5 js主要3个部分构成 1 ECMAscript 核心 2 BOM 浏览器对象 DOM 文档对象 3 扩展 gt 服务器端 node js es5新增 严格模式 use strict 严格模式 1 声明严格模式必须在程序的顶部 2 声
  • Viso的对象文件插入word,导致画布有大量空白,如何解决

    Viso的对象文件插入word 导致画布有大量空白 如何解决 1 viso对象插入到word VIso的图可以作为对象插入到word中 直接复制即可 复制后 可以在word中双击 关联到viso中 进行更改 很方便 正常情况下 在viso中
  • VSPD虚拟串口软件安装及使用

    文章目录 前言 一 软件安装 1 Configure Virtual Serial Port Driver VSPD 2 串口调试助手 二 使用步骤 1 模拟串口 2 配置串口 3 收发测试 COM8 发 gt COM9 收 COM9 发
  • python小游戏——像素鸟代码开源

    作者 小刘在这里 每天分享云计算网络运维课堂笔记 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 夕阳下 是最美的 绽放 愿所有的美好 再疫情结束后如约而至 目录 一 呈现效果 二 主代码 三 cfg 四 README 一 呈
  • 自动驾驶汽车下匝道路径优化控制策略研究

    摘要 随着社会不断进步 经济快速发展 科学技术也在突飞猛进 交通行业是典型的领域之一 现阶段的交通发展 实现智能交通系统为目标 正逐渐从信息化步入智能化 朝着智慧化迈进 近年来 一系列先进的理念和技术用来解决交通拥堵 道路安全 能源消耗和环
  • 【Python蓝桥杯】印章 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。

    最近在刷蓝桥杯题目 按题目做一下笔记整理 顺便分享交流一下 有更好的解决方案欢迎大家共同提出探讨 以下源代码为系统提交满分答案 印章 问题描述 资源限制 Python时间限制 5 0s 问题描述 共有n种图案的印章 每种图案的出现概率相同
  • VS2017遇到的问题及解决方案

    今天打开许久未打开的vs2017 遇到了一系列问题 在此记录一下 登录时提示 需要家长或监护人同意才能使用该账户 https www bilibili com read cv20136288 无法刷新此账户的凭据 https social
  • 用VC++来设计ActiveX控件

    用VC 来设计ActiveX控件 周勇生 2001年07月05日 14 03 ActiveX是Microsoft提出的一组使用COM ComponentObjectModel 部件对象模型 使得软件部件在网络环境中进行交互的技术集 它与具体
  • 基于深度学习的图像分割总结

    一 图像分割类别 随着深度学习的发展 在分割任务中出现了许多优秀的网络 根据实际分割应用任务的不同 可以大致将分割分为三个研究方向 语义分割 实例分割 全景分割 这三种分割在某种意义上是具有一定的联系的 语义分割 像素级别的语义分割 对图像
  • SpringBoot 缓存之 @Cacheable介绍

    原文链接 SpringBoot 缓存之 Cacheable介绍 编程屋 目录 1 概述 2 Cacheable注解使用详细介绍 2 1 Cacheable注解使用 2 2 Cacheable 注解的属性 1 概述 Spring高版本引入了c
  • 在emWin上显示汉字

    在emWin上显示汉字 最重要的一点 我经常忘记 加上GUI UC SetEncodeUTF8 转换编码 1 首先制造字库 先制作一个普通的txt文档 然乎保存为UTF 16LE 传统的就是以Unicode保存 然后打开字体库转换软件Fon
  • Manifest merger failed with multiple errors

    合并三方SDK的时候发现错误 如上 网上替换什么的都处理了 不太好 log具体信息又查看不到 在android studio这里找到terminal 并输入 gradlew processDebugManifest可以查看gradle bu
  • 点击唤起电话功能和企业微信聊天窗口事件(H5)

    1 点击唤起电话功能 const mobileShow 18888880000 唤起电话功能 const handlerCall phone string gt const url tel phone window location hre
  • Windows编程第一课:纯手工创建一个窗体

    第一节 创建应用程序主窗体 1 创建消息处理函数 LRESULT CALLBACK fWinProc HWND hWnd UINT uMsg WPARAM wParam LPARAM lParam switch uMsg case WM C
  • java stream 常用操作

    stream 常用操作 1 收集对象属性 2 对象属性分组 1 收集对象属性 List ids dataList stream map TradeSalesExwarehouseInfoForRailwayVo getRelatedDocI
  • 海思 ive

    海思 ive 简单例子 https download csdn net download qq 21193563 10047254 https github com hanson young nniefacelib nniefacelib是
  • 代码质量静态检查工具

    一 点睛 代码质量静态检查工具可以自动快速发现劣质代码 潜在Bug 给出代码优化建议 因此代码静态检查工具在实际项目研发中有举足轻重的作用 利用好各种优秀检查工具是做好品质管理的重要环节 二 静态分析和动态分析 代码分析技术分为 第一 静态
  • 【Pycharm教程】推荐一些 PyCharm 中常用的插件

    工欲善其事 必先利其器 PyCharm 上面的插件是非常实用的 能够巧妙的使用插件对于我们的开发功能的帮助非常大 下面我为大家推荐一些不错的插件 1 Key Promoter X 快捷键 用来提示快捷键的插件 帮助我们尽可能的摆脱鼠标操作
  • 147_Merkle(默克尔)树简单理解

    Merkle 默克尔 树 又叫哈希树 是一种典型的二叉树结构 由一个根节点 若干中间节点以及若干叶节点组成 结构示例图 默克尔树的所有叶子节点 都用来存放数据 所有非叶子节点 都用来存放其所有孩子节点的内容的hash值 基于这种数据存储方式