MerkleTree是一种二叉树,其最底层叶子节点存储数据以及数据的哈希,而每上一层节点则存储两个子节点的哈希,最后由根节点的哈希保证这个MerkleTree的任何节点数据的完整性。因为修改任何一个叶子节点的数据都会导致根节点的哈希变化,因此,比特币使用MerkleTree保证一个区块内的所有交易均不可修改:
这样就可以把树的高度从160层压缩到40层。
40层的高度对于从根开始遍历还是太长了,我们可以参考MPT,把相同前缀的节点合并,一个节点可以直接跨越几个层级挂在上层节点上,这样可以大大缩短节点路径。
例如,对于空树,我们插入第一个叶子节点0x215A1C45...,它应该直接挂在根节点表示的子树索引为2的位置上:
如果插入第二个叶子节点0x215AB162...,因为有共同的前缀215A,所以需要创建一个中间节点215A,再把两个叶子节点分别挂在索引为1和11的位置:
这样对于叶子节点来说,只需要很少几次查找就能定位。
完整的SMT实现参考源码可以从GitHub下载:
https://github.com/michaelliao/eth-smt
责任编辑:Kate
标签:ERKTREELETETRTERK币trees币在哪买trustwallet下载钱包官网labradorretrieverlnu
代币设计的创新落后于更大的生态系统;研究人员将重点一直放在扩展、智能合约优化和其他更多技术主题上,而代币设计似乎是事后才想到的.
1900/1/1 0:00:00加密世界沉浮5年,总结下来最重要的6个思维模型,排名不分先后。1)概率---随机性奖励你以为这波机会是一旦错过,就会后悔一辈子的吗?或许你也相信一种论调叫做,一个人的成功,只需要把握几次大机会,
1900/1/1 0:00:00@StarkWareLtd蓬勃发展的StarkNet生态系统中已经有105个项目正在建设中。我们很好奇他们是什么类型的项目,所以我们做了一些调查.
1900/1/1 0:00:00数据治理是当今世界的热门话题之一,这已不是什么新鲜事。随着有大量数据每天被生成和分享,平台/企业/组织对于跟踪所有数据并确保正确使用数据的需求越来越大.
1900/1/1 0:00:00“thebirdisfreed”这是马斯克刚刚最新发布的推文,这也意味着拉扯半年之久的推特收购案已基本落下帷幕.
1900/1/1 0:00:00Celestia在L1区块链设计中是独一无二的,因为它没有智能合约功能。相反,它选择了尽可能简单的设计——消除了执行流程。这个想法是其他区块链,如Rollup,可以成为用户部署智能合约的地方.
1900/1/1 0:00:00