coperlm

coperlm

github

區塊鏈中的樹

Merkle 樹#

問題:對一個數組求哈希(n 個元素)

傳統方案:將每個數據拼接然後哈希,時空複雜度都是 $O (n)$

使用 merkle 樹:只需計算路線上的哈希,時空複雜度都是 $O (logn)$;代價是總存儲空間變大(需要存哈希樹),但是依舊是 $O (n)$

Trie 樹#

根據前綴進行索引,適用於前綴相似的數據存儲

深度最劣為最長字符串的長度(也就是時間複雜度),但不一定是二叉樹

適用於前綴字典的查找

Merkle Patricia 樹#

把 Merkle 樹的二叉變為 16 叉

父節點記錄 16 個叉的指針,再加一個 value 字段表示自己的數值

這裡的指針,就是子節點的哈希值,存在一個key-value DB裡協助反向查找

同時負責哈希和索引兩個功能

16 叉減少深度 -> 減少數據庫的請求次數

Rollup 的 State Tree#

對 map 和 value 進行分離

Verkle Tree#

基於 KZG

依此構造 16 叉樹

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。