《Mastering Bitcoin》第3版权威学习地图
按前言、14章与3个附录冻结333个正式标题节点,贯通首次使用、协议、节点、密钥、交易、共识、安全和二层应用。
为什么从可验证状态开始
本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
比特币最容易被界面和术语掩盖:钱包余额是UTXO视图,地址是脚本编码,交易哈希只是候选对象标识,矿工出块也不代表全节点必须接受。要判断实现是否正确,必须追踪前状态、被引用输出、规范序列化、脚本与签名、节点策略、区块承诺、累计工作量和后状态。只保存最终余额或区块高度,会漏掉错误网络、冲突交易、脚本失败、重组与索引视图滞后。
本页先手算最小实例,再运行工具。正常样本证明主路径;边界样本取零值、最大金额、恰好费用、最短证明或时间锁边界;单故障样本只改变网络前缀、字节、签名、outpoint、脚本、target或确认中的一项。三组样本共享源码标签、节点、创世状态和观察点,使首个差异可以归因,而不是靠重复广播或刷新页面碰运气。
每次实验生成机器可读证据:官方印刷标签、软件提交、网络与创世哈希、输入原文、解析对象、验证结果、错误、前后UTXO或链状态和确认区块。独立复核者从空目录重放,若字段缺失、节点未同步或结果绑定到不同哈希,门禁明确失败。涉及密钥的示例只使用公开测试向量、regtest或signet,不把教学代码连接真实资产。
官方标题层级还要转成可检查任务:章标题定义端到端目标,节标题定义机制与对象,小节标题定义算法、字段、异常或部署选择。每个标题至少对应一个输入、一个不变量、一个可观察结果和一个失败样本;多个标题可以共享实验环境,但不能因主题相近而合并掉独立语义。这样既保留原书结构,也让读者能从目录逐项证明掌握程度。
版次、对象与验收合同
、、、、共同构成本页复核坐标。按前言、14章与3个附录冻结333个正式标题节点,贯通首次使用、协议、节点、密钥、交易、共识、安全和二层应用。
本书锁定Andreas M. Antonopoulos、David A. Harding《Mastering Bitcoin: Programming the Open Blockchain》第3版,O'Reilly Media,2023年,402页,ISBN 9781098150082。官方GitHub标签 third_edition_print1 对应第三版首印,公开前言、14章和附录A至C的完整源码,按二至五级标题解析得到333个正式节点;O'Reilly页面交叉核对作者、2023年、402页与ISBN。学习地图和总复习不计入原书分母。本文按CC BY-SA 4.0来源做独立中文教学重构,不复制原书正文。
核心约束与推导
前两式对应本页的密码、交易、费用、网络、区块或二层核心不变量。状态转移式要求候选对象先通过当前状态验证,再原子地产生后状态;失败保留原状态。证据门禁使用乘法语义,来源、版本、重放、边界或失败证据任一缺失,整条结论都不能发布。
三段可运行骨架
type Evidence = {
version: string;
before: string;
input: string;
after?: string;
error?: string;
};
function evidenceGate(run: Evidence) {
const complete = Boolean(
run.version && run.before && run.input && (run.after || run.error),
);
return { complete, page: "mbt3-official-learning-map", run };
}def apply_candidate(state, candidate, verify):
if not verify(state, candidate):
return {"accepted": False, "state": state, "reason": "invalid"}
next_state = state.copy()
next_state.update(candidate["changes"])
return {"accepted": True, "state": next_state, "reason": None}def verify_value_conservation(inputs, outputs, fee):
if len(inputs) != len({item["outpoint"] for item in inputs}):
return False
return sum(item["value"] for item in inputs) == sum(outputs) + fee第一段把成功与失败放进同一证据结构;第二段证明拒绝路径不污染原状态;第三段验证本页最小协议对象。生产系统必须使用成熟密码、序列化和节点库,并补充资源限制、并发、持久化、超时、隐私与密钥隔离。
正式标题逐项讲解
Preface
“Preface”位于本页正式标题坐标 1/18。本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 1 Introduction
“Chapter 1 Introduction”位于本页正式标题坐标 2/18。本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 2 How Bitcoin Works
“Chapter 2 How Bitcoin Works”位于本页正式标题坐标 3/18。本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 3 Bitcoin Core: The Reference Implementation
“Chapter 3 Bitcoin Core: The Reference Implementation”位于本页正式标题坐标 4/18。Bitcoin Core实现P2P、共识验证、内存池、钱包和RPC,但协议由所有兼容节点执行的规则约束。版本选择、构建选项和运行网络必须记录,参考实现也可能有勘误。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 4 Keys and Addresses
“Chapter 4 Keys and Addresses”位于本页正式标题坐标 5/18。地址是输出脚本模板的网络编码提示,不是链上账户。解析先验证字符集、校验和和网络,再转换为脚本;复制错误、网络错误或错误脚本类型都可能造成不可逆支付。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 5 Wallet Recovery
“Chapter 5 Wallet Recovery”位于本页正式标题坐标 6/18。钱包管理密钥、派生路径和交易构造,并不存放链上币。恢复需要种子或恢复码、可选口令、派生路径、脚本类型和账户元数据一致;托管钱包则把控制权交给第三方。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 6 Transactions
“Chapter 6 Transactions”位于本页正式标题坐标 7/18。本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 7 Authorization and Authentication
“Chapter 7 Authorization and Authentication”位于本页正式标题坐标 8/18。本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 8 Digital Signatures
“Chapter 8 Digital Signatures”位于本页正式标题坐标 9/18。签名把私钥授权绑定到交易摘要,SIGHASH决定覆盖字段。Schnorr的线性结构支持聚合协议,ECDSA依赖安全随机nonce;两者都必须使用标准库和规范编码。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 9 Transaction Fees
“Chapter 9 Transaction Fees”位于本页正式标题坐标 10/18。费用策略比较交易或包的总费用与总vbytes。RBF由可修改交易的签名者替换,CPFP由输出所有者创建高费子交易;节点策略、祖先限制和钉死攻击影响可用性。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 10 The Bitcoin Network
“Chapter 10 The Bitcoin Network”位于本页正式标题坐标 11/18。本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 11 The Blockchain
“Chapter 11 The Blockchain”位于本页正式标题坐标 12/18。本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 12 Mining and Consensus
“Chapter 12 Mining and Consensus”位于本页正式标题坐标 13/18。本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 13 Bitcoin Security
“Chapter 13 Bitcoin Security”位于本页正式标题坐标 14/18。本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Chapter 14 Second-Layer Applications
“Chapter 14 Second-Layer Applications”位于本页正式标题坐标 15/18。本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Appendix A The Bitcoin Whitepaper by Satoshi Nakamoto
“Appendix A The Bitcoin Whitepaper by Satoshi Nakamoto”位于本页正式标题坐标 16/18。白皮书以所有权签名链、时间戳和PoW网络描述点对点电子现金。它是设计起点,当前共识与网络细节还要以实现、BIP和后续修正交叉验证。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Appendix B Errata to the Bitcoin Whitepaper
“Appendix B Errata to the Bitcoin Whitepaper”位于本页正式标题坐标 17/18。白皮书以所有权签名链、时间戳和PoW网络描述点对点电子现金。它是设计起点,当前共识与网络细节还要以实现、BIP和后续修正交叉验证。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
Appendix C Bitcoin Improvement Proposals
“Appendix C Bitcoin Improvement Proposals”位于本页正式标题坐标 18/18。BIP是公开设计与协调文档,可为标准跟踪、流程或信息类型。提案状态说明文档进度,是否实现、部署和激活还需分别查证。
复核时固定网络、软件、前状态与原始输入,保存解析、验证、传播或执行的中间对象;失败必须给出首个拒绝规则并保持原状态。通过标准是“能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。”,结果必须绑定固定对象哈希、网络和官方第三版来源。
正常、边界与故障矩阵
| 样本 | 只改变的变量 | 预期结果 | 必存证据 |
|---|---|---|---|
| 正常 | 有效UTXO、脚本、费用与网络 | 状态转移并达到确认条件 | 原始对象、前后状态、区块哈希 |
| 边界 | 零值、最大值、恰好阈值或时间锁 | 按明确规则接受或拒绝 | 边界值、判断分支、资源成本 |
| 单故障 | 网络、字节、签名、引用或PoW一项 | 首个无效规则处拒绝 | 错误、首差、原状态与回退点 |
先写出预期字节、栈、金额或哈希,再运行节点和解析器。若钱包、区块浏览器与本地节点给出不同答案,以固定网络上的原始交易、被花费输出、区块头和本地共识验证为坐标;第三方展示不能覆盖本地可验证事实。
常见失败与回退
本章回顾
按前言、14章与3个附录冻结333个正式标题节点,贯通首次使用、协议、节点、密钥、交易、共识、安全和二层应用。 本地图以第三版官方印刷标签中的333个标题为不可缩减分母,把用户支付、Bitcoin Core、密钥钱包、交易脚本、签名费用、网络区块、挖矿安全和二层应用连接成可重放路径。 掌握标准是能从任一正式标题定位到讲解、公式、代码、交互实验、复习题和官方源码,并重放一笔测试交易从密钥到确认与二层退出的证据链。。独立复核必须从官方第三版标签、固定测试网络和原始协议对象重放正常、边界与单故障样本。