Ethereum learning path · 03.02

五个部件,如何拼成以太坊?

主网给出共同场域,共识层选择规范历史,执行层推进状态,EVM 负责确定性计算, 智能合约承载程序规则。它们不是五个平行产品,而是一套首尾相接的协作系统

  • 主题 整体架构
  • 阅读 约 52 分钟
  • 结构 14 个认知层
  • 校准 2026-07-25
Production network Ethereum Mainnet · Chain ID 1
Which history?
共识层

区块 · 证明 · 分叉选择 · 最终性

What result?
执行层

交易 · 世界状态 · 收据 · 状态根

EVM
执行语义
Smart contracts
代码 + 存储
00 / ORIENTATION

先建立一张总地图

先问“它负责什么”,再问“它如何实现”。否则五个名词很容易被误当成五种并列软件。

打开钱包、点下“发送”、等待交易成功,看起来只有三步。网络内部却要回答三个完全不同的问题: 这条指令是否合法?执行后世界状态应该变成什么?许多候选区块里,哪一条才是大家继续追随的历史?

第一个和第二个问题主要属于执行,第三个问题主要属于共识。 EVM 给执行层一套精确、可复现的计算规则;智能合约是按这套规则运行的程序;主网则是这些规则 承载真实经济价值的公共生产网络。把这五者拼起来,才得到今天的以太坊。

01 / LOCATE

能把主网、执行层、共识层、EVM 和智能合约放在正确层级,而不是背五句定义。

02 / TRACE

能从钱包签名开始,追踪交易直到区块被验证、选择并最终确定。

03 / DIAGNOSE

能判断签名无效、合约回滚、区块竞争与迟迟不最终分别发生在哪一层。

一句话模型
主网是共同运行场域;共识层决定“承认哪段历史”;执行层决定“这段历史算出的结果是否有效”; EVM 定义“怎么算”;智能合约定义“算什么”。

顺序不是简单的“执行完再共识”。提议者先让本地执行客户端构造执行载荷, 共识客户端把载荷装入区块;其他节点收到后再独立重执行并验证。执行与共识通过接口往返协作, 而不是一条只走一次的流水线。

01 / MAINNET

主网:共同状态真正发生的地方

“主网”首先是一个彼此连接、遵守同一协议并维护同一条规范链的公共生产网络。

如果把以太坊比作一座城市,主网不是市政府的一栋楼,而是整座城市共同使用的道路、产权记录、 规则与正在发生的经济活动。任何单一组织都不能靠修改自己的数据库,替全网改掉你的余额。

Ethereum Mainnet 是唯一的以太坊公共生产主网,通常用 chainId = 1 标识。 这里的 ETH、合约状态和资产承载真实经济后果。遍布全球的节点运行兼容客户端,参加点对点网络, 下载并验证交易与区块,然后在本地维护自己认可的链头与状态。

主网不是以下任何一个东西

NOT A WEBSITE

ethereum.org 是信息网站;主网不会因为网站下线而停止。钱包界面和区块浏览器也只是入口。

NOT ONE SERVER

没有一台“以太坊总服务器”保存唯一真相。节点各自验证,再通过协议收敛。

NOT THE EVM

EVM 是执行语义;主网是使用这套语义、共识和网络规则的具体生产网络。

切换网络,不是换一个查看页面

同一私钥在不同 EVM 网络上通常推导出同一地址,但每个网络的余额、nonce、合约代码和历史彼此独立。 你在 Sepolia 获得的测试 ETH 不会出现在主网;同一地址在两个网络上甚至可以部署完全不同的代码。 钱包展示的“网络切换”,本质上是在切换状态宇宙与验证规则上下文

Mainnet

公共生产网络;真实价值、真实费用、真实不可逆风险。

chainId 1
Public testnet

公共测试网络;用测试 ETH 验证合约、客户端和协议升级。

独立状态
Local devnet

开发者在本机或私有环境启动;可重置、可调试、可快速出块。

独立历史

chainId 不只是标签。它进入交易签名域,用来抵御交易在另一条链上被原样重放。 因此提交交易前,钱包要求你确认网络,是安全边界的一部分。

02 / SYSTEM MAP

五个部件,不在同一个层级

主网包含整套运行系统;执行层与共识层是协议分工;EVM 是执行层内部运行时;智能合约是被运行的程序与状态。

最常见的概念错误,是把“执行层、EVM、智能合约”说成三台轮流工作的服务器。 实际上它们更接近“操作系统中的进程、虚拟机和程序”之间的嵌套关系。

SELECT A COMPONENT

点选一个部件,查看它的职责边界

Interactive 01

运行场域

Ethereum Mainnet

唯一的公共生产以太坊网络。许多节点通过 P2P 网络交换数据,按共同协议独立验证, 共同维护承载真实经济价值的规范历史与状态。

它接纳什么

兼容客户端、已签名交易、区块、验证者证明与网络升级规则。

它不是什么

不是基金会服务器,不等于某款客户端,也不等于一台 EVM。

层级提示:主网是完整运行实例;EVM 与合约都位于执行路径内,共识层则为有效执行结果提供规范顺序与最终性。
执行:前置状态 + 有序交易 + 区块上下文 → 确定的后置状态与收据
共识:有效候选区块 + 验证者加权投票 → 当前规范链头与最终检查点

这里有一个关键逻辑:“有效”不等于“规范”。两个区块都可能各自符合执行规则, 但在短暂分叉中只能有一条成为当前规范历史。执行层先判断候选结果有没有违反状态转换规则, 共识层再在有效候选之间决定节点应该追随哪一个链头。

03 / EXECUTION LAYER

执行层:把交易算成新的世界状态

执行层回答的核心问题是:从状态 S 出发,按区块给定顺序执行这些交易,结果是不是唯一且有效?

余额不会因为验证者“宣布 Alice 多了 1 ETH”而改变。每个执行节点都要拿到同一批交易, 按协议重做计算,并核对自己算出的状态根、收据根、gas 使用量等承诺。

执行客户端持续做四类工作

交易入口

检查交易封装、签名、chainId、nonce、费用能力等,并维护本地交易池。

tx pool
交易传播

在执行层 P2P 网络与同伴交换待处理交易,让潜在提议者能够看到它们。

EL gossip
状态转换

在 EVM 中执行转账、合约创建和消息调用,计算 gas、日志、收据与新状态。

EVM
数据接口

保存当前执行状态和必要历史,通过 JSON-RPC 为钱包、DApp 与工具提供查询和提交入口。

JSON-RPC
状态转换函数: Sn+1 = Υ(Sn, Bn+1)
给定完全相同的前置状态、交易顺序和区块上下文,正确实现必须得到相同的后置状态。

区块不携带一整份“新数据库”

提议者提供的是执行载荷:其中含有按顺序排列的交易以及 stateRootreceiptsRoot、gas 等密码学承诺和元数据。接收节点不会直接相信这些结果, 而是让本地执行客户端重放交易。只有本地结果与载荷承诺一致,载荷才通过执行有效性检查。

无效交易与执行失败,是两件事

REJECTED BEFORE BLOCK

签名错误、nonce 不合规则等交易通常进不了有效区块;若硬塞进去,会使整个执行载荷无效。

INCLUDED & SUCCESS

交易被收录,调用完成,允许的状态变化、日志和费用结果都进入新的执行状态。

INCLUDED & REVERT

交易可以被收录却显示失败;调用状态回滚,但已用 gas 仍收费,发送者 nonce 仍被消耗。

再精确一层:REVERT 首先回滚当前调用帧。若外层合约捕获内部调用失败并继续, 整笔顶层交易仍可能成功。不要把“某次内部调用失败”一概写成“整笔交易全部回滚”。

04 / CONSENSUS LAYER

共识层:让有效历史收敛为规范历史

共识不是替 EVM 算余额,而是让分散节点对区块顺序、当前链头和最终检查点达成加密经济意义上的一致。

网络有延迟,两个节点可能在同一时段看到不同候选区块。如果没有共同的选择规则, 两边即使都“算对了”,状态也会沿着不同历史永久分叉。

以太坊 PoS 把时间划成 12 秒一个 slot,32 个 slot 构成一个 epoch, 即 6.4 分钟。每个 slot 安排一名区块提议者,但 slot 可能被错过,因此不能把它说成 “保证每 12 秒一定出块”。活跃验证者通常每个 epoch 参加一次证明,而不是每个 slot 都投票。

Propose

被选中的提议者把执行载荷、证明和其他共识操作装入 Beacon Block 并签名广播。

per slot
Validate

其他节点核对共识规则,并把执行载荷交给本地执行客户端验证。

EL ↔ CL
Attest

验证者对自己看到的链头以及 source / target 检查点签署证明,票权按有效余额加权。

weighted
Finalize

检查点获得连续的超级多数链接后,较早检查点成为 finalized,回滚将触发严重罚没条件。

Casper FFG

Gasper 是两个机制的组合

LMD-GHOST

用验证者最新消息的加权结果选择当前链头,解决“现在沿哪条分支继续”。

CASPER FFG

让 epoch 边界对应的检查点 justified / finalized,解决“过去退到哪里代价极高”。

GASPER

把分叉选择与最终性组合成以太坊 PoS 的核心共识机制。

“看到区块”“成为当前链头”“获得更多确认”“justified”“finalized”是不同状态。 用户通常在最终性之前就能看到交易被包含,但只有进入 finalized 检查点之前的历史, 才获得明确的加密经济最终性。

最终性不是物理定律。它的保证是:若要制造相互冲突的最终历史, 大量质押权重必须违反可证明的签名规则并暴露于罚没。网络极端故障时仍可能需要社会协调, 所以准确说法是“加密经济最终性”,不是“宇宙级绝对不可修改”。

05 / EVM

EVM:让不同电脑得到同一个答案

EVM 不是网络里唯一的一台虚拟机,而是一套由每个执行客户端实现的确定性状态转换语义。

上海的一台 ARM 机器、纽约的一台 x86 服务器,只要从同一前置状态执行同一交易序列, 就必须对每一步操作、gas、异常和结果达成一致。EVM 就是这份跨机器的“计算契约”。

合约源码通常先由 Solidity、Vyper 等编译器变成 EVM 字节码。执行时,EVM 读取字节码, 按 opcode 一步步改变栈、内存、持久存储和调用上下文。主网节点真正执行的是字节码, 不是区块浏览器上展示的 Solidity 源文件。

Stack

后进先出的 256 位字栈;多数 opcode 从这里取操作数并把结果压回。

depth 1024
Memory

当前调用帧的临时字节数组;执行结束后不持久保留,扩展会增加 gas。

temporary
Storage

合约地址下的持久键值状态;读写昂贵,成功提交后进入世界状态。

persistent
Calldata

调用者提供的只读输入,常含函数选择器与 ABI 编码参数。

read-only

MICRO EXECUTION TRACE

五条指令,怎样把 5 写入持久存储?

Interactive 02

BYTECODE · TEACHING TRACE

  1. 01PUSH1 0x02
  2. 02PUSH1 0x03
  3. 03ADD
  4. 04PUSH0
  5. 05SSTORE
Program counter
before start
Stack · top first
[]
Storage
{ }
初始状态:栈为空,存储未改变。点击“下一步”开始执行。
这是教学级轨迹,省略精确字节偏移、动态 gas、冷/热访问、退款与调用上下文。 它展示的是确定性:每一步的输入、栈变化与存储写入都由规范定义,节点不能随意解释。

为什么必须有 gas

EVM 支持条件与循环,无法只看代码就保证程序何时结束。每条操作都会消耗一定 gas; 交易提供 gas 上限,耗尽时执行异常结束。gas 因而同时承担计量计算资源、限制最坏工作量、 防止无限执行与网络滥用的职责。gas 是工作量单位,真正支付的 ETH 费用还要乘以有效 gas 价格。

确定性也意味着主动放弃一些能力

合约不能直接读互联网、文件系统或节点本机时钟,否则不同节点可能得到不同答案。 它能使用的是交易输入、链上状态和协议定义的区块上下文。现实世界数据必须由预言机或其他参与者 以交易方式带入链上;“随机数”也需要专门的可验证设计。

06 / SMART CONTRACTS

智能合约:驻留在地址上、等待被调用的程序

它首先是代码与状态,不是自动理解意图的法律机器人,也不会自己按时醒来。

一个典型合约账户包含余额、运行时代码和持久存储。用户或另一个合约发起调用时, EVM 才加载这段代码并执行。没有触发,就没有计算;没有交易,就没有新的主网状态。

部署过程也分两段

合约创建交易先执行 initcode。initcode 可以读取构造参数、初始化存储, 最后返回 runtime bytecode;真正长期保存在新地址、供后续调用执行的是 runtime bytecode。 因此“部署源码到链上”是方便说法,精确说法是“执行创建代码并保存其返回的运行时字节码”。

READ OR WRITE

同一个函数,读取与写入为何走不同路径?

Interactive 03
REQUEST

节点本地模拟

钱包或应用通过 JSON-RPC 请求某个节点,在指定区块状态上执行一次 EVM 调用。 结果直接返回给调用者。

NETWORK EFFECT

规范状态不改变

没有签名交易、没有进入交易池、没有被区块收录。节点做了计算,但这次计算不会成为全网历史。

结论:eth_call 通常不需要用户支付链上费用,因为它只是某个节点的本地模拟; 节点服务商仍可能限制调用资源或收取服务费。

合约能做什么,又不能做什么

CAN

按确定规则转移资产、更新状态、验证签名、发出日志,并在同一交易中调用其他合约。

CANNOT NATIVE

不能直接访问网页、私有数据库或文件,也没有原生 cron 定时器让自己自动运行。

NEEDS DESIGN

链外数据需要预言机;定时任务需要外部 keeper;升级通常依赖代理与治理权限。

“部署后绝不可能改变”需要拆开说。某个地址上的运行时代码通常不能被直接覆盖, 但代理合约可通过 DELEGATECALL 把逻辑指向新的实现。对用户而言,应用行为仍可能升级, 所以必须检查管理员、升级延迟与治理权限。

2026 校准:Pectra 引入 EIP-7702 后,EOA 可设置指向既有代码的 delegation indicator, 同时私钥仍保有最终控制。于是“EOA 的 code 永远为空”与“有代码的地址必定是传统合约账户” 都不再是可靠判断。账户模型将在第四章展开。

07 / TRANSACTION JOURNEY

一笔交易的八站旅程

现在把五个部件放回同一条时间线上:发送 1 ETH 与调用复杂合约,走的是同一套外部骨架。

钱包里的“已发送”只表示交易离开了你的设备;“已包含”表示它进入当前规范链; “已最终确定”则表示它落在加密经济上极难回滚的历史之中。三种状态不能混为一谈。

END-TO-END TRACE

点选步骤,观察执行与共识如何接力

Interactive 04
Application edge
TX
钱包 / DApp

构造意图、选择网络、请求用户签名。

Execution path
EL
执行层 + EVM

验证交易、执行合约、计算载荷与状态承诺。

Consensus path
CL
共识层

封装区块、传播、投票、选头与最终确定。

01 · 钱包签名

钱包根据当前网络构造交易,包含接收方、金额或 calldata、nonce、gas 参数与 chainId。 私钥只在本地签名;节点收到的是可公开传播的已签名交易,不需要也不应该得到私钥。

当前边界:用户授权已经产生,但主网状态尚未改变。交易可能仍被取消、替换、拒绝或长期未被收录。

你在区块浏览器里看到的几个时间点

Pending

某个节点看到了交易并放入本地交易池;不同节点的池内容可能不同。

not canonical
Included

交易进入某候选区块并执行;它可能暂时成为链头,也可能遇到短重组。

in a block
Confirmed

后续区块和投票提高其留在规范链上的置信度;具体产品口径可能不同。

confidence
Finalized

所在历史被 Casper FFG 最终确定;若要冲突回滚,需要严重共识失效与可罚没行为。

economic finality
08 / CLIENT ARCHITECTURE

双客户端、双状态与 Engine API

The Merge 合并的是执行历史与 PoS 安全体系,不是把所有软件重新揉成一个进程。

今天运行一个普通完整节点,至少需要执行客户端和共识客户端。它们各自连接不同的 P2P 网络, 各自维护不同状态,再通过本机上的 Engine API 把“有效执行”与“规范顺序”锁在一起。

TWO LINKED STATES

同一个节点里,为什么要维护两类状态?

Diagram 01
Execution state

世界状态

  • 账户余额与 nonce
  • 合约运行时代码
  • 合约持久存储
  • 交易收据与日志索引
  • 以 state root 作密码学承诺
Beacon state

信标状态

  • 验证者注册表与有效余额
  • 证明、奖励与惩罚
  • justified / finalized 检查点
  • RANDAO 等共识信息
  • 规范链头与分叉选择上下文
Beacon Block 包含执行载荷。共识客户端掌握“哪个区块被承认”,执行客户端掌握“该载荷是否算得对”; 两边任一缺失,节点都无法完整跟随合并后的主网。

Engine API 的三个核心动作

forkchoiceUpdated

共识客户端告知执行客户端当前 head / safe / finalized;携带构造参数时启动新载荷构建。

CL → EL
getPayload

提议者一侧的共识客户端取回执行客户端构造好的执行载荷,准备装入 Beacon Block。

CL ← EL
newPayload

接收区块的共识客户端把载荷交给执行客户端验证,得到 VALID / INVALID / SYNCING 等状态。

CL → EL

Engine API 通常是节点本机或受控内部网络上的 JWT 认证接口,不应和面向钱包、DApp 的公共 JSON-RPC 混为一谈。前者协调节点内部两颗“大脑”,后者让外部应用读取状态、模拟调用和提交交易。

通道 主要参与者 主要数据 典型边界
执行层 P2P 执行客户端 ↔ 执行客户端 待处理交易等执行网络数据 互联网 P2P
共识层 P2P 共识客户端 ↔ 共识客户端 Beacon blocks、attestations 等 互联网 P2P
JSON-RPC 钱包 / DApp ↔ 执行客户端 查询、模拟、广播已签名交易 用户或服务接口
Engine API 共识客户端 ↔ 执行客户端 分叉选择状态、载荷构造与验证 本机 / 受控内部接口

版本不要死背。Engine API 方法会随网络升级分别版本化,并通过 engine_exchangeCapabilities 协商能力。截至本课校准日,主网已于 2025-12-03 激活 Fusaka(共识侧 Fulu、执行侧 Osaka);基础心智模型不变,但精确字段与方法版本应查当前规范。

验证者客户端是可选的第三个角色

没有质押身份的共识客户端仍能接收区块、运行分叉选择并跟随规范链。只有当运营者加入验证者客户端与 激活的验证者密钥,节点才会被分配提议、证明等签名职责。因而“运行节点”不等于“必须质押”, “验证区块”也不等于“作为验证者投票”

09 / FAILURE BOUNDARIES

出错时,究竟是哪一层说“不”?

把错误归到正确层,才能理解“交易失败”“区块无效”“没有最终性”为什么不是同一件事。

同一个红色感叹号,可能意味着钱包连错网络、RPC 没响应、签名交易无效、合约主动回滚, 也可能只是区块尚未最终确定。系统思维的第一步,是先找拒绝发生在哪条边界。

EL · ENVELOPE

签名 / nonce 无效:执行客户端拒绝交易;它通常不会进入有效执行载荷。

EVM · RUNTIME

条件不满足:合约触发 revert;交易可被收录并收费,调用状态按语义回滚。

EL · PAYLOAD

状态根不匹配:本地重执行不同意载荷承诺,执行客户端返回 INVALID。

CL · FORK CHOICE

两个有效候选:共识层用加权证明选择当前链头;落败分支可被重组出去。

CL · FINALITY

票权不足:链头可能继续前进,但检查点暂时不能最终确定。

APP / RPC

界面或提供者错误:不一定代表协议失败;换节点、核对 chainId 与链上数据。

共识权重不能把错误答案投成正确

分叉选择并不是“票多者可以修改规则”。诚实节点只会在通过共识与执行有效性检查的区块上工作。 如果载荷里某账户凭空多出余额、本地重执行却算不出来,执行客户端会把载荷判为无效。 再多正常投票也不能把错误的状态转换变成有效协议结果。

先过有效性门槛:协议规则是否满足?
再解决规范性:多个有效分支中,当前追随哪一条?哪一段已经最终确定?

RPC 结果也有信任边界。钱包显示的余额通常来自某个节点的 JSON-RPC。 如果你使用第三方节点,你把查询可用性、部分隐私与回答正确性外包给了服务商; 自己运行节点或使用能验证证明的轻客户端,才能缩小这条外包边界。

10 / NETWORK BOUNDARIES

主网、测试网、本地网与 L2:别把地图叠在一起

共享 EVM 兼容性不代表共享状态、共享安全边界或共享资产。

“都能用 MetaMask”“地址长得一样”“合约都是 Solidity 写的”,只能说明工具或执行环境相似, 不能证明它们属于同一条链。

环境 状态与历史 价值 / 风险 典型用途 与主网关系
Ethereum Mainnet 唯一生产主网状态 真实 ETH 与资产风险 生产应用、结算、质押 本体
Public testnet 独立链、独立状态 测试 ETH 不应有经济价值 合约与协议测试 模仿规则,不继承状态
Local devnet 可重置的私有历史 无真实价值 快速开发与调试 开发工具
Ethereum L2 有自己的执行历史与状态 依具体桥、排序与证明机制 更高吞吐、更低用户成本 向主网提交数据 / 承诺并结算

L2 不是“主网执行层里的一个文件夹”。Rollup 通常有自己的排序与执行流程,再把数据、状态承诺或证明 提交到以太坊。它利用主网提供的结算与数据可用性等保障,但跨层移动资产需要桥接协议, 最终安全性还取决于具体 L2 的证明系统、升级权限和逃生机制。

实用检查:每次签名之前至少看四项:当前 chainId、接收地址、调用方法 / calldata、 预计资产变化。地址相同不能替你证明网络正确,界面里写着“ETH”也不能替你证明它是主网 ETH。

11 / MYTHS

九个常见误解,一次拆开

能纠正这些说法,就说明你已经开始用架构而不是口号理解以太坊。

“Ethereum 就是 ETH。”

Ethereum 是网络与协议体系;ETH 是主网原生资产,用于费用、质押与经济安全等。

“主网就是那台全球 EVM。”

EVM 是执行语义;主网还包含 P2P 网络、PoS 共识、客户端、状态与真实经济参与者。

“世界上只有一台 EVM 在计算。”

许多执行客户端各自在本地实现并运行 EVM;它们靠确定性规则得到同一结果。

“共识层会执行 Solidity。”

共识客户端把执行载荷交给执行客户端;EVM 执行字节码,Solidity 只是常见源码语言。

“提议者宣布的新余额就是新状态。”

提议者提交交易与状态承诺,其他节点独立重执行。承诺对不上,整个载荷无效。

“智能合约会自己定时运行。”

合约需要交易或交易内消息调用触发;定时自动化依赖链外 keeper 等参与者。

“交易失败就不会上链,也不收费。”

执行回滚的交易仍可被收录,已用 gas 收费且 nonce 消耗;协议层无效交易则不能进入有效载荷。

“同一地址在所有网络上代表同一资产。”

地址可以相同,状态却完全隔离。主网、测试网和 L2 上的余额与代码必须分别核对。

“The Merge 后还有 ETH1 与 ETH2 两种币。”

执行层与共识层共同组成同一个以太坊主网;用户不需要兑换所谓“ETH2”。

12 / RECAP & CHECK

把整课压缩成八句话

先顺着逻辑复述,再用六道题检查你是否真的能定位每个部件。

  1. 主网是唯一承载真实价值的以太坊公共生产网络,不是某个网站或服务器。
  2. 执行层验证交易并通过 EVM 计算状态转换、收据、gas 与密码学承诺。
  3. 共识层用 PoS、分叉选择与最终性,让节点对规范区块顺序收敛。
  4. EVM 是每个执行客户端实现的确定性运行时,不是一台远程中央虚拟机。
  5. 智能合约是地址上的运行时代码与持久状态,必须由交易或消息调用触发。
  6. 合并后的完整节点至少同时运行执行客户端与共识客户端,两者通过 Engine API 协作。
  7. 交易“有效、执行成功、被当前链收录、最终确定”是四种不同判断。
  8. 测试网、本地网和 L2 可以共享工具与 EVM 兼容性,但各自拥有独立状态与风险边界。

现在检查你的理解

01. 哪个说法最准确地描述 EVM?

EVM 在许多节点本地运行;分叉选择属于共识层。

02. 接收节点重执行某个执行载荷,算出的 state root 不一致,会怎样?

共识权重不能覆盖执行规则;错误状态承诺过不了有效性门槛。

03. 通过 eth_call 读取合约,通常发生什么?

读取可在指定状态上本地模拟;只有被收录的状态变化交易才改变主网历史。

04. 同一私钥在主网与测试网上得到同一地址,意味着什么?

地址是由密钥推导的标识;余额、nonce、代码与历史属于具体网络。

05. 智能合约想每天上午 9 点自动执行,最准确的说法是?

合约不会自己醒来;自动化服务负责触发,合约负责验证与执行规则。

06. 一笔合约交易触发顶层 revert 后,哪项仍可能成立?

执行失败与协议层无效不同;失败交易仍可以是有效区块中的一条收据。

13 / TERMS & PRIMARY SOURCES

术语与一手资料

协议会升级,字段会扩展。本课用官方文档与规范校准到 2026 年 7 月 25 日。

Mainnet · 主网
承载真实价值与生产状态的唯一以太坊公共主网络,chainId 为 1。
Execution Layer · EL
处理交易、运行 EVM、维护世界状态并生成执行结果的一层。
Consensus Layer · CL
处理 PoS 区块、验证者证明、分叉选择与最终性的一层。
EVM
定义字节码、opcode、gas、调用和状态转换的确定性虚拟机语义。
Smart contract
驻留在地址上的运行时代码、余额与持久状态,由调用触发执行。
Execution payload
共识区块携带的执行数据与承诺,包括有序交易、状态根、收据根和 gas 等。
World state
执行层维护的账户、余额、nonce、代码与合约存储的整体状态。
Beacon state
共识层维护的验证者、有效余额、检查点、随机性和其他共识信息。
Engine API
共识客户端驱动并查询执行客户端的本地 JWT 认证接口。
JSON-RPC
钱包、DApp 与工具查询执行状态、模拟调用和提交交易的常用接口。
Slot / epoch
PoS 时间单位;主网每 slot 12 秒,每 epoch 32 slots。
Finality
检查点获得 Casper FFG 超级多数链接后形成的加密经济最终性。
Revert
EVM 调用失败语义;回滚相应调用状态,但已执行工作仍可能消耗 gas。
Chain ID
进入交易签名域的网络标识,用于区分链并降低跨链重放风险。

官方资料

  1. 01
    ethereum.org · Networks 主网、测试网、私有网络与开发网络的官方边界说明。
  2. 02
    ethereum.org · Node architecture 合并后的执行客户端、共识客户端、验证者客户端与 Engine API 架构。
  3. 03
    ethereum.org · Ethereum Virtual Machine 分布式状态机、EVM 栈、内存、存储、opcode 与执行模型。
  4. 04
    ethereum.org · Introduction to smart contracts 合约代码、状态、地址、部署与用户交互的官方入门。
  5. 05
    ethereum.org · Transactions 已签名交易、字段、网络广播与状态变化。
  6. 06
    ethereum.org · Proof-of-stake slot、epoch、提议、证明、重执行与最终性的官方说明。
  7. 07
    ethereum.org · Gasper LMD-GHOST 分叉选择与 Casper FFG 最终性的组合。
  8. 08
    Ethereum Execution APIs · Engine API forkchoiceUpdated、getPayload、newPayload 与各次升级的规范原文。
  9. 09
    Solidity docs · Introduction to smart contracts 合约创建、调用、存储、消息调用和 EVM 行为的语言官方文档。
  10. 10
    ethereum.org · Fusaka 当前主网 Fulu-Osaka 升级与执行层 / 共识层同步升级的说明。
  11. 11
    EIP-7702 · Set EOA account code Pectra 后 EOA 代码委托语义,校准传统“EOA 无代码”心智模型。
  12. 12
    Ethereum Consensus Specs · Fork choice 规范层的链头选择、justification 与 finalization 数据结构和过程。

时效说明:slot / epoch 等主网常量和本课核心分层截至校准日仍成立; 客户端列表、网络升级、Engine API 方法后缀、gas 价格与容量参数会继续变化。 做运维或开发决策时,应再次核对官方规范与客户端发布说明。

到这里,你已经能从“主网在哪里”一路讲到“合约如何在 EVM 中执行、执行结果如何被共识层承认”。 下一课会追问更深一层:为什么把相同程序交给全球许多节点重复执行,仍能被称为一台“全球计算机”?

回看:全节点、轻节点与验证节点 · 回到本课开头