以太坊采用状态账户模型(State-based Account Model),而非比特币的 UTXO 模型。本文将深入剖析账户的分类、数据结构、状态存储方式,以及底层 Merkle Patricia Trie 的工作原理,为理解智能合约的执行逻辑打下基础。

✦ 1. 为什么以太坊不用 UTXO?

比特币使用的是 UTXO(Unspent Transaction Output)模型

但以太坊的目标是成为通用计算平台,需要能够:

因此,以太坊选择了更像“账户账本”的状态账户模型(每个账户有状态,状态可变)。


✦ 2. 以太坊账户分类:EOA vs 合约账户

类型 名称 控制方式 是否含代码 是否可主动发交易
EOA 外部账户(Externally Owned Account) 私钥签名控制 ✅ 可以发起交易
CA 合约账户(Contract Account) 被合约逻辑调用 ❌ 只能被动响应调用

每个账户都由一个 20 字节的地址标识,其生成方式如下

📌 合约账户无法主动发交易,但可以在被调用时再发起内部调用。