MPT树

1. 根据上一篇文章的顺序分别描述,merkle tree 以树状形式将交易两两hash,最终得到root hash:主要应用有SPV 轻客户端和ZCASH 的交易加密使用。

2. trie:字典树,由于以太坊是基于account的存储模式,所以需要存储account的地址,所以用到了字典树。


3. patricia-trie,改良版的trie,区别是路径压缩,没有子树的地方存放在一起。


3. secure MPT:安全MPT树,key如果是明文,那么可以构造一个key很长的MPT树,造成DDOS攻击,SMPT就是将key做hash,这样key的长度是固定的,且是非明文的



4. trie的节点类型包含fullnode shortnode  hashnode三种



5. key的编码类型分为 RAW HEX HEX-PREFIX三种






下面进入到MPT树的操作流程:

5.  MPT的创建



6.  MPT的 插入操作



6.  MPT 的删除节点操作



7. MPT的查找


8.  hasher的类图:


9. commit:计算hash的过程




10.  verify proof:轻客户端用来校验交易的操作


11. leveldb的存储格式


12.  TRIE的类图



13.  应用:

State  transaction  receipt

为什么需要三个树

     1.是否包含该交易:                                【transaction

     2.这个地址发出X类型事件的所有实例: 【receipt

     3.账户余额:                                          【state

     4.账户是否存在:                                    【state

     5.假如运行这笔交易,输出是什么 :      【state

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容