MPT樹

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容