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

你可能感兴趣的:(MPT树)