1. 根據(jù)上一篇文章的順序分別描述,merkle tree 以樹狀形式將交易兩兩hash,最終得到root hash:主要應(yīng)用有SPV 輕客戶端和ZCASH 的交易加密使用。

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

3. patricia-trie,改良版的trie,區(qū)別是路徑壓縮,沒有子樹的地方存放在一起。

3. secure MPT:安全MPT樹,key如果是明文,那么可以構(gòu)造一個key很長的MPT樹,造成DDOS攻擊,SMPT就是將key做hash,這樣key的長度是固定的,且是非明文的

4. trie的節(jié)點類型包含fullnode shortnode ?hashnode三種


5. key的編碼類型分為 RAW HEX HEX-PREFIX三種




下面進入到MPT樹的操作流程:
5. ?MPT的創(chuàng)建

6. ?MPT的 插入操作

6. ?MPT 的刪除節(jié)點操作

7. MPT的查找

8. ?hasher的類圖:

9. commit:計算hash的過程


10. ?verify proof:輕客戶端用來校驗交易的操作

11. leveldb的存儲格式

12. ?TRIE的類圖

13. ?應(yīng)用:
State? transaction? receipt
為什么需要三個樹:
?? ? 1.是否包含該交易:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【transaction】
?? ? 2.這個地址發(fā)出X類型事件的所有實例: 【receipt】
?? ? 3.賬戶余額:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【state】
?? ? 4.賬戶是否存在:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【state】
?? ? 5.假如運行這筆交易,輸出是什么 :? ? ? 【state】