《Mastering Ethereum》第2版权威学习地图

学习地图以官方第二版前言与17章、516个标题节点为不可缩减分母,连接账户、节点、密码、钱包、交易、两种合约语言、安全、代币、预言机、DApp、DeFi、EVM、PoS、扩展与零知识证明。

为什么从可验证状态开始

本页按官方第二版在线目录重建 Official Learning Map,覆盖该正式单元的 18 个二至五级标题。教学顺序保留原目录的依赖关系,但正文全部独立撰写:每个标题都转成对象、前状态、输入、规则、后状态和失败证据,避免只给术语摘要。

学习地图以官方第二版前言与17章、516个标题节点为不可缩减分母,连接账户、节点、密码、钱包、交易、两种合约语言、安全、代币、预言机、DApp、DeFi、EVM、PoS、扩展与零知识证明。 阅读时把“客户端或网页显示了什么”和“协议能验证什么”分开:钱包、浏览器、RPC与索引器是观察面,规范编码、签名、交易、收据、区块、状态根、证明和最终化检查点才是可复核对象。任何结论都要绑定链ID、客户端版本、区块坐标与原始输入。

实验统一在本地开发链或公开测试网完成,私钥只使用一次性测试向量。先写预期,再运行;先保存原始对象,再看格式化界面。正常样本证明主路径,边界样本选择零值、最大值、恰好阈值或时序边缘,单故障样本只改变链ID、nonce、一个字节、一个签名、一个价格或一个证明条件。

任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 若执行失败,证据必须说明首个拒绝规则、错误数据、消耗的资源以及状态是否回滚;若执行成功,还要区分交易池接纳、区块包含、执行状态与PoS最终性,不能把交易哈希当成最终结算。

通过标准是:能从官方在线版逐项定位18个正式单元和516个标题,并规划从测试账户到PoS最终性与二层证明的端到端重放。 独立复核者应能从空目录和相同测试向量重建结果;缺失来源、版本、输入、前状态、后状态或失败证据任一项,结论都不能进入下一页。

版次、对象与验收合同

、、、、共同构成本页的复核坐标。学习地图以官方第二版前言与17章、516个标题节点为不可缩减分母,连接账户、节点、密码、钱包、交易、两种合约语言、安全、代币、预言机、DApp、DeFi、EVM、PoS、扩展与零知识证明。

核心约束与推导

St+1=Apply(St,Tt),Valid(Tt,St)=1S_{t+1}=Apply(S_t, T_t), \quad Valid(T_t,S_t)=1 gasUsed(T)gasLimit(T),fee=gasUsed×effectiveGasPricegasUsed(T) \le gasLimit(T), \quad fee=gasUsed \times effectiveGasPrice stateRootn=Commit(accounts,storage,code,balances)stateRoot_{n}=Commit(accounts,storage,code,balances) gate=source×version×replay×boundary×failureEvidencegate=source \times version \times replay \times boundary \times failureEvidence

状态转移只接受针对当前前状态有效的输入;Gas约束把资源消耗纳入确定性执行;状态根把大量账户与存储压缩为区块可承诺对象。证据门禁采用乘法语义,任一因子缺失都不能用其他截图或口头解释补偿。

三段可运行骨架

type EthereumEvidence = {
  chainId: number;
  block: string;
  beforeRoot: string;
  inputHash: string;
  afterRoot?: string;
  error?: string;
};
 
export function evidenceGate(run: EthereumEvidence) {
  return {
    page: "met2-official-learning-map",
    accepted: Boolean(run.afterRoot || run.error),
    immutableInput: run.inputHash,
  };
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
 
contract InvariantProbe {
    uint256 public value;
    event Applied(uint256 beforeValue, uint256 afterValue);
 
    function apply(uint256 next) external {
        uint256 beforeValue = value;
        require(next >= beforeValue, "non-monotonic");
        value = next;
        emit Applied(beforeValue, next);
    }
}
function applyCandidate(
  state: bigint,
  next: bigint,
  gasUsed: bigint,
  gasLimit: bigint,
) {
  if (gasUsed > gasLimit)
    return { accepted: false, state, reason: "out-of-gas" };
  if (next < state)
    return { accepted: false, state, reason: "invalid-transition" };
  return { accepted: true, state: next, reason: null };
}

第一段把成功与失败放进同一证据合同;第二段给出可观察事件和显式不变量;第三段证明拒绝路径保持原状态。真实系统应使用成熟客户端、ABI、密码与证明库,并补齐并发、重组、超时、持久化、隐私和密钥隔离。

正式标题逐项讲解

Preface

“Preface”是本单元正式标题 1/18,原目录层级 h1。学习地图以官方第二版前言与17章、516个标题节点为不可缩减分母,连接账户、节点、密码、钱包、交易、两种合约语言、安全、代币、预言机、DApp、DeFi、EVM、PoS、扩展与零知识证明。 本标题要求把术语落到明确对象和状态转换:给出输入、前置条件、算法或协议规则、可观察输出以及至少一个拒绝样本。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 1. What Is Ethereum?

“Chapter 1. What Is Ethereum?”是本单元正式标题 2/18,原目录层级 h1。学习地图以官方第二版前言与17章、516个标题节点为不可缩减分母,连接账户、节点、密码、钱包、交易、两种合约语言、安全、代币、预言机、DApp、DeFi、EVM、PoS、扩展与零知识证明。 本标题要求把术语落到明确对象和状态转换:给出输入、前置条件、算法或协议规则、可观察输出以及至少一个拒绝样本。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 2. Ethereum Basics

“Chapter 2. Ethereum Basics”是本单元正式标题 3/18,原目录层级 h1。学习地图以官方第二版前言与17章、516个标题节点为不可缩减分母,连接账户、节点、密码、钱包、交易、两种合约语言、安全、代币、预言机、DApp、DeFi、EVM、PoS、扩展与零知识证明。 本标题要求把术语落到明确对象和状态转换:给出输入、前置条件、算法或协议规则、可观察输出以及至少一个拒绝样本。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 3. Ethereum Nodes

“Chapter 3. Ethereum Nodes”是本单元正式标题 4/18,原目录层级 h1。学习地图以官方第二版前言与17章、516个标题节点为不可缩减分母,连接账户、节点、密码、钱包、交易、两种合约语言、安全、代币、预言机、DApp、DeFi、EVM、PoS、扩展与零知识证明。 本标题要求把术语落到明确对象和状态转换:给出输入、前置条件、算法或协议规则、可观察输出以及至少一个拒绝样本。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 4. Cryptography

“Chapter 4. Cryptography”是本单元正式标题 5/18,原目录层级 h1。这是密码与证明边界。必须区分秘密输入、公开输入、编码、域分离、算法输出和验证命题;使用成熟库与公开测试向量,篡改一个字节时验证应在首个不满足的规则处失败。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 5: Wallets

“Chapter 5: Wallets”是本单元正式标题 6/18,原目录层级 h1。这是控制权与恢复边界。钱包界面不拥有链上资产,密钥、种子、口令、派生路径、链ID和地址方案共同决定可控制账户;恢复实验必须在空环境复现同一地址集合。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 6. Transactions

“Chapter 6. Transactions”是本单元正式标题 7/18,原目录层级 h1。这是交易状态机坐标。按类型化信封解析链ID、nonce、费用上限、目标、value、data和签名,先做静态有效性检查,再区分交易池接纳、区块包含、执行成功与最终化。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 7. Smart Contracts and Solidity

“Chapter 7. Smart Contracts and Solidity”是本单元正式标题 8/18,原目录层级 h1。这是合约执行边界。源码、编译器、ABI、字节码、调用上下文与持久状态必须一一对应;外部调用视为不可信,失败路径要证明状态原子回滚并记录Gas和错误数据。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 8. Smart Contracts and Vyper

“Chapter 8. Smart Contracts and Vyper”是本单元正式标题 9/18,原目录层级 h1。这是合约执行边界。源码、编译器、ABI、字节码、调用上下文与持久状态必须一一对应;外部调用视为不可信,失败路径要证明状态原子回滚并记录Gas和错误数据。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 9. Smart Contract Security

“Chapter 9. Smart Contract Security”是本单元正式标题 10/18,原目录层级 h1。这是合约执行边界。源码、编译器、ABI、字节码、调用上下文与持久状态必须一一对应;外部调用视为不可信,失败路径要证明状态原子回滚并记录Gas和错误数据。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 10. Tokens

“Chapter 10. Tokens”是本单元正式标题 11/18,原目录层级 h1。这是资产接口与账本边界。接口、事件、余额、总供应、授权和接收回调必须同步满足标准;兼容函数签名不代表经济不变量、元数据或外部集成天然安全。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 11. Oracles

“Chapter 11. Oracles”是本单元正式标题 12/18,原目录层级 h1。这是链外输入边界。记录来源、时间戳、轮次、单位、聚合方法和失效门限;过期、异常或来源不足的数据必须被消费者拒绝,链上存在值不等于该值真实。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 12. Decentralized Applications

“Chapter 12. Decentralized Applications”是本单元正式标题 13/18,原目录层级 h1。这是端到端应用边界。前端、钱包、RPC、合约、索引器和链下存储分别保存不同视图;最终判断回到固定链ID上的合约代码、交易收据、事件和状态。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 13. Decentralized Finance

“Chapter 13. Decentralized Finance”是本单元正式标题 14/18,原目录层级 h1。这是开放金融不变量。计算资产守恒、价格函数、费用、抵押率与清算阈值,并显式记录预言机、治理、流动性和外部协议假设;收益率必须能追溯风险来源。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 14. The Ethereum Virtual Machine

“Chapter 14. The Ethereum Virtual Machine”是本单元正式标题 15/18,原目录层级 h1。学习地图以官方第二版前言与17章、516个标题节点为不可缩减分母,连接账户、节点、密码、钱包、交易、两种合约语言、安全、代币、预言机、DApp、DeFi、EVM、PoS、扩展与零知识证明。 本标题要求把术语落到明确对象和状态转换:给出输入、前置条件、算法或协议规则、可观察输出以及至少一个拒绝样本。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 15. Consensus

“Chapter 15. Consensus”是本单元正式标题 16/18,原目录层级 h1。这是PoS共识边界。用验证者权重、时隙、epoch、最新证明、分叉树和检查点计算头部与最终性;离线、延迟和冲突投票必须产生可解释的安全或活性结果。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 16. Scaling Ethereum

“Chapter 16. Scaling Ethereum”是本单元正式标题 17/18,原目录层级 h1。这是扩展与信任边界。分别说明执行、数据、证明、排序与退出所在位置,比较吞吐、延迟、成本和故障恢复;任何“更快”结论都要附带数据可用性和强制退出条件。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

Chapter 17. Zero-Knowledge Proofs

“Chapter 17. Zero-Knowledge Proofs”是本单元正式标题 18/18,原目录层级 h1。这是密码与证明边界。必须区分秘密输入、公开输入、编码、域分离、算法输出和验证命题;使用成熟库与公开测试向量,篡改一个字节时验证应在首个不满足的规则处失败。

复核时固定第二版来源、链ID、客户端、前状态与原始输入,保存编码、解析、签名、执行、收据、状态或证明的中间对象。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 本标题通过后还要能说明它与上级标题及下一标题的依赖,避免把相邻机制合并成一句概述。

正常、边界与故障矩阵

样本只改变的变量预期结果必存证据
正常有效链ID、输入、签名、Gas与前状态接受并得到预期后状态原始交易、收据、前后状态根
边界零值、最大值、恰好阈值或时序边缘按明确规则接受或拒绝边界值、判断分支、资源成本
单故障链ID、nonce、签名、价格、证明或数据一项首个无效规则处拒绝错误数据、首差、原状态

先预测每个样本的状态根、返回值和错误,再操作滑块;若两个变量同时变化,实验失去归因能力,必须重置。

常见失败与回退

本章回顾

学习地图以官方第二版前言与17章、516个标题节点为不可缩减分母,连接账户、节点、密码、钱包、交易、两种合约语言、安全、代币、预言机、DApp、DeFi、EVM、PoS、扩展与零知识证明。 核心不是记住工具名称,而是能从官方标题定位对象、规则与证据。任一正式标题都必须能定位到对象、输入、规则、后状态和单故障证据;学习地图与总复习不计入原书分母。 完成后应删除临时密钥和测试状态,保留不含秘密的版本、输入哈希、收据、状态根、错误与复核结论。

前后导航

讨论

评论区加载中…