区块链中的树
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叉树
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 coperlm's Blog!
评论
WalineDisqus