以太坊:针对以太坊实现的一种Sparse Merkle Tree

MerkleTree是一种二叉树,其最底层叶子节点存储数据以及数据的哈希,而每上一层节点则存储两个子节点的哈希,最后由根节点的哈希保证这个MerkleTree的任何节点数据的完整性。因为修改任何一个叶子节点的数据都会导致根节点的哈希变化,因此,比特币使用MerkleTree保证一个区块内的所有交易均不可修改:

这样就可以把树的高度从160层压缩到40层。

40层的高度对于从根开始遍历还是太长了,我们可以参考MPT,把相同前缀的节点合并,一个节点可以直接跨越几个层级挂在上层节点上,这样可以大大缩短节点路径。

例如,对于空树,我们插入第一个叶子节点0x215A1C45...,它应该直接挂在根节点表示的子树索引为2的位置上:

如果插入第二个叶子节点0x215AB162...,因为有共同的前缀215A,所以需要创建一个中间节点215A,再把两个叶子节点分别挂在索引为1和11的位置:

这样对于叶子节点来说,只需要很少几次查找就能定位。

完整的SMT实现参考源码可以从GitHub下载:

https://github.com/michaelliao/eth-smt

责任编辑:Kate

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

中币狗狗币:马斯克、Dogecoin 与推特的未来

2014年6月22日。自称为普通极客的杰克逊·帕尔默,在加利福尼亚州索诺玛赛道举行的纳斯卡赛车比赛中站在看台上。他是一名20多岁的澳大利亚人,他对赛车的兴趣为零.

以太坊价格区块链:公众对区块链的几大误解

区块链是一种创新的计算模式,数据和应用的安全不由中心化的第三方保障,而是由去中心化的计算机网络保障。由于区块链本身具有无需许可性,因此任何人都可以加入网络,并独立验证计算的真实性.

[0:0ms0-1:197ms