学习
实践
活动
专区
工具
TVP
写文章
  • 广告
    关闭

    【玩转 GPU】有奖征文

    精美礼品等你拿!

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

    二、哈希算法和Merkle Tree

    Merkle Tree默克尔树 Merkle Tree也叫哈希树,Merkle Tree 就是用来做完整性校验的,所谓的完整性校验,就是检查一下数据有没有损坏或者被恶意篡改。 Merkle Tree 哈希树 Merkle Tree 本身也算是一个哈希列表,只不过是在这个基础上又引入了树形结构,从而获得了更高的灵活性。    于是往上推,依然是一样的方式,可以得到数目更少的新一级哈希,到了树根的这个位置,这一代就剩下一个根哈希了,我们把它叫做 Merkle Root 。 Merkle Tree 是涉及到了数据结构中的3个概念:哈希、哈希列表、树。 总结   单个哈希不能担当大文件在分布式点对点网络上的校验工作,于是我们有了哈希列表的概念。 Merkle Tree 可以认为是哈希列表的一个变体,让哈希列表变得更加灵活高效,因为每次校验都可以单纯拿出树的一个分支来操作。 文章资料参考自nervos网站,中间代码举例为原创

    4100

    秒懂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.6K60

    Merkle tree在区块链中的应用

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

    40030

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

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

    37900

    使用默克尔(Merkle)树实现NFT白名单

    在这篇文章中,我将解释 Merkle Trees 如何在 NFT(ERC-721)背景下实现代币白名单的目的,它们是如何提供保证只能由预定参与者认领代币。 什么是 Merkle 树? Merkle 树必须是预先计算的,在这种情况下,可以让一个叶子节点代表我们白名单中的一个钱包地址。 Merkle 树的可视化和根哈希。 现在已经得出了一个完整的 Merkle 树,可以通过调用 Merkle 树对象的getRoot()方法(图 3)来获得根哈希值。 使用toString()方法在控制台打印 Merkle 树,为我们提供了一个很好的可视化的树的结构。 Merkle 树的巧妙之处在于,它不需要任何关于原始数据块的知识来验证一个节点是否属于我们的树。 网站实现 现在我们有了 Merkle 树对象和它的根哈希值,我们准备开始考虑如何让白名单用户申领他们的代币时向智能合约提供 Merkle 证明。

    47730

    基于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路径。

    1.1K80

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

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

    79510

    eos源码赏析(二十三):默克尔树在EOS中的应用(上)

    拟分为上下两篇,上篇主要分为以下内容: 默克尔树简介 eos中如何构建默克尔树 1、默克尔树简介 关于Merkle树的介绍博客园有位大牛写的很仔细,强烈建议进行阅读。 Tree可以看做Hash List的泛化(Hash List可以看作一种特殊的Merkle Tree,即树高为2的多叉Merkle Tree)。 以及set_trx_merkle对action以及transaction进行默克尔树的构建,继续来看: void set_action_merkle() { vector<digest_type ( move(trx_digests) ); } 不管是set_action_merkle还是set_trx_merkle最后都调用了Merkle方法,即先获取action或者transaction 的摘要信息,然后进行默克尔树的构建,我们来看Merkle函数,在Merkle.cpp中: digest_type merkle(vector<digest_type> ids) { if( 0 =

    34430

    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大小的树如下所示: ?

    52620

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注腾讯云开发者

      领取腾讯云代金券