在区块链的世界里,以太坊以其智能合约功能和图灵完备性而著称,支撑其复杂运行的核心,除了共识机制和虚拟机,还有一套精妙且高效的数据结构——三棵树(Three Trees of Ethereum),也常被称为“状态树、交易树、收据树”,这三棵默克尔树共同构成了以太坊世界状态和交易历史的可信、可验证的基石,确保了数据的完整性、一致性和高效查询。

三棵树的概览:以太坊的数据“账本”

想象一下,以太坊的状态就像一个巨大的分布式数据库,记录了网络上所有账户的余额、合约代码、存储数据等信息,而每一笔交易,都会可能改变这个状态,三棵树的作用就是:

  1. 状态树(State Tree / World State Tree):记录以太坊在某个特定区块被创建后,整个网络的全局状态,包括所有外部账户(EOA)的 nonce、balance、codeHash,以及所有合约账户的 storageRoot、codeHash 等。
  2. 交易树(Transactions Tree):记录某个特定区块内包含的所有交易列表,每一笔交易都有其唯一的内容,这些内容被组织成一颗默克尔树。
  3. 收据树(Receipts Tree):记录某个特定区块内所有交易执行后产生的收据(Receipt),收据包含了交易的执行结果,例如是否成功、使用了多少 gas、日志(Log)等。随机配图