0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是默克尔树(Merkle Tree)?如何计算默克尔根?

jf_94171069 来源:jf_94171069 作者:jf_94171069 2024-09-30 18:22 次阅读

01

默克尔树的概念

默克尔树(Merkle Tree)是一种特殊的二叉树,它的每个节点都存储了一个数据块的哈希值。哈希值是一种可以将任意长度的数据转换为固定长度的字符串的算法,它具有唯一性和不可逆性的特点,即不同的数据块会产生不同的哈希值,而相同的数据块会产生相同的哈希值,且无法从哈希值还原出原始数据。默克尔树的叶子节点存储了数据块本身的哈希值,而非叶子节点存储了其子节点哈希值的组合的哈希值。这样,默克尔树的根节点就包含了所有数据块的哈希信息,可以用来代表整棵树的唯一标识。

02

默克尔树的结构

默克尔树是一种完全二叉树,即每个非叶子节点都有两个子节点,如果数据块的数量不是2的整数次幂,那么就需要复制最后一个数据块来补齐。例如,如果有5个数据块,那么就需要复制第5个数据块来构成6个数据块,然后再复制第6个数据块来构成8个数据块。这样,就可以形成一个4层的完全二叉树.

如下图所示: 在这个例子中,A、B、C、D、E、F、G、H是8个数据块,它们经过哈希函数H得到8个哈希值H(A)、H(B)、H(C)、H(D)、H(E)、H(F)、H(G)、H(H),这些哈希值作为叶子节点。然后,叶子节点两两组合,得到4个中间节点H(H(A)+H(B))、H(H(C)+H(D))、H(H(E)+H(F))、H(H(G)+H(H)),其中+表示字符串连接。再然后,中间节点两两组合,得到2个中间节点H(H(H(A)+H(B))+H(H(C)+H(D)))和H(H(H(E)+H(F))+H(H(G)+H(H)))。最后,这两个中间节点组合得到根节点H(H(H(H(A)+H(B))+H(H(C)+H(D)))+H(H(H(E)+H(F))+H(H(G)+H(H))))。这个根节点就是默克尔根(Merkle Root),它包含了所有数据块的哈希信息。

wKgZomb5BIOAUyZlAABq4c1F4ng416.png

03

默克尔树的作用

默克尔树有以下几个作用: 1.数据完整性验证:通过比较两棵默克尔树的根节点是否相同,可以快速判断两份数据是否完全一致。如果根节点不同,则说明至少有一个数据块发生了变化;如果根节点相同,则说明所有数据块都没有变化。这样可以节省大量的比较时间和空间。 2.数据安全性保护:由于哈希函数的不可逆性,即使知道了默克尔根和部分数据块,也无法还原出其他数据块的内容。这样可以保护数据的隐私和安全。 3.数据有效性证明:通过提供某个数据块及其对应的默克尔路径(Merkle Path),即从该数据块到根节点经过的所有节点的哈希值,可以证明该数据块确实存在于某棵默克尔树中。这样可以避免传输整棵默克尔树,只需要传输默克尔根和默克尔路径即可。

04

默克尔树的应用

默克尔树广泛应用于文件系统和P2P网络中,例如:

1.Git:Git是一种分布式版本控制系统,它使用默克尔树来存储和管理文件的历史版本。每个文件都有一个哈希值,每个目录也有一个哈希值,这些哈希值构成了一棵默克尔树。每次提交(commit)都会生成一个新的默克尔根,作为该提交的唯一标识。这样,可以快速比较不同提交之间的差异,以及验证文件的完整性和有效性。

2.BitTorrent:BitTorrent是一种P2P文件共享协议,它使用默克尔树来分割和校验大文件。每个文件被切分成多个数据块,每个数据块有一个哈希值,这些哈希值构成了一棵默克尔树。每个文件的元数据(metadata)中包含了该文件的默克尔根和数据块的大小。这样,可以在下载过程中验证数据块的完整性和有效性,以及恢复损坏的数据块。

3.Bitcoin:Bitcoin是一种去中心化的数字货币系统,它使用默克尔树来存储和验证交易记录。每个交易都有一个哈希值,这些哈希值构成了一棵默克尔树。每个区块(block)中包含了该区块的默克尔根和交易数量。这样,可以在不传输整个区块的情况下,证明某个交易是否存在于某个区块中,以及验证区块的完整性和有效性。 默克尔树是一种特殊的二叉树,它的每个节点都存储了一个数据块的哈希值。

本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki:Cellular IoT Wiki 知识库(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)

欢迎同学们走进AmazIOT知识库的世界!

这里是为物联网人构建的技术应用百科,以便帮助你更快更简单的开发物联网产品

Cellular IoT Wiki初心:

在我们长期投身于蜂窝物联网 ODM/OEM 解决方案的实践过程中,一直被物联网技术碎片化与产业资源碎片化的问题所困扰。从产品定义、芯片选型,到软硬件研发和测试,物联网技术的碎片化以及产业资源的碎片化,始终对团队的产品开发交付质量和效率形成制约。为了减少因物联网碎片化而带来的重复开发工作,我们着手对物联网开发中高频应用的技术知识进行沉淀管理,并基于 Bloom OS 搭建了不同平台的 RTOS 应用生态。后来我们发现,很多物联网产品开发团队都面临着相似的困扰,于是,我们决定向全体物联网行业开发者开放奇迹物联内部沉淀的应用技术知识库 Wiki,期望能为更多物联网产品开发者减轻一些重复造轮子的负担。

Cellular IoT Wiki沉淀的技术内容方向如下:

wKgaombqoM2AYL2RAAQrZ8e-uz8392.jpg

奇迹物联的业务服务范围:基于自研的NB-IoT、Cat1、Cat4等物联网模组,为客户物联网ODM/OEM解决方案服务。我们的研发技术中心在石家庄,PCBA生产基地分布在深圳、石家庄、北京三个工厂,满足不同区域&不同量产规模&不同产品开发阶段的生产制造任务。跟传统PCBA工厂最大的区别是我们只服务物联网行业客户。

连接我们,和10000+物联网开发者一起 降低技术和成本门槛

让蜂窝物联网应用更简单~~

哈哈你终于滑到最重要的模块了,

千万不!要!划!走!忍住冲动!~

欢迎加入飞书“开源技术交流”,随时找到我们哦~

点击链接如何加入奇迹物联技术话题群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以获取加入技术话题群攻略

Hey 物联网从业者,

你是否有了解过奇迹物联的官方公众号“eSIM物联工场”呢?

这里是奇迹物联的物联网应用技术开源wiki主阵地,欢迎关注公众号,不迷路~

及时获得最新物联网应用技术沉淀发布

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    3421

    浏览量

    42783
  • 数据校验
    +关注

    关注

    0

    文章

    5

    浏览量

    6794
收藏 人收藏

    评论

    相关推荐

    VirtualLab Fusion应用:白光干涉相干性测量

    摘要 本用例以众所周知的迈克尔逊干涉仪为例,展示了分布式计算的能力。多色光源与干涉测量装置的一个位置扫描的反射镜相结合,以执行详细的相干测量。使用具有六个本地多核PC组成的网络分布式计算,所得
    发表于 02-14 09:46

    继经典迈克尔逊干涉后的零差式激光干涉技术的出现

    零差式激光干涉技术是在经典迈克尔逊干涉原理的基础上发展起来的一种高精度测量技术。以下是对这一技术的详细介绍: 一、经典迈克尔逊干涉原理 迈克尔逊干涉仪是一种利用分振幅法产生双光束以实现干涉的光学仪器
    的头像 发表于 02-11 09:43 130次阅读
    继经典迈<b class='flag-5'>克尔</b>逊干涉后的零差式激光干涉技术的出现

    致真精密仪器自旋测试多功能克尔显微镜介绍

    自旋测试多功能克尔显微镜以自主设计的光路结构及奥林巴斯、索莱博光电元件为基础制造;用于磁性材料/自旋电子器件的磁畴成像和动力学研究。
    的头像 发表于 02-10 14:32 154次阅读
    致真精密仪器自旋测试多功能<b class='flag-5'>克尔</b>显微镜介绍

    科技在物联网方面

    据传输的需求。例如,利用5G的低延迟、高带宽特性,实现机器人与云端服务器之间的快速数据传输,提高机器人的响应速度和智能化水平。 智能决策与数据分析 边缘计算与云计算结合:宇科技的机器人采用了边缘
    发表于 02-04 06:48

    将测量的太阳光谱导入VirtualLab Fusion

    VirtualLab Fusion中,然后如何将其用作系统中光源的光谱组成? 地外太阳光谱数据来自Wehrli, C. World Radiation Center (WRC), 615(1), 10-17, (1985). 在光学系统中使用光源 将光谱导入光源 迈克尔逊干涉仪实验
    发表于 01-23 10:22

    FRED案例:天文光干涉仪

    好,相干光线追迹就会执行。在探测器平面上的辐照度和彩色图会得到计算并显示出来。为了模拟迈克尔逊恒星干涉仪的运行,额外的循环可以添加到脚本中,它会在每一步扫描反射镜间距并计算条纹可见度。条纹可见度的第一个极小值会出现在d=λ0/(
    发表于 01-21 09:58

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备之设备组成和结构

    的一项技能。设备的起源设备(Device Tree)是一种描述硬件资源的数据结构,它由uboot传递给Linux内核,被内核解析,内核根据设备中的硬件描述信息加载利用相应驱动资源
    发表于 01-08 08:32

    飞凌嵌入式ElfBoard ELF 1板卡-初识设备之设备组成和结构

    的一项技能。设备的起源设备(Device Tree)是一种描述硬件资源的数据结构,它由uboot传递给Linux内核,被内核解析,内核根据设备中的硬件描述信息加载利用相应驱动资源
    发表于 01-07 09:16

    天文光干涉仪

    迹就会执行。在探测器平面上的辐照度和彩色图会得到计算并显示出来。为了模拟迈克尔逊恒星干涉仪的运行,额外的循环可以添加到脚本中,它会在每一步扫描反射镜间距并计算条纹可见度。条纹可见度的第一个极小值会出现在d=λ0/(2θ)处,其中
    发表于 12-25 15:26

    电光效应之普克尔效应和克尔效应

    本文介绍了电光效应之普克尔效应和克尔效应。 电光是光子学的一个分支,研究光束的调制、切换、偏转、扫描和重定向。在电光领域,人们关注的是通过透明材料来实现这些操作。电场会扭曲构成材料的分子的位置、方向
    的头像 发表于 12-02 10:27 527次阅读
    电光效应之普<b class='flag-5'>克尔</b>效应和<b class='flag-5'>克尔</b>效应

    克尔·戴尔:人工智能将超越以往技术浪潮

    在科技行业日新月异的今天,戴尔公司(Dell Technologies)的创始人兼CEO迈克尔·戴尔(Michael Dell)周一在一次重要采访中对生成式人工智能(GAI)的影响力给予了高度评价。他认为,人工智能的崛起将可能超越以往任何技术发展的规模与速度。
    的头像 发表于 06-20 10:21 455次阅读

    原理图设计里两颗重要的(国产EDA)

    原理图里面两颗重要的,那就是元件和网络,作为EDA工具中的重要视图和概念,虽然看似枯燥,但它们扮演着非常重要的角色,它们为电路图的层次化结构提供了有力支撑。想象一个大型的电路设计项目,就像一个
    的头像 发表于 05-29 17:47 840次阅读
    原理图设计里两颗重要的<b class='flag-5'>树</b>(国产EDA)

    戴尔、英伟达明年或推AI处理器Windows 11 PC

    在采访过程中,当被问及英伟达在AI PC中的角色和地位时,迈克尔·戴尔回答说“明年再看吧”;黄仁勋则表示赞同,并称此举确实有必要。
    的头像 发表于 05-23 15:27 492次阅读

    致真精密仪器入选工信部装备工业一司智能检测装备创新产品目录

    近日,致真精密仪器的多功能磁光克尔显微成像系统入选了工业和信息化部装备工业一司的智能检测装备创新产品目录(第一批)。
    的头像 发表于 03-28 14:05 571次阅读
    致真精密仪器入选工信部装备工业一司智能检测装备创新产品目录

    超算网络中的主流拓扑架构

    传统的树形网络拓扑中,带宽是逐层收敛的,树根处的网络带宽要远小于各个叶子处所有带宽的总和。而Fat-Tree则更像是真实的,越到树根,枝干越粗,即:从叶子到树根,网络带宽不收敛,这是Fat-Tree能够支撑无阻塞网络的基础。
    发表于 03-26 09:41 5747次阅读
    超算网络中的主流拓扑架构