展开

关键词

Merkle Patricia Trie(翻译)

原文:https://github.com/ethereum/wiki/wiki/Patricia-Tree 改良的 Merkle Patricia Trie 规范(又称为 Merkle Patricia Tree) Merkle Patricia Trie(下简称 MPT 树,Trie 又称前缀树或字典树)尝试提供一种加密认证的数据结构,其可用于存储任意类型的的键值对。 主要技术指标:Merkle Patricia Trie 但是,radix 树有一个较大的缺点:存储效率很低。

43740

Sparse Merkle Tree解析

在libra中关于Sparse Merkle Tree有两种结构,一种在scratchpad中用于交易执行时构造的快照信息,另外是用于用户提供给AC等模块查询账户信息的。 SMT(Sparse Merkle Tree)的作用 libra提供了账户体系,并且他宣称是一个带版本的数据库,那么在实现libra的时候,就需要回答如下几个问题1. 如何存储账户。2. 同时SMT带有merkle proof功能,因此兼顾了proof。 ?

75620
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    秒懂Merkle Tree 与SPV

    Merkle tree(默克尔树)是一种数据结构,通常是一个二叉树(也有可能是多叉树),它以特定的方式逐层向上计算,直到顶部。Merkle tree最为常见和最简单的形成是二叉默克尔树。 ? 比特币的Merkle tree只存哈希值,没有任何实质的内容,实质的内容存在尾部的每笔交易里。 比特币为什么要用Merkle tree呢? 比特币的Merkle tree就是用来支持SPV功能。 3)节点从区块链获取待验证支付对应的Merkle tree 哈希认证路径。 4)根据认证路径,计算Merkle tree的根哈希值,将计算结果与本地区块头中的Merkle tree的根哈希值相比较。 总的来说,Merkle tree 在区块链的应用实现了简单快速验证的功能。 --- END ---

    1.2K60

    Merkle-CRDTs:Merkle-DAG与CRDTs相遇(CS.NI)

    我们研究Merkle-DAG作为无冲突复制数据类型(CRDT)的传输和持久层,创造了术语Merkle-CRDT,并概述了涉及的不同概念,属性,优点和局限性。 我们展示了Merkle-DAG如何充当逻辑时钟,从而使Merkle-CRDT能够大大简化具有弱消息层保证和大量副本的系统中收敛数据类型的设计和实现。 Merkle-CRDT可以利用在其下运行的高度可扩展的分布式技术(例如DHT和PubSub算法)来利用内容寻址的安全性和重复数据删除属性。 原文标题:Merkle-CRDTs: Merkle-DAGs meet CRDTs 原文:We study Merkle-DAGs as a transport and persistence layer We show how Merkle-DAGs can act as logical clocks giving Merkle-CRDTs the potential to greatly simplify

    34330

    【董天一】IPFS: Merkle DAG数据结构

    今天带大家来深入探索一下IPFS的核心数据结构Merkle DAG 什么是 Merkle DAG? Merkle DAG是IPFS系统的核心概念之一,当然Merkle DAG并不是IPFS团队发明的,它来来自于Git数据结构,ipfs团队进行了改造(这一点ipfs团队一直是一个很努力的团队,并不是直接拿来使用 Merkle DAG的全称是 Merkle directed acyclic graph(默克有向无环图)。 它是在Merkle tree基础上构建的,Merkle tree是由美国计算机学家merkle于1979年申请的专利。 Merkle DAG跟Merkle tree很相似,但不完全一样,比如:Merkle DAG不需要进行树的平衡操作,非叶子节点允许包含数据等。 ?

    53050

    Merkle tree在区块链中的应用

    上篇博文我们转载了一篇《Merkle Tree(默克尔树)算法解析》,那么大家是不是会有疑问,学习这个算法之后,我们改怎么去应用,区块链中又是如何应用的? 今天这篇博客就以Merkle tree在区块链中的具体用法为例简单说明一下。 要了解Merkle tree的使用,先要了解一下区块链中每个区块的数据结构,下面以比特币的数据结构为例说明。 如下图,数据区块由区块头和区块体两部分组成: 从图中我们可以看出Merkle树被应用在了交易的存储上。 每笔交易都会生成一个hash值,然后不同的hash值向上继续做hash运算,最终生成唯一的Merkle根。并把这个Merkle根放入数据区块的区块头。 利用Merkle树的特性,以确保每一比交易都不可伪造和没有重复交易。 下面,再从整体上认识一下Merkle树在区块中的位置:

    6230

    基于Merkle-Patricia树的实时交易审计

    在这篇文章中,我们将介绍区块链实现中常见的一种数据结构:Merkle-Patricia树, 学习其索引机制并了解以太坊是如何利用Merkle-Patricia树来实现交易的实时审计。 1、Merkle-Patricia树 使用 Merkle 树,我们创建一个哈希树,根哈希提供树内数据的整体一致性。它的核心优点是,我们 可以通过分析子树轻松检查数据是否在树内。 image.png 在Merkle-Patricia树中,节点与密钥关联,这被定义为三元数字树。这与 Merkle 树不同,因为每个节点 的实际密钥不存储,但它在树中的位置用于定义密钥。 2、Merkle-Patricia树在以太坊中的应用 在以太坊区块链中,我们使用修改后的Merkle-Patricia树(如黄皮书所定义的)来创建包含所有交易的 trie。 ---- 原文链接:基于Merkle-Patricia树的实时审计 - 汇智网

    16500

    利用Merkle树低成本实现可扩展支付池

    Merkle 树方法的优点在于,我们只需要向支付池中写入 32 字节的 Merkle 根,并且可以存在 Merkle 树中的收款人数量没有上限。 无论 Merkle 树代表多少收款人,我们都只需要为树写一个 32 字节的 Merkle 根:对于无数收款人, gas 费则可以分计。 Merkle根 我们将关心的数据放在 Merkle 树的叶节点中。 Merkle 树支付池 我们如何在支付池中利用 Merkle 树? 这种方法利用了需要链上和链下机制的方法。 列表 然后,我们可以从该列表构建 Merkle 树,合约所有者可以将 Merkle 根提交到支付池合约。

    62130

    本体技术视点 | 关于Merkle Proof问题的一点思考

    这一期,我们来说说 Merkle Patricia Tree。 Merkle Patricia Tree(又称为 Merkle Patricia Trie)是一种经过改良、融合了 Merkle tree 和前缀树两种树结构优点的数据结构,是 Ethereum 中用来组织管理账户数据 图片来源于网络 本期要与伙伴们分享的是本体技术人员在 Ethereum 平台上进行 Merkle Proof 问题分析的实践。 下面是计算 Ethereum Merkle Tree 的入口: ? 在最后处理 value 时: ? 在计算 Merkle Tree 时,对叶子节点上的 value,把最左端的0去掉。 这样才能通过 Merkle Proof 的验证。

    1.2K10

    基于Java语言构建区块链(六)—— 交易(Merkle Tree)

    Tree Merkle Tree(默克尔树) 是这篇文章中我们需要重点讨论的一个机制。 这就是 Merkle Tree 发挥作用的地方了。 比特币中所使用的Merkle Tree是为了获得交易的Hash值,随后这个已经被Pow(工作量证明)系统认可了的Hash值会被保存到区块头中。 虽然这是一个用于获取区块交易唯一表示的一个不错的途径,但是它不具有到 Merkle Tree的优点。 来看一下Merkle Tree的结构: [merkle-tree-diagram.png] 每一个区块都会构建一个Merkle Tree,它从最底部的叶子节点开始往上构建,每一个交易的Hash就是一个叶子节点 Merkle树的好处是节点可以在不下载整个块的情况下验证某笔交易的合法性。 为此,只需要交易Hash,Merkle树根Hash和Merkle路径。

    93880

    以太坊源码分析---go-ethereum之MPT(Merkle-Patricia Trie)

    MPT(Merkle-Patricia Trie)其实就是一个数据结构,在以太坊中用于存储用户账户的状态及其变更、交易信息、交易的收据信息。 要讲MPT,就要讲讲MPT是如何演变来的。 Trie ? Merkle tree ? 图片来自https://en.wikipedia.org/wiki/Merkle_tree Merkle Tree,也叫哈希树 (hash tree)。 Merkle Patricia Trie 那么MPT呢,是以太坊中,自定义的数据结构。综合了Merkle Tree与Patricia Trie两个的特点。 那么看源码先吧。

    80420

    本体技术视点 | 神奇的Merkle树是如何实现存储层优化的?

    在 Ontology 中,Merkle 树也有不少应用场景,其中之一就是将每个区块的交易根作为叶子节点,构造出一个区块 Merkle 树,用于提供交易上链的存在性证明。 02 Merkle 树数据结构的存储 在大多数区块链中,Merkle 树一般用在单个区块里,由多个交易的 hash 值作为叶子节点构成。 而在 Ontology 方案中,由于区块 Merkle 树是随着区块高度的增长进行动态增量增长的结构,因此要更加复杂。这就涉及到如何存储 Merkle 树的问题。 04 Merkle 树的压缩表示 由于恒定节点不变的特性,也就是说其子节点对后续 Merkle 树更新不会有贡献,因此对于那些只需要计算最新的 Merkle 根 hash 值,而不需提供构造证明服务的节点 Ontology 在实现区块 Merkle 树的过程中,只将区块 Merkle 树的关键节点进行存储。

    44910

    密码学系列之:Merkle–Damgård结构和长度延展攻击

    简介 Merkle–Damgård结构简称为MD结构,主要用在hash算法中抵御碰撞攻击。这个结构是一些优秀的hash算法,比如MD5,SHA-1和SHA-2的基础。 MD结构 MD结构是Ralph Merkle在1979年的博士论文中描述的。 因为Ralph Merkle 和 Ivan Damgård 分别证明了这个结构的合理性,所以这个结构被称为Merkle–Damgård结构。 接下来,我们看下MD结构是怎么工作的。

    40020

    公钥加密、加密Hash散列、Merkle树……区块链的密码学你知多少?

    Merkle 树 上面的图是区块链的一种简化版本,它省略了一些重要信息。图中有三个向上的箭头,表示每个区块的交易都被储存在一个Merkle根中,而这就是Merkle树的根节点。 Merkle根仅仅是Merkle树的根(顶)节点,Merkle根表示其左右子树组合的Hash散列输出。下图是一棵有着4个叶子节点的Merkle树。 ? 那么,为什么Merkle树对区块链技术来说是十分重要呢? 使用Merkle根并且应用加密Hash散列函数的性质,可以快速判断给定区块中的交易是否已被篡改,并识别正在被篡改的特定交易。 如果已确认区块中的单个交易已经被更改,那么Merkle根最终将与“正确的” Merkle根截然不同,并且改动是十分显而易见的。 如果不是在每个区块中包含一个Merkle根,区块链技术是不可能实现这种效率水平的。 下图表示的是在区块链中有4笔交易的Merkle树 (在此图中,Tx_Root表示Merkle根) ?

    36110

    区块链的java实现

    Merkle Tree 是一种数据结构,用于验证在计算机之间和之间存储,处理和传输的任何类型的数据。 目前,Merkle树的主要用途是确保从对等网络中接收的数据块未受损和未改变,和检查其他对等网络没有撒谎发送假数据块。 ? Merkle Tree应用举例 比特币 Git Amazon’s Dynamo Gassandra 比特币中的应用 比特币中每个块中都包含了所有交易的集合签名,这个签名就是用Merkle tree实现的 Merkle树一个很重要的用处是检查块中是否包含指定的交易,Merkle树是通过递归哈希节点对来构造的,直到只有一个哈希。 ? Merkle tree 代码实现 哈希树的跟节点称为Merkle根,Merkle树可以仅用log2(N)的时间复杂度检查任何一个数据元素是否包含在树中: package test; import java.security.MessageDigest

    1.4K101

    Libra教程之:数据结构和存储

    验证的数据结构是通过Merkle树来实现的。如果大家熟悉其他的区块链的话,大家可能知道Merkle树由于其特殊的结构,被用在大多数区块链中。 下面我们来分别讨论。 (1)用Merkle树来表示的不断累加的账本历史。而Merkle树的根hash值是通过(2)验证者的签名来得到的。 交易过程中的事件Event(5),也是以Merkle树来表示。 还有交易i执行过后的账本状态(6),是用Sparse Merkle树来表示的,其中它的叶子节点是账户信息。 在Libra中,我们使用增量的Merkle tree数据结构,这对于构建效率非常有帮助,因为我们只需要向老的Merkle tree中添加新的交易即可。 Si也是用Merkle tree来表示的,既然key是256bit,那么整个Merkle tree可以表示为一个2256大小的树如下所示: ?

    38420

    相关产品

    • 云服务器

      云服务器

      云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券