以太坊有三种树吗?——解密以太坊底层的三大默克尔树结构

博主:neragonerago 2026-10-01 02:30:22 2

在区块链的世界里,以太坊无疑是最具影响力的智能合约平台之一,很多人了解以太坊的账户、Gas、智能合约,但当你深入到以太坊的底层 数据结构时,会发现一个有趣的概念——“树”,以太坊真的有三种树吗?答案是:有的,以太坊的核心数据结构由三种默克尔树(Merkle Tree)构成,分别是状态树(State Trie)、交易树(Transaction Trie)和收据树(Receipt Trie),本文将带你深入了解这三种树的作用与设计精髓。

什么是默克尔帕特里夏树(MPT)?

在讲三种树之前,先要了解它们共同的基础结构,默克尔帕特里夏树(Merkle Patricia Trie,简称 MPT)。

这是一种融合了两种数据结构优点的混合体:

  • 默克尔树(Merkle Tree):通过哈希将大量数据组织成树状结构,任何一个数据的改动都会导致根哈希(Root Hash)发生变化,从而可以快速验证数据的完整性和一致性。
  • 帕特里夏树(Patricia Trie):一种压缩前缀树,能够高效地进行键值对的插入、删除和查询。

以太坊将两者结合,得到了一种既可验证、又高效检索的数据结构,上述三种树,本质上都是 MPT。

第一种树:状态树(State Trie)

状态树是三种树中最重要的一个,它记录了以太坊全球所有账户的当前状态。

  • 键(Key):账户地址经过 keccak256 哈希后的值
  • 值(Value):经过 RLP 编码的账户数据,包括:
    • Nonce:该账户已发送的交易数量
    • Balance:账户余额
    • storageRoot:存储树的根哈希(合约账户专属)
    • codeHash:合约代码的哈希

状态树的最大特点是可变——每执行一笔交易,相关账户的余额、Nonce 等都可能发生变化,状态树随之更新,并生成新的状态根(State Root),写入区块头中。

举个例子:当你向朋友转账 1 ETH 时,你和他账户的余额都会改变,状态树中对应的叶子节点被更新,整棵树的根哈希也随之改变。

第二种树:交易树(Transaction Trie)

交易树记录了一个区块内所包含的全部交易。

  • 键(Key):交易的序号(索引值,经 RLP 编码)
  • 值(Value):具体的交易数据,如发送者、接收者、金额、Gas 价格等

交易树有一个显著特点:不可变(Immutable),一旦区块被打包上链,其中的交易顺序和内容就永远固定下来,交易树也不会再发生任何变化。

通过交易树,轻节点(Light Node)只需下载区块头,就能借助默克尔证明验证某笔交易是否真的存在于某个区块中,而无需下载完整的区块链数据。

第三种树:收据树(Receipt Trie)

收据树记录了每笔交易执行后的“回执”信息。

  • 键(Key):交易的序号(与交易树对应)
  • 值(Value):交易执行的结果数据,主要包括:
    • 交易执行状态(成功或失败,即状态码 status)
    • 消耗的 Gas 数量
    • 交易过程中产生的日志(Logs)——这是智能合约触发事件(Event)的载体

收据树同样具有不可变性,它最重要的应用场景是日志查询:DEX(去中心化交易所)查询历史成交记录、钱包查询转账历史,背后依赖的正是收据树中的日志数据。

三种树如何协同工作?

在一个区块的生命周期中,这三种树密切配合:

  1. 矿工(或验证者)从交易池中取出交易,打包进区块;
  2. 逐笔执行交易,形成交易树;
  3. 执行过程中生成每笔交易的回执,形成收据树;
  4. 所有账户状态被更新,形成新的状态树;
  5. 三棵树的根哈希(stateRoot、transactionsRoot、receiptsRoot)全部写入区块头。

任何人都可以通过对比根哈希,来验证一份数据是否与全网共识一致——这正是去中心化网络中“无需信任、只需验证”的基石。

延伸思考:真的只有三种树吗?

如果算上每个合约账户自己的存储树(Storage Trie)——记录合约内部的所有变量状态——以太坊的树远不止三棵,不过业界习惯上所说的“三种树”,指的就是区块层面的状态树、交易树和收据树,存储树通常被视为状态树的延伸。

以太坊执行层客户端(如 Geth)目前也在用更先进的默克尔布什树(MPT 的替代方案)等方案探索更高效的存储结构,这是后话。

回到最初的问题:以太坊有三种树吗?答案是肯定的。状态树记录“世界现在是什么样”,交易树记录“这个区块做了什么”,收据树记录“做完的结果如何”,三棵树共同支撑起了以太坊的状态验证、交易证明和日志查询三大核心功能。

理解了这三种树,你不仅看懂了以太坊的数据底层,也更能体会区块链设计中“数据结构即信任机制”的精妙哲学。

The End

发布于:2026-10-01,除非注明,否则均为区块链社区- 欧亿APP下载原创文章,转载请注明出处。