03-ETH-状态树
状态
数据结构
- addr –>state
余额证明
- 所有账户的哈希表。
- 构造默克尔树。
- 余额只是一种状态。
- 根据哈希值流程验证即可证明,因为根哈希是一定的在某个时间。
哈希表
构造默克尔树
不排序
- 默克尔书不唯一。
排序
- 代价太大,新建账户的代价太大。
trie(检索树)
- 输入不管,结果相同。
- 更新局部性比较强。
- 存储有点浪费。
PT压缩检索树
- 访问效率增加。
- 新增加点,节点可能需要扩展。
- 数据稀疏的时候压缩效果好。
- 以太坊地址足够稀疏,160位。
MPT(默克尔压缩检索树)
- 哈希代替指针。
- 进行压缩。
- 可以证明账户不存在性。
MMPT(修改的默克尔压缩检索树)
- 以哈希值存储。
- 根哈希的值存储在块头节点。
- 合约账户的信息存储也是小的MMPT。
- 大部分的节点时共享的。
状态树的历史记录的保存
- 可能需要状态退回。
- 维护历史记录。
- 为了支持回滚。
区块头数据结构
- root:账户状态树的根哈希。
- TxHash:
- ReciptHash:
块身的结构
RLP(Recursive Length Profix)
- 序列化value的值。
- 只支持字符数组。
03-ETH-状态树
https://prelearn-code.github.io/2024/07/25/BlockChain/ETH/03-ETH-状态树/