在以太坊这个复杂的区块链生态系统中,数据以高效、安全且可验证的方式存储是至关重要的,为了实现这一目标,以太坊巧妙地运用了三种不同类型的数据结构树,它们共同构成了以太坊状态和交易数据的核心骨架,这“三棵树”分别是:状态树(State Tree)、交易树(Transactions Tree)和收据树(Receipts Tree),理解它们的工作原理和相互关系,是深入掌握以太坊运作机制的关键。

下面,我们将逐一介绍这三种树:

状态树(State Tree) - 以太坊的“世界账本”

状态树,有时也被称为世界状态树(World State Tree),是以太坊数据结构的基石,它记录了以太坊网络在任何一个给定时间点的全局状态,可以理解为整个以太坊的“世界账本”或“快照”。

  • :状态树存储了所有账户的信息,以太坊账户分为两类:
    • 外部账户(EOA, Externally Owned Account):由用户私钥控制的账户,用于发送交易、持有资产等,其状态包括余额(Balance)、nonce(交易计数器)等。
    • 合约账户(Contract Account):由代码和存储组成的账户,其状态包括代码(Code)和合约存储(Storage)。
  • 数据结构:它是一个随机配图