《白话区块链》2017版权威学习地图
按技术审校、前言、9章和后记冻结119个正式目录层级,贯通原理、应用、密码、共识、平台、实验与风险。
为什么从可验证状态开始
、、、和 共同构成本页坐标。按技术审校、前言、9章和后记冻结119个正式目录层级,贯通原理、应用、密码、共识、平台、实验与风险。
本书锁定蒋勇、文延、嘉文著《白话区块链》,机械工业出版社2017年10月版,236页,ISBN 9787111582984。当当云阅读给出技术审校、前言、9章全部编号节与小节以及后记的完整目录;得到与天珑书店分别交叉核对出版方、作者、日期、页数和ISBN。本文是独立教学重构,不复制原书正文。
区块链不是“广播后大家自然相信”,而是候选状态经过本地规则验证、网络传播、排序或共识,再提交为节点认可历史。任何结论都要回答五个问题:谁能发起,谁能验证,按什么顺序,失败时保留哪个状态,观察者凭什么复核。
区块、交易与证据不变量
第一式把新区块绑定到前块摘要与交易集合;任一字段改变都会改变摘要,但只有独立验证和共识选择才能决定候选链是否被接受。第二式把签名授权、未花费约束和价值守恒分开,签名正确不代表输入尚未消费。第三式说明确认依赖规范链和深度,不能把“收到交易”写成“最终结算”。第四式要求来源、重放、边界与失败证据同时存在,任一为零都不能发布。
取三笔UTXO:A拥有7与4,拟向B支付8并找零3。合法交易必须引用两笔输入、由A签名并产生8与3两个输出;若仅引用7、重复引用同一输入或把找零写成4,节点应在进入候选区块前拒绝。把合法交易放入区块后修改金额,重算Merkle根和区块摘要虽可让单块内部一致,却会破坏后续链接和累计共识证据。
三段可运行骨架
def verify_transaction(tx, utxos, verify_signature):
inputs = [utxos.get(ref) for ref in tx["inputs"]]
if None in inputs or len(set(tx["inputs"])) != len(tx["inputs"]):
return False
return verify_signature(tx) and sum(inputs) >= sum(tx["outputs"])def append_block(chain, block, hash_block, valid_tx):
if block["previous"] != hash_block(chain[-1]):
return {"accepted": False, "reason": "broken-link"}
if not all(valid_tx(tx) for tx in block["transactions"]):
return {"accepted": False, "reason": "invalid-transaction"}
return {"accepted": True, "chain": [*chain, block]}def evidence_gate(run):
required = {"source", "version", "input", "trace", "output", "failure"}
missing = sorted(required.difference(run))
return {"pass": not missing, "missing": missing}第一段验证交易引用、重复输入、签名和价值约束;生产实现还要检查脚本、费用、锁定时间与整数范围。第二段先检查前块链接再检查交易,失败时不修改原链。第三段对实验记录做结构门禁,使成功轨迹和失败证据使用同一版本合同。
最小实例与重放顺序
先冻结创世状态、账户或UTXO集合、验证函数、网络成员、排序规则、确认条件和软件版本。按“构造交易 -> 本地签名 -> 邻居独立验证 -> 候选池 -> 打包或排序 -> 区块验证 -> 状态提交”记录每一步输入输出。只保存最后余额,会漏掉重复消费、错误签名被缓存、无效区块短暂传播或回滚未清理等问题。
正常样本使用两笔输入支付并找零;边界样本让输入恰好等于输出;单故障样本只破坏签名、前块摘要、背书数量或读版本中的一项。三组样本除该变量外保持相同,才能把拒绝原因归因到目标规则。随机网络实验保存种子、消息顺序和超时,不以一次收敛证明协议活性。
2017年版本边界与现代迁移
原书记录的是2017年前后的比特币客户端、以太坊钱包、Fabric版本与当时的扩容和安全事件。今天重放时保留概念坐标和状态不变量,但不照抄已经失效的下载地址、网络参数、命令或默认配置。历史截图用于解释接口,不作为当前安全保证。
迁移到现代实现时建立对应表:原书术语、历史行为、当前替代、兼容差异、验证方法和回退方案。以太坊共识变更、Fabric架构演进或钱包弃用必须显式披露;不能因为现代工具运行成功,就声称原书命令仍然有效,也不能用今天的特性改写当年的设计动机。
正式目录逐项讲解
技术审校
“技术审校”位于本页正式目录坐标 1/12。这一项不是礼仪性前置材料,而是版本合同:先固定术语、软件时代、读者假设和可复现范围,再判断正文中的命令、截图与安全结论今天是否仍可执行。
复核时为“技术审校”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
前言
“前言”位于本页正式目录坐标 2/12。这一项不是礼仪性前置材料,而是版本合同:先固定术语、软件时代、读者假设和可复现范围,再判断正文中的命令、截图与安全结论今天是否仍可执行。
复核时为“前言”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
第1章 初识区块链
“第1章 初识区块链”位于本页正式目录坐标 3/12。共同账本的关键不是人人拥有一份文件,而是每个节点依据同一验证规则独立接受状态转移。广播只传播候选数据,验证、排序和确认才把候选写入本地认可历史。
复核时为“第1章 初识区块链”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
第2章 区块链应用发展
“第2章 区块链应用发展”位于本页正式目录坐标 4/12。这一目录项要落到状态对象、授权规则、传播顺序和失败边界。先写最小输入输出,再用正常、边界与单故障样本验证,避免只记名词而无法判断实现是否正确。
复核时为“第2章 区块链应用发展”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
第3章 区块链骨骼:密码算法
“第3章 区块链骨骼:密码算法”位于本页正式目录坐标 5/12。公私钥算法把授权能力绑定到私钥,把公开验证交给公钥。区块链交易通常依赖签名而非用公钥加密账本;算法名称、参数、随机数质量与密钥生命周期必须一并审计。
复核时为“第3章 区块链骨骼:密码算法”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
第4章 区块链灵魂:共识算法
“第4章 区块链灵魂:共识算法”位于本页正式目录坐标 6/12。共识结论依赖故障类型、网络时序和成员身份。Paxos与Raft主要处理崩溃故障,PBFT显式容忍有限恶意副本;FLP和CAP提醒读者先写假设,不能把一个协议名称当作全部保证。
复核时为“第4章 区块链灵魂:共识算法”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
第5章 区块链扩展:扩容、侧链和闪电网络
“第5章 区块链扩展:扩容、侧链和闪电网络”位于本页正式目录坐标 7/12。扩容改变数据量、验证位置或结算频率。侧链需要锚定和退出假设,闪电网络需要通道资金、路由和在线监控,多链交互需要验证对方最终性;吞吐提升不会免费继承主链全部安全性。
复核时为“第5章 区块链扩展:扩容、侧链和闪电网络”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
第6章 区块链开发平台:以太坊
“第6章 区块链开发平台:以太坊”位于本页正式目录坐标 8/12。以太坊把交易扩展为确定性状态机调用。执行者从同一前状态、字节码和输入得到同一后状态;Gas限制资源,回滚保护原子性,但代码确定性并不保证业务意图、外部价格或权限配置正确。
复核时为“第6章 区块链开发平台:以太坊”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
第7章 区块链开发平台:超级账本
“第7章 区块链开发平台:超级账本”位于本页正式目录坐标 9/12。共同账本的关键不是人人拥有一份文件,而是每个节点依据同一验证规则独立接受状态转移。广播只传播候选数据,验证、排序和确认才把候选写入本地认可历史。
复核时为“第7章 区块链开发平台:超级账本”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
第8章 动手做个实验:搭建微链
“第8章 动手做个实验:搭建微链”位于本页正式目录坐标 10/12。微链用最少对象暴露协议骨架:区块包含前块摘要和交易集合,验证函数重算摘要并检查链接,存储层原子提交,节点同步拒绝无效候选。教学实现必须公开省略的签名、共识和网络攻击面。
复核时为“第8章 动手做个实验:搭建微链”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
第9章 潜在的问题
“第9章 潜在的问题”位于本页正式目录坐标 11/12。风险分析从资产、攻击者、前置条件和可观测证据开始。分叉影响规则兼容,多数攻击影响排序,轻钱包依赖诚实证明源,私钥丢失可能不可逆,合约漏洞和拥堵则要求权限、暂停、升级与容量治理。
复核时为“第9章 潜在的问题”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
后记 区块链与可编程社会
“后记 区块链与可编程社会”位于本页正式目录坐标 12/12。内容寻址可证明取回数据与给定摘要一致,时间戳可证明某摘要曾出现,却不能自动证明传感器、仓单或商品标签真实。链外资产必须通过身份、审计、预言机、争议和法律执行闭环。
复核时为“后记 区块链与可编程社会”保存前状态、输入、授权或验证依据、候选输出、拒绝原因和后状态。先手算一个最小实例,再运行实现;若两者不同,停在首个哈希、签名、规则、消息、排序或状态差异处,不以最终余额相近掩盖中间错误。
2017版正式目录覆盖
- 技术审校:1个正式层级
- 前言:1个正式层级
- 第1章 初识区块链:18个正式层级
- 第2章 区块链应用发展:19个正式层级
- 第3章 区块链骨骼:密码算法:15个正式层级
- 第4章 区块链灵魂:共识算法:14个正式层级
- 第5章 区块链扩展:扩容、侧链和闪电网络:6个正式层级
- 第6章 区块链开发平台:以太坊:10个正式层级
- 第7章 区块链开发平台:超级账本:13个正式层级
- 第8章 动手做个实验:搭建微链:9个正式层级
- 第9章 潜在的问题:12个正式层级
- 后记 区块链与可编程社会:1个正式层级
分母共119项:技术审校、前言、9章全部节与小节以及后记。学习地图和全书总复习是本站教学入口,不计入原书分母;目录不与同名媒体内容、繁体改版页码或其他区块链图书混用。
六类复核证据
状态与所有权合同
列出链上对象的唯一标识、所有者或解锁条件、当前版本和允许的状态转移。UTXO模型检查引用与未花费性,账户模型检查发送者、nonce与余额;两者不能共用一个含糊的“余额正确”断言。
密码与编码合同
记录哈希和签名算法、参数、密钥来源、随机数、序列化与地址校验。编码只解决传输表示,哈希只提供摘要,签名只证明相应私钥授权;真实性、保密性与业务合法性需要额外证据。
网络与共识合同
保存节点身份、连接、消息、传播顺序、故障模型、候选集合和规范历史选择。共识安全性与活性分别验证;暂时不出块和两个节点接受冲突最终状态是不同故障,不能只用平均TPS描述。
执行与平台合同
合约或链码记录前状态、调用者、输入、读写集、资源消耗、事件和后状态。失败执行必须原子回滚,外部服务和预言机响应进入证据,避免把链外副作用误当成虚拟机可回滚状态。
攻击与恢复合同
每个风险写出资产、攻击者能力、入口、首个可观测异常、影响和恢复边界。私钥丢失、多数重组、合约权限泄漏与数据增长的恢复手段不同;“不可篡改”不能替代备份、暂停、升级和治理。
发布与独立复核合同
独立复核者从空目录读取来源与配置,先手算最小状态,再运行正常、边界和单故障样本。哈希、签名、事件、余额、拒绝原因和最终状态逐项一致后才发布;任何缺失证据都进入隔离清单而非静默跳过。
常见失败与回退
本章回顾
按技术审校、前言、9章和后记冻结119个正式目录层级,贯通原理、应用、密码、共识、平台、实验与风险。 掌握标准不是背诵项目名或算法缩写,而是能冻结状态、授权、传播、排序、执行、证据和失败边界。通过标准为:能从任一正式目录项定位到定义、状态、公式、代码、交互实验、失败样本、复习题与目录来源。