03-ETH-状态树

prelearn Lv4

状态

数据结构

  • addr –>state

余额证明

  • 所有账户的哈希表。
  • 构造默克尔树。
  • 余额只是一种状态。
  • 根据哈希值流程验证即可证明,因为根哈希是一定的在某个时间。

哈希表

构造默克尔树

不排序

  • 默克尔书不唯一。

排序

  • 代价太大,新建账户的代价太大。

trie(检索树)

  • 输入不管,结果相同。
  • 更新局部性比较强。
  • 存储有点浪费。

PT压缩检索树

  • 访问效率增加。
  • 新增加点,节点可能需要扩展。
  • 数据稀疏的时候压缩效果好。
  • 以太坊地址足够稀疏,160位。

MPT(默克尔压缩检索树)

  • 哈希代替指针。
  • 进行压缩。
  • 可以证明账户不存在性。

MMPT(修改的默克尔压缩检索树)

  • 以哈希值存储。
  • 根哈希的值存储在块头节点。
  • 合约账户的信息存储也是小的MMPT。
  • 大部分的节点时共享的。

状态树的历史记录的保存

  • 可能需要状态退回。
  • 维护历史记录。
  • 为了支持回滚。

区块头数据结构

  • root:账户状态树的根哈希。
  • TxHash:
  • ReciptHash:

块身的结构

RLP(Recursive Length Profix)

  • 序列化value的值。
  • 只支持字符数组。
  • 标题: 03-ETH-状态树
  • 作者: prelearn
  • 创建于 : 2024-07-25 23:15:20
  • 更新于 : 2025-11-20 10:21:24
  • 链接: https://prelearn-code.github.io/2024/07/25/BlockChain/ETH/03-ETH-状态树/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。