以太坊中的树🌲

205 阅读2分钟

以太坊中的数据结构

  • 以太坊使用了Merkle Patircia树🌲
    • 可以简称为MPT,用来组织管理用户的账户状态、交易信息等数据
    • MPT就是一种加密认证的数据结构,本身融合的MerkleTrie树两种复杂数据结构树

1.Merkle

  • Merkle树可以认为是一种二叉树或者可以认为是一种多茶树
    • 其最下面的叶节点包含基础数据结构
    • 每个中间节点是子节点的散列
    • 根节点是它的子节点的散列

创建Merkle树的目的就是允许区块的数据可以零散的传送

  • 节点可以从一个节点下载区块头
    • 从另外的源下载相关树🌲的其他部分,仍然可以确认数据的正确性✅
  • Merkle树的特点
    • 每个数据集对应一个唯一合法的根散列值
    • 极容易更新,添加或删除树节点,以及生成新的根散列值
    • 不改变根的散列值得话就没办法修改数据的任何部分,所以最重要的是如果根散列值包括在签名的有效区块中,就可以保证这棵树的正确性

image.png

Trie树🌲

  • Trie树🌲其实就是我们常见的字典树
    • 它有很多有点,它本身就是一个key永远对应一个value
    • 如果两个value有着相同的前缀key,他们的相同前缀的长度越长的话,那么肯定两个value在树种的位置越靠近
    • 如果书中没有其他的key与它有相同的前缀的时候,那么在遍历key,需要遍历相当多的数据节点,也就是不平衡的树 image.png