一 传统merkle树缺陷
我的这篇博客merkle tree 分析 详细解释了merkle树的原理和作用,然而传统的merkle树有他的局限性
以下对Vitalik blog原文的翻译可以很好的阐述
传统merkle树的一个特别的限制是,它们虽然可以证明包含此交易,但无法证明任何当前的状态(例如:数字资产的持有,名称注册,金融合约的状态等)。你现在拥有了多少个比特币?一个比特币轻客户端,可以使用一种涉及查询多个节点的协议,并相信其中至少会有一个节点会通知你关于你的地址中任何特定的交易支出,而这可以让你实现更多的功能。但对于其他更为复杂的应用而言,这些远远是不够的。一笔交易影响的确切性质(precisenature),可以取决于此前的几笔交易,而这些交易本身则依赖于更为前面的交易,所以最终你可以验证整个链上的每一笔交易。为了解决这个问题,以太坊的梅克尔树的概念,会更进一步。
二 以太坊的改进
1、先说前缀树
MPT中的Patricia即patricia tree 前缀树,也叫trie或者字典树,刷过oj的同学都体验过这个数据结构的查找速度有多快,甚至超过hash
传统的前缀树如下:
上面这棵trie包含这样一组单词,inn, int, at, age, adv, ant 每个节点存储的是字符串中的谋和字符,每个从根到某个节点的路径(不一定到叶子节点)代表了一个存储的字符串,如果我想查找adv是否存在,只需要走红圈这样的路径即可
上图是一个简略视图,实际上trie每个节点

2万+

被折叠的 条评论
为什么被折叠?



