- 小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
以太坊中的数据结构
- 以太坊使用了
Merkle Patircia树🌲- 可以简称为
MPT,用来组织管理用户的账户状态、交易信息等数据 MPT就是一种加密认证的数据结构,本身融合的Merkle和Trie树两种复杂数据结构树
- 可以简称为
1.Merkle树
Merkle树可以认为是一种二叉树或者可以认为是一种多茶树- 其最下面的叶节点包含基础数据结构
- 每个中间节点是子节点的散列
- 根节点是它的子节点的散列
创建
Merkle树的目的就是允许区块的数据可以零散的传送
- 节点可以从一个节点下载区块头
- 从另外的源下载相关树🌲的其他部分,仍然可以确认数据的正确性✅
Merkle树的特点- 每个数据集对应一个唯一合法的根散列值
- 极容易更新,添加或删除树节点,以及生成新的根散列值
- 不改变根的散列值得话就没办法修改数据的任何部分,所以最重要的是如果根散列值包括在签名的有效区块中,就可以保证这棵树的正确性
Trie树🌲
Trie树🌲其实就是我们常见的字典树- 它有很多有点,它本身就是一个
key永远对应一个value - 如果两个
value有着相同的前缀key,他们的相同前缀的长度越长的话,那么肯定两个value在树种的位置越靠近 - 如果书中没有其他的
key与它有相同的前缀的时候,那么在遍历key,需要遍历相当多的数据节点,也就是不平衡的树
- 它有很多有点,它本身就是一个