MerkleTree是一种二叉树,其最底层叶子节点存储数据以及数据的哈希,而每上一层节点则存储两个子节点的哈希,最后由根节点的哈希保证这个MerkleTree的任何节点数据的完整性。因为修改任何一个叶子节点的数据都会导致根节点的哈希变化,因此,比特币使用MerkleTree保证一个区块内的所有交易均不可修改:
这样就可以把树的高度从160层压缩到40层。
40层的高度对于从根开始遍历还是太长了,我们可以参考MPT,把相同前缀的节点合并,一个节点可以直接跨越几个层级挂在上层节点上,这样可以大大缩短节点路径。
例如,对于空树,我们插入第一个叶子节点0x215A1C45...,它应该直接挂在根节点表示的子树索引为2的位置上:
如果插入第二个叶子节点0x215AB162...,因为有共同的前缀215A,所以需要创建一个中间节点215A,再把两个叶子节点分别挂在索引为1和11的位置:
这样对于叶子节点来说,只需要很少几次查找就能定位。
完整的SMT实现参考源码可以从GitHub下载:
https://github.com/michaelliao/eth-smt
责任编辑:Kate
前几天,Solana生态上的DeFi项目Mango受到黑客闪电贷攻击,损失超过1亿美金。据悉,黑客是通过操作预言机的价格来掏空了Mango协议的流动性.
1900/1/1 0:00:00众所周知,对于圈外人来说,DeFi协议很难使用。包括助记词、公钥、私钥等这些概念,对于常人来说都很难理解,更别说我们的父母辈。 所以为了实现DeFi的大规模采用,我们需要做得更好.
1900/1/1 0:00:00本文将从意识形态的角度对web3项目进行“竖向”介绍,并阐述Web3的三大基础原则。前言现在已经有太多解释Web3的文章了,那么我为什么要写这一篇呢?因为作为一名程序员和哲学家,Web3对我来说.
1900/1/1 0:00:00从A到KZG,以太坊这台世界计算机的合并后路线图综合指南:Pro-Danksharding(EIP-4844)提议者-构建者分离Danksharding对去中心化可扩展性的深入探讨.
1900/1/1 0:00:00上篇热度比肩以太坊的Cosmos生态现在发展得怎么样了?我们说了Cosmos当前公链的Defi的三板斧,这篇来说说桥,NFT,衍生品,一些好玩的东西.
1900/1/1 0:00:00加密世界的多链并行的叙事还未停止——虽然很多Builder都在致力于构建高效率区块链底层协议,比如Solana、Avalanche,但是事实告诉我们,单个区块链的容量是有极限的.
1900/1/1 0:00:00