跳转到主要内容

Ethereum 白皮书详解:智能合约平台

2013 年末,19 岁的程序员 Vitalik Buterin 发布了一份将重塑区块链格局的文档。标题为 "Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform," 的这份白皮书提出了一种远不止“转账”的区块链。它设想的是一条通用、可编程的区块链——一台能够运行几乎任何应用的去中心化世界计算机。

本指南将带你梳理 Ethereum 白皮书中的核心概念、设计决策与长期影响,解释 Vitalik 的愿景如何从激进提案演变为一个数千亿美元生态的基础。

历史背景​

Bitcoin 的局限​

到 2013 年,Bitcoin 已经证明了去中心化、无需信任的价值转移系统是可行的。然而,Bitcoin 的脚本语言是刻意受限的。它可以处理简单条件(多签、时间锁),但无法支持复杂应用。正如 Buterin 所写:

"The scripting language as implemented in Bitcoin is limited in several important ways — it is essentially stack-based, has a very limited opcode set, and while it is technically 'Turing-incomplete,' this is seen as a feature rather than a bug."

想要构建去中心化应用的开发者,要么在 Bitcoin 受限脚本上“打补丁式”实现方案,要么从零创建全新区块链——每条链都需要自己的共识机制、网络和安全模型。这既低效又割裂。

为什么需要通用平台​

Buterin 发现了一个机会:构建一个可支持任意去中心化应用的单一平台。与其为每个用例都造一条链(文件存储一条、身份一条、预测市场一条),为什么不做一条“什么都能做”的可编程区块链?

他使用的是计算机类比:与其分别造加法、减法、乘法计算器,不如造一台能运行任意程序的通用计算机。Ethereum 就是这条通用区块链。

先前尝试​

在 Ethereum 之前,已有多个项目尝试扩展区块链能力:

  • Colored Coins:在 Bitcoin 交易中附加元数据以表示其他资产
  • Metacoins:运行在 Bitcoin 之上的协议(Counterparty、Mastercoin/Omni)
  • Namecoin:用于去中心化域名注册的 Bitcoin 分叉
  • Ripple:数字支付网络(中心化共识)

这些方案都存在局限,而 Ethereum 的设计正是为了解决这些问题。

白皮书中的核心概念​

账户,而非 UTXO​

Buterin 做出了一个将 Ethereum 与 Bitcoin 区分开的基础设计选择:使用账户模型,而不是 Bitcoin 的 UTXO 模型。

在 Ethereum 中,状态由账户构成,每个账户包含:

  • Nonce:计数器,确保每笔交易只被处理一次
  • Ether balance:持有的 ETH 数量
  • Contract code:智能合约字节码(如适用)
  • Storage:持久化数据(合约账户的键值存储)

账户分两类:

  1. Externally Owned Accounts (EOAs):由私钥控制,不包含代码
  2. Contract Accounts:由自身代码控制,收到消息时被激活

这种设计让余额和状态的推理更直接。你无需追踪单个未花费输出,只需追踪账户余额——很像银行总账(但去中心化且透明)。

消息与交易​

白皮书区分了transactions(由 EOA 签名)与 messages(合约之间的内部调用):

  • transaction 由外部用户发起,包含接收方、ETH 数量、数据、gas limit 和 gas price
  • message 是合约调用另一合约时产生的虚拟对象——不会被序列化,仅在执行期间存在

这种区分使复杂的多步操作成为可能。一笔用户交易可以触发合约之间的级联内部消息,从而实现复杂 DeFi 协议和可组合应用。

Ethereum Virtual Machine (EVM)​

EVM 是 Ethereum 的核心——执行智能合约代码的运行时环境。Buterin 为 EVM 设计了若干关键特性:

基于栈的架构:EVM 使用 256 位整型栈。操作会将值压栈或出栈。该设计实现简单、易于推理。

确定性执行:在相同状态和相同交易输入下,无论哪个节点执行,EVM 都会得到相同结果。这对共识至关重要——所有节点必须对结果一致。

Gas 计量:每条 EVM 操作都有固定 gas 成本。交易消耗的总 gas 由发送者用 ETH 支付。该机制:

  • 防止无限循环(程序耗尽 gas 时会停止)
  • 防止拒绝服务攻击(攻击者必须为其消耗资源付费)
  • 建立计算资源市场(用户通过 gas price 竞价交易优先级)

沙箱化:智能合约只能访问自身存储、区块链状态及提供给它的输入。它不能直接访问文件系统、网络或其他外部资源。预言机通过把链下数据带到链上来弥补这个缺口。

Opcode 集合​

白皮书描述了 EVM 的指令集合,包括:

  • Arithmetic:ADD, MUL, SUB, DIV, MOD, EXP
  • Comparison:LT, GT, EQ, ISZERO
  • Bitwise:AND, OR, XOR, NOT, BYTE
  • SHA3:Keccak-256 哈希(Ethereum 使用 Keccak-256,常被称作 SHA-3)
  • Stack/Memory/Storage:PUSH, POP, MLOAD, MSTORE, SLOAD, SSTORE
  • Control flow:JUMP, JUMPI, STOP, RETURN
  • Environment:ADDRESS, BALANCE, CALLER, CALLVALUE, CALLDATALOAD
  • Block information:BLOCKHASH, COINBASE, TIMESTAMP, NUMBER, DIFFICULTY
  • Logging:LOG0-LOG4(用于事件发出)
  • External calls:CALL, DELEGATECALL, CREATE

这套指令集设计上追求最小但足够表达任意计算。Solidity 等高级语言会编译为这些 opcodes。

状态转换函数​

Buterin 将 Ethereum 形式化为一个状态转换系统。全局状态是所有账户及其余额、nonce、代码和存储的映射。每笔交易都通过一个定义明确的转换函数改变状态:

STATE' = APPLY(STATE, TX)

状态转换函数会:

  1. 检查交易格式是否合法(签名有效、nonce 正确)
  2. 计算 gas 费用并从发送者余额扣除
  3. 初始化 gas 计数器,并按交易数据字节扣减 gas
  4. 将指定 ETH 从发送者转给接收者
  5. 若接收者是合约,执行合约代码直到完成或 gas 耗尽
  6. 若执行失败(耗尽 gas、错误),回滚除 gas 支付外的所有状态更改
  7. 将剩余 gas 退还发送者,并把已消耗 gas 费用支付给矿工/验证者

这种状态转换模型的优雅之处在于其通用性——任何计算都可表示为一系列状态转换,而 gas 机制保证了资源安全。

白皮书设想的应用​

Buterin 列出了 Ethereum 将支持的多类应用。值得注意的是,这些设想几乎都已实现:

Token 系统​

"On-blockchain token systems have many applications ranging from sub-currencies representing assets such as USD or gold to company stocks."

白皮书预见了后来成为 ERC-20 标准的事物——它是数千种 token、ICO、DeFi 协议以及stablecoins的基础。文中描述的简单 token 合约:用状态映射记录余额并提供 transfer 函数——这正是 ERC-20 的工作方式。

金融衍生品​

Buterin 描述了可引用外部数据(如价格喂价)来结算金融工具的合约。这一愿景在 DeFi 衍生品生态中落地——Synthetix、dYdX、GMX 等在 Ethereum 上提供去中心化衍生品、期权和期货交易。

身份与声誉系统​

白皮书讨论了将 Ethereum 用于自主管理身份(self-sovereign identity)——无需中心化机构、由用户控制身份凭证。ENS(Ethereum Name Service)、Soulbound Tokens 与去中心化身份(DID)标准都在一定程度上实现了这一愿景。

去中心化文件存储​

Buterin 提出使用 Ethereum 智能合约来协调去中心化文件存储。虽然 Ethereum 本身不适合存储大文件(成本过高),但它可以协调存储网络。IPFS、Filecoin、Arweave 等项目都受这一思路启发。

Decentralized Autonomous Organizations (DAOs)​

"The general concept of a 'decentralized autonomous organization' is that of a virtual entity that has a certain set of members or shareholders which, perhaps with a 67% majority, have the right to spend the entity's funds and modify its code."

DAO 已成为 Ethereum 生态的重要治理模式。从 MakerDAO 到 Uniswap 治理,再到金库管理协议,Buterin 关于链上组织治理的愿景已被广泛采用。

储蓄钱包与多签​

白皮书描述了具备提款限额、多方授权与社交恢复的安全储蓄智能合约。这些理念直接影响了智能合约钱包、多签钱包(如 Safe/Gnosis Safe)以及账户抽象运动的发展。

设计决策与权衡​

为什么要图灵完备?​

Buterin 有意让 Ethereum 的语言具备图灵完备性(可计算任意可计算函数),而不是像 Bitcoin Script 那样刻意受限。这在当时颇具争议——图灵完备意味着无限循环风险和更复杂攻击面。

解决方案是 gas:通过要求每一步计算都付费,Ethereum 在不限制表达能力的前提下限制了计算规模。试图无限运行的程序最终会耗尽 gas 并停止。复杂智能合约中的 bug 和漏洞风险仍然存在,但这属于应用层安全问题,而非协议层问题。

为什么采用账户模型?​

Buterin 选择账户而非 UTXO,原因包括:

  1. 节省空间:账户只存一次状态,而 UTXO 会在多个未花费输出中重复数据
  2. 更简单:账户余额更便于智能合约逻辑推理
  3. 可替代性:同一账户中的 ETH 同质,而 UTXO 各自带有独立历史

代价是并行性下降(影响同一账户的交易必须排序)以及更复杂的状态管理。

为什么不基于 Bitcoin 构建?​

Buterin 解释了扩展 Bitcoin 为什么不够:

  1. 脚本受限:Bitcoin Script 缺少循环、复杂状态和丰富数据类型
  2. Value-blindness:Bitcoin 脚本无法进行细粒度金额控制
  3. Blockchain-blindness:脚本无法访问区块链元数据(时间戳、区块高度)
  4. 无状态:除“已花费/未花费”二元状态外,Bitcoin 交易没有持久状态

这些限制意味着复杂应用需要一个根本不同的平台。

白皮书判断准确的部分​

智能合约需求​

最核心预测——可编程区块链应用会有巨大需求——被证明极其准确。DeFi、NFT、DAO、游戏与企业应用已在 Ethereum 上创造了数千亿美元经济活动。

可组合性​

白皮书关于合约可相互调用(“money legos”)的愿景,成为 Ethereum 的标志性特征之一。DeFi 可组合性——借贷协议、交易所与收益优化器无缝交互——正是该愿景的直接实现。

网络效应​

Buterin 预见到通用平台会吸引开发者,开发者吸引用户,用户再吸引更多开发者。这种飞轮效应让 Ethereum 成为主导性的智能合约平台,拥有最大开发者社区、最多应用和最深流动性。

自白皮书以来的变化​

共识机制​

最初白皮书描述的是类似 Bitcoin 的 PoW 共识机制。Ethereum 在 2015 年上线时采用 PoW,但一直计划迁移到 proof of stake。The Merge 于 2022 年 9 月完成该迁移,从根本上改变了 Ethereum 的安全模型与环境特征。

扩容路径​

白皮书并未完全预见 Ethereum 面临的扩容挑战。最初设想认为基础层吞吐足够,但 2020-2021 年 DeFi 与 NFT 活动爆发证明了 Layer 2 扩容的必要性。Ethereum 路线图转向以 rollup 为中心,基础层专注数据可用性,执行由 Layer 2 承担。

MEV(Maximal Extractable Value)​

白皮书没有预见到 MEV——出块者可通过重排、包含或排除交易提取的价值。MEV 已成为重要研究领域,并推动了 MEV 保护机制(Flashbots、PBS)的发展,这些机制如今已是 Ethereum 基础设施核心部分。

Gas 定价机制​

最初白皮书描述的是简单的一价拍卖(first-price auction)gas 模型。EIP-1559 将其替换为更复杂机制:销毁基础费 + 小费,提升了费用可预测性,并对 ETH 供应形成通缩压力。

阅读原文​

Ethereum 白皮书可在 ethereum.org/en/whitepaper/ 阅读。相比 Bitcoin whitepaper,它更长也更技术化,但对具备基础编程和密码学知识的读者仍然友好。Vitalik 还发布了大量博客与文章,另有较新的技术黄皮书(由 Gavin Wood 撰写)对 EVM 规范进行了形式化描述。

SafeSeed Tool

理解 Ethereum 的密钥派生对安全管理你的 ETH 至关重要。使用 SafeSeed Key Derivation Tool 探索单个 BIP-39 助记词如何通过 BIP-44 路径(m/44'/60'/0'/0/x)派生不同 Ethereum 地址。一个助记词即可保护你所有的 Ethereum 账户。

FAQ​

谁写了 Ethereum 白皮书?​

Ethereum 白皮书由 Vitalik Buterin 于 2013 年末撰写,当时他 19 岁。尽管 Vitalik 是主要作者,但 Ethereum 的开发涉及多位联合创始人:Gavin Wood(撰写形式化 EVM 的技术“yellow paper”)、Charles Hoskinson(后创立 Cardano)、Joseph Lubin(创立 ConsenSys)等。

Ethereum 白皮书是什么时候发布的?​

该白皮书最早在 2013 年末到 2014 年初流传。Ethereum 众筹(ICO)发生在 2014 年 7-8 月,筹集约 1800 万美元。Ethereum 主网上线日期是 2015 年 7 月 30 日。

Ethereum 白皮书解决了什么问题?​

白皮书针对的是现有区块链(主要是 Bitcoin)在支持复杂应用上的限制。Bitcoin 能实现价值转移,但无法支持可编程应用,如去中心化交易所、借贷协议或自执行协议。Ethereum 提供了通用平台,任何去中心化应用都可以在其上构建。

Ethereum 白皮书和 yellow paper 有什么区别?​

whitepaper(由 Vitalik Buterin 撰写)是概念性文档,解释 Ethereum 的愿景、设计与应用。yellow paper(由 Gavin Wood 撰写)是 Ethereum 协议的形式化技术规范,包含 EVM、状态转换函数与 gas 成本的精确数学定义。yellow paper 是参考实现指南。

Ethereum 白皮书现在还相关吗?​

核心概念——智能合约、EVM、账户、gas——依然是 Ethereum 运作基础。但发布后发生了显著变化:迁移到 proof of stake、EIP-1559 费用机制、Layer 2 扩容路径、账户抽象。白皮书提供关键背景,但应结合较新的文档一起阅读。

Ethereum 白皮书与 Bitcoin 的相比如何?​

Bitcoin 白皮书(9 页)聚焦点对点电子现金。Ethereum 白皮书更长、范围更广,提出通用计算平台。Bitcoin 解决了双花问题;Ethereum 将区块链概念扩展到可编程应用。二者都是基础性文档,任何认真理解加密货币的人都应阅读。

白皮书中最具争议的部分是什么?​

将 Ethereum 设计为图灵完备是争议最大的一点。批评者(尤其来自 Bitcoin 社区)认为图灵完备会引入不可接受的巨大攻击面。支持者认为 gas 计量足以控制风险,同时释放巨大设计空间。历史证明双方都有道理:Ethereum 的表达能力带来了非凡创新,但智能合约漏洞(The DAO hack、重入攻击、预言机操纵)也造成了重大损失。