MerkleTree是一种二叉树,其最底层叶子节点存储数据以及数据的哈希,而每上一层节点则存储两个子节点的哈希,最后由根节点的哈希保证这个MerkleTree的任何节点数据的完整性。因为修改任何一个叶子节点的数据都会导致根节点的哈希变化,因此,比特币使用MerkleTree保证一个区块内的所有交易均不可修改:
这样就可以把树的高度从160层压缩到40层。
40层的高度对于从根开始遍历还是太长了,我们可以参考MPT,把相同前缀的节点合并,一个节点可以直接跨越几个层级挂在上层节点上,这样可以大大缩短节点路径。
例如,对于空树,我们插入第一个叶子节点0x215A1C45...,它应该直接挂在根节点表示的子树索引为2的位置上:
如果插入第二个叶子节点0x215AB162...,因为有共同的前缀215A,所以需要创建一个中间节点215A,再把两个叶子节点分别挂在索引为1和11的位置:
这样对于叶子节点来说,只需要很少几次查找就能定位。
完整的SMT实现参考源码可以从GitHub下载:
https://github.com/michaelliao/eth-smt
责任编辑:Kate
2022年5月,以太坊Layer2开发商StarkWare宣布以80亿美元估值完成1亿美元D轮融资,这使得StarkWare成为一级市场上估值最高的项目之一.
来龙去脉 美国证券交易委员会正在对无聊猿游艇俱乐部的母公司进行调查,会对NFT的未来产生怎样的影响?根据彭博社报道.
在越来越快的行业周期循环中,我们见证了一批又一批新老玩家的登场与退场。依托于上一波牛市的热度和以太坊生态溢出的效应,那些埋伏了一轮熊市的公链新秀得以崭露头角,并且作为市场不断膨胀预期的「落脚点」.
牛市优化叙事,熊市优化基本面。虽然这种说法过于笼统,但它是参与者在不同市场环境中如何思考和反应的基本逻辑.
据MarsBit统计,10月15日至10月21日期间,加密市场共发生29笔投融资事件,其中基础设施领域5笔、DeFi领域4笔、链游和NFT领域5笔、Web3领域5笔.
现在每个项目都在进行空投,但许多人将一无所获。为什么?因为项目正在不断改进他们的方法,以排除Sybilfarmers。如何增加未来所有空投的机会?本文总结了5个简单步骤.