以太坊作为全球第二大区块链平台,其核心架构中隐藏着一种精妙的数据结构设计——树(Tree),树结构不仅保障了数据的高效存储与检索,更以“默克尔化”(Merkle化)特性奠定了区块链的安全性、可验证性和去中心化基础,在以太坊的执行层(Execution Layer)中,最关键的树结构共有三种:Merkle Patricia树(MPT)、状态树(State Tree) 和 交易树(Transaction Tree),它们各自承担着不同职责,共同构建了以太坊账户模型、交易执行和数据一致性的核心框架。
Merkle Patricia树(MPT):以太坊的“数据索引引擎”
Merkle Patricia树(简称MPT)是以太坊对传统Merkle树与Patricia Trie(前缀树)的优化结合,是以太坊中最核心的树结构,也是状态树和交易树的底层技术基础。
-
核心特点:
- Merkle特性:通过哈希计算将所有数据节点串联成树形结构,根节点(Root Hash)唯一代表整棵树的数据状态,任何数据的修改都会导致根哈希变化,这使得轻节点(轻客户端)能仅通过根哈希快速验证数据的完整性与一致性,无需下载全部数据。
- Patricia Trie优化:相比传统Merkle树,MPT通过共享公共前缀减少了节点数量,降低了存储和计算开销,多个相似地址的账户状态会共享部分路径节点,大幅提升数据检索效率。
-
核心作用:
MPT是以太坊实现“状态同步”和“轻客户端验证”的关键,无论是状态树还是交易树,其数据都以MPT的形式组织,最终生成各自的根哈希,这些根哈希又会进一步打包进区块头,成为区块数据不可篡改的“指纹”。
状态树(State Tree):记录全球账户状态的“账本”
状态树是以太坊中存储所有账户状态的Merkle Patricia树,是理解以太坊账户模型的核心。
-
:
以太坊采用“账户模型”(而非比特币的UTXO模型),每个账户(包括外部账户EOA和合约账户)的状态都存储在状态树中,具体包括: