Merkle trees vs Verkle trees

news2024/9/28 5:32:57
    • 什么是默克尔树,它们是如何工作的?

使用加密哈希算法的二叉树称为 Merkle 树。

哈希树也称为 Merkle 树,用数据块的加密哈希标记叶节点。此外,它还使用其子节点标签的加密散列来标记非叶节点。

每个节点都会生成一个摘要(Hash),该摘要递归地依赖于其子树中的所有characteristics,并且一个或多个属性被添加到叶子中。在 Merkle 树结构中,叶子j节点计算自己属性的散列(Hash),父节点计算其子节点从左到右串联的摘要的摘要。

Ralph Merkle 于 1988 年开发了 Merkle 树以创建更强大的数字签名。 Merkle 树有效地验证了数据的正确性和完整性,同时减少了验证的内存需求。此外,与其他数据结构相比,默克尔树占用的磁盘空间更少,这是默克尔树的显着优势之一。

那么,以太坊是默克尔树吗?以太坊区块链使用称为 Merkle Patricia trie 的 Merkle 树,它提供了一种数据结构,可用于存储所有(key, value)绑定并通过密码进行身份验证。

此外,以太坊执行层中的所有 Merkle 尝试都使用 Merkle Patricia Trie。状态特里树随着时间更新,因为只有一个全局状态特里树。所有合同数据都保存在存储树中。每个块都有自己的存储(key, value)对的事务树。每个块都包含一个永远不会更新的单独的 Receipts trie。

    • 什么是 Verkle 树,它们是如何工作的?

与 Merkle 树类似,Verkle 树允许您组织大量数据并为每个数据项或一组相关片段创建一个简短的“witness”,可以由有权访问树根的人确认。

然而,Verkle 树最重要的特征是它们的证明大小效率。与典型的二叉 Merkle 树大约 1 KB 相比,Verkle 树需要不到 150 bytes来为具有十亿个数据点的树生成证明。 Verkle 树利用称为多项式承诺的证明系统,依靠多项式函数来描述数据。

2018 年,John Kuszmaul 引入了 Verkle 树,但与许多其他重要的新密码结构相比,它仍不为人所知。 Verkle 树结构类似于以太坊当前的 Merkle Patricia 树。本质上,每个节点都具有以下三个属性之一:

  1. 它是空的。

  1. 它是一个带有键和值的叶节点。

  1. 它是一个具有定义数量的子节点(树的“宽度”)的中间节点。

节点的子节点值的散列(Hash)用于计算中间节点的值。然而,Verkle 树比 Merkle Patricia 树更广阔,这是 Verkle 树的显着优势之一,也是它们结构组件之间唯一的实质性区别。唯一的限制是,如果宽度增加太多,校样的制作时间就会过长。结果,证明随着宽度的增加而变得越来越短。

    • Merkle 和 Verkle 树在区块链中的重要性是什么?

Merkle 树用于比特币 ( BTC ) 和其他加密货币,以更有效和安全地加密区块链数据。 Verkle 树允许更小的证明大小,这对于以太坊即将到来的 扩展升级 尤为重要。

如何识别默克尔树呢?叶节点、非叶节点和 Merkle 根是区块链上下文中 Merkle 树的三个基本部分。交易哈希或交易 ID (TXID) 位于叶节点中,可以在区块浏览器上查看。然后,在叶节点之上,一层非叶节点成对散列在一起。非叶节点将它们代表的两个叶节点的散列保存在它们下面。

Related: What is blockchain technology? How does it work?

随着树在上升时变窄,当非叶节点级别继续成对散列在一起时,每层形成的节点数量减少一半。最后的非叶子节点层会出现两个节点,该层建立 Merkle 根(用于验证叶子节点),是 Merkle 树中最后一次哈希的位置。

存储在块数据部分的 Merkle 根可以与存储在块头中的 Merkle 根进行比较,从而使矿工能够快速识别任何操纵。 Merkle 证明结合了被证明的价值和恢复 Merkle 根所需的散列值。此外,它们还支持简单的支付验证 (SPV),无需下载完整的区块或区块链即可用于验证交易。这允许使用加密钱包或轻客户端节点来发送和接收交易。

与 Merkel 树相比,Verkle 树可以显着减少大量数据的证明大小。证明长度(通常与状态大小成对数)会影响网络通信。但是,什么是 Verkle 证明? Verkle 证明是存储大量数据的证据,任何拥有树根的人都可以轻松验证。

证明者必须提供单一证明,证明从每个叶节点到根的路径上的所有承诺之间的所有父子链接,而不是在 Verkle 树的每一层都呈现所有“sister nodes”。与理想的 Merkle 树相比,证明大小可以与以太坊目前的六叉帕特里夏树相比,减少了 6-8 倍,超过 20-30 倍。

    • Merkle trees vs. Verkle trees

两种类型的树之间有很多差异,特别是在提供 Merkle 证明和 Verkle 证明方面。

Merkle 树中的整个姐妹节点集,包括 Merkle Patricia 树,构成了一个值的证据。证明必须包括树中的所有节点以及与您试图证明的节点相同的任何父节点。另一方面,在 Verkle 树中,您只需要提供路径加上一点点额外的证据——您甚至不需要添加姐妹节点。

Verkle 树的主要思想是可以通过用向量承诺代替加密哈希函数来创建 Merkle 树。 Verkle 树的用途与 Merkle 树相同。但是,它们在字节大小方面明显更有效,这是主要区别。

由于它们的树状结构,Merkle 证明很容易部分更新,而 Verkle 树中的多项式承诺要求完全改变整个曲线,需要再次计算证明是一个不小的挑战。

世界各地的人们都可以使用可以在个人计算机或智能手机上高效、简单地运行的加密钱包发送、接收和验证交易,这是重要的默克尔树用例,可能是由于默克尔树形成的默克尔根。相反,Verkle 树的一个关键用例包括用向量承诺代替 Merkle 树中的哈希值,从而提高更广泛分支因子的有效性。

参考

https://cointelegraph.com/explained/merkle-trees-vs-verkle-trees-explained

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/150663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot笔记(持续更新)

要学习SpringCloud,但是SpringBoot是基础,所以需要开个篇补一下 突发奇想:学习编程,一定要自顶向下学习,刚刚入门了SC,对整个开发部署流程有了一个大概的认知,在听SB的课程发现理解起来很容易…

菲鹏生物冲刺创业板上市:毛利率稳中有降,崔鹏、曹菲夫妇控股

2023年1月6日,菲鹏生物股份有限公司(下称“菲鹏生物”)在深交所更新招股书(注册稿),准备在创业板上市,泰联合证券为其独家保荐人。本次冲刺上市,菲鹏生物计划募资25.056亿元。 其中…

SpringCloud(12)— 分布式事务(Seata)

SpringCloud(12)— 分布式事务(Seata) 一 事务基础 1.事务的ACID原则 2.分布式事务问题 在分布式系统下,一个业务跨越多个服务或数据源,每一个服务都是一个事务。 要保证所有分支事务的最终状态一致&am…

【Qt】为应用程序设置标题栏、状态栏、可执行程序显示 三种状态下的图标

Qt为应用程序添加图标的几种方式 应用程序的图标分为: 程序左上角显示的标题栏的图标: 程序打开后在任务栏显示的状态栏图标: 程序在文件管理器中显示的可执行程序图标: 设置这几种图标的方式有以下几种。 方式1,一…

Maven项目管理

01-Maven概述02-Maven简介03-Maven基本使用04-IDEA配置Mavenhelloworld 版本错误 已解决 https://blog.csdn.net/qq_41428418/article/details/12416917505-依赖管理&依赖范围找不到Any changes??? 感觉无关紧要compile 最大的 默认的scope,表示 dependency …

Linux——文件的读取与搜索

文章目录文件读取cat和tac命令head和tail命令more和less命令wc和du命令文件读取 cat和tac命令 cat命令将文件中全部内容都打印到屏幕上,适合较小文件的读取,不适合大文件。 tac命令是从最后一行开始反向打印,这一点与cat命令正好相反。 语法&…

2023.1.9 学习总结

1.二叉排序树的相关操作 二叉排序树的相关操作可以分为这几种: 1.创建二叉排序树 2.插入值 3.查找值 4.删除值 首先给出二叉排序树的结点类型定义:(就是一个二叉树) struct bis {int data;bis* left;bis* right; }; 因为创…

熊海cms1.0代码审计

目录 一、环境搭建 二、代码审计 (1)后台存在登录绕过漏洞 (2)登录后台user处存在SQL注入 (3)前(后)台文件包含漏洞 (4)后台SQL注入 1、admin/files/…

程序员简历上写这种项目,难怪面试当炮灰。。。

目录: 高级工程师必备:系统设计能力如何让你的项目更有技术含量 上篇文章 《我只是把握好了这3点,1个月后成功拿下大厂offer!》我们聊了聊Java工程师在跳槽前的1个月,如何利用较短的时间从技术广度、技术深度、基础功…

实现一个二叉搜索树

目录 1、认识二叉搜索树 2、实现一个二叉搜索树 2.1 成员变量 2.2 insert 方法 2.3 search 方法 2.4 remove 方法(重点) 3、二叉搜索树总结 1、认识二叉搜索树 从字面上来看,它只比二叉树多了搜索两个字,我们回想一下,如果要是在二…

TP4056国产替代DP4056 1A 锂离子电池充电器芯片

DP4056是一款单节锂离子电池恒流/恒压线性充电器,采用底部带散热片的SOP8封装以及简单的外部应用电路,非常适合便携式设备应用,适合USB电源和适配器电源工作,内部采用防倒充电路,不需要外部隔离二极管。热反馈可对充电电流进行自动调节,以便在…

一篇文章了解 StarRocks

前言 本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 正文 StarRocks 是新一代极速全场景 MPP 数据库。St…

php宝塔搭建部署实战响应式园林景观设计公司网站系统源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套php开发的响应式园林景观设计公司网站系统源码,感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码…

12月更新2022亮点总结 | Java on Visual Studio Code

大家好,一年的时间过得很快,我们已经来到了2023年。回顾2022年,我们的产品也经历了很多的迭代,在此之中,我们有几个亮点想与大家分享! 2022年的亮点 Spring Boot 插件的重大可视化体验升级 从今年年初开始…

基于springboot+mybatis+mysql+vue房屋租赁管理系统

基于springbootmybatismysqlvue房屋租赁管理系统一、系统介绍二、功能展示1.用户登陆2.管理员端主要功能2.房主角色端主要功能3.租客角色端主要功能三、其它系统一、系统介绍 功能说明: 普通用户角色: 寻找房源功能–提供了两种寻找房源的功能&#xff…

JS日期格式化——数字日期转中文日期(封装函数,dayjs时间格式化YYYY-MM-DD)

JS数字日期转中文日期往期相关文章场景复现封装函数(数字日期转中文日期)实际应用往期相关文章 文章内容文章链接JS数组对象——根据日期进行排序,按照时间进行升序或降序排序https://blog.csdn.net/XSL_HR/article/details/128579840?spm1…

10分钟完全理解golang context

当前go的各种源码中应该都可以看到context的使用,Context是golang 1.7的引入的核心结构,本质是为了处理go的并发控制问题。本文主要带大家深入理解context如何使用,为什么需要context和context设计原理。 并发控制问题 先来看下并发控制到底…

Unity 3D 使用高度图创建地形|| Unity 3D 使用笔刷绘制地形

Unity 3D 使用高度图创建地形 在 Unity 3D 中编辑地形有两种方法: 通过地形编辑器编辑地形。通过导入一幅预先渲染好的灰度图来快速地为地形建模。 地形上每个点的高度被表示为一个矩阵中的一列值。这个矩阵可以用一个被称为高度图(heightmap&#xff0…

Win11关闭Windows Defender实时保护,暂时关闭和永久关闭方法 | Win10怎么永久关闭Windows Defender实时保护

文章目录1. 按2. 暂时关闭Windows Defender实时保护3. 永久关闭实时保护3.1. 方法一:改组策略(Windows11实测可以)3.2. 方法二:改注册表(Windows11实测不行)1. 按 开启Windows Defender实时保护有时候会导…

HJ2 计算某字符出现次数

HJ2 计算某字符出现次数1 题目2 解法2.1 count_if 本题代码2.1.1 C STL非更易型算法--count_if介绍2.1.2 C中cin(),cin.get(),cin.getline(),getline()总结:2.2 一般做法3 【扩展】C STL--非更易型算法1 题目 题源链接 描述 写出一个程序,接受一个由字…