以太坊中的账本是什么?一文读懂区块链世界的数字记账本

博主:neragonerago 2026-10-17 17:01:53 2

从账本说起

账本(Ledger)并不是一个新鲜概念,从古代的竹简记账,到企业的复式记账法,再到我们今天的银行账户系统,账本的核心作用始终未变:记录谁拥有什么,以及资产如何在人与人之间流转。

传统账本由某个中心化机构(银行、公司、政府)保管和维护,我们必须信任记账者不会作恶、不会篡改,而以太坊的出现,彻底改变了这一范式——它构建了一个全球共享、无需信任第三方、任何人都可以验证的分布式账本。

以太坊中的账本究竟是什么?它是如何工作的?本文将带你一探究竟。

以太坊账本的本质:一台全球状态机

很多人以为以太坊的账本只是“记录交易流水”,这个理解并不完整。

更准确地说,以太坊是一个基于交易的状态机(Transaction-based State Machine):

  • 状态(State):某一时刻,所有账户的余额、合约数据等信息的完整快照;
  • 交易(Transaction):驱动状态发生变化的唯一途径;
  • 账本(Ledger):就是由创世区块开始,所有交易历史以及由此推导出的全部状态的集合。

可以把以太坊想象成一个巨大的、全球同步的Excel表格,记录着数千万个账户的实时数据,每一笔交易都会修改这张表格,而所有的修改历史都被永久地刻写在区块链上,不可篡改。

账户模型:以太坊账本的基本单元

与比特币采用的UTXO(未花费交易输出)模型不同,以太坊采用的是更直观的账户余额模型(Account-Based Model),这与我们熟悉的银行账户非常相似。

以太坊账本中,每个账户由一个20字节的地址标识,账户中包含四个核心字段:

字段 含义
nonce 交易计数器,记录该账户已发送的交易数量(防止重放攻击)
balance 账户余额,以Wei为单位(1 ETH = 10¹⁸ Wei)
storageRoot 合约存储的根哈希(仅合约账户使用)
codeHash 合约代码的哈希(仅合约账户使用)

两种账户类型:账本的两大主角

外部账户(EOA,Externally Owned Account)

  • 由私钥控制,私钥掌握在用户手中;
  • 可以主动发起交易,转账ETH、触发合约;
  • 创建免费,任何人随时可以生成。

合约账户(Contract Account)

  • 由智能合约代码控制,没有私钥;
  • 不能主动发起交易,只能在被调用时执行;
  • 部署合约需要消耗Gas费用;
  • 拥有自己独立的存储空间,这也是账本数据的重要来源。

值得注意的是:以太坊账本记录的不仅仅是ETH余额,还包括所有智能合约的存储数据,这意味着DApp的代币余额、NFT归属权、DeFi质押记录等,统统都写在以太坊这本“大账本”上。

世界状态:账本的全局快照

世界状态(World State)是以太坊账本中最核心的概念之一。

它是以太坊网络在某一区块高度时,所有账户状态的完整映射——可以理解为一个巨大的键值对数据库:

地址 (160-bit) → 账户状态 (nonce, balance, storageRoot, codeHash)

世界状态并不直接存储在区块链上,而是存储在一种特殊的数据结构中——默克尔帕特里夏树(Merkle Patricia Trie,MPT)。

这种数据结构的精妙之处在于:

  1. 快速验证:通过状态根哈希(State Root),任何节点可以轻量级地验证某个账户的状态,而无需下载整个账本;
  2. 防篡改:任何一个账户数据的细微改动,都会导致根哈希的完全变化,篡改无处遁形;
  3. 高效更新:树状结构让状态的增删改查非常高效。

每个区块头中都记录了当时的世界状态根哈希,将“账本快照”锚定在区块链上。

交易:驱动账本变化的唯一引擎

以太坊账本的每一次状态变化,都源于一笔交易,其流程大致如下:

  1. 用户签名并广播一笔交易(如转账1 ETH);
  2. 验证者将交易打包进区块;
  3. 以太坊虚拟机(EVM)执行该交易;
  4. 相关账户的状态被更新(发送方余额减少,接收方余额增加);
  5. 新的世界状态根哈希被写入区块头;
  6. 全网节点同步新区块,本地账本状态随之更新。

关键特性:交易执行是确定性的——从创世区块开始,任何人重放全部历史交易,都能得出完全一致的当前状态,这正是账本可验证、可信任的基石。

以太坊账本 vs 传统账本

维度 传统账本(如银行) 以太坊账本
维护者 中心化机构 全球数千个节点共同维护
信任基础 信任机构信用 信任密码学与共识机制
访问权限 需要授权 任何人可
The End

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