本章要回答的三个问题:区块链这座厂到底从密码学仓库领走了哪几种材料?每种材料扛的是什么安全责任、凭什么扛得住?材料之间如何配合,把"伪造、篡改、抵赖"三类攻击挡在门外?
第 1 章的导览留下一桩悬案:信任机器的"信任"二字,最终抵押物是什么?答案不在口号里,而在备料车间的货架上。哈希函数、公钥密码、数字签名、Merkle 树——这些名字在通俗读物里被笼统称为"加密技术",仿佛一团玄学。含糊的代价很快会在后续章节显现:不懂哈希的抗碰撞性,就无法理解为什么挖矿是"抽奖"而不是"解方程";不懂签名的不可伪造性,就无法分清双花攻击到底攻破了哪一层;不懂 Merkle 证明,就看不懂轻节点凭什么用一部手机验证整条链。
所以本章把叙述顺序反过来:先化验材料强度,再看成品受力。每一种材料都按"它防什么攻击—机制原理—强度来源—工程用法—失效边界"的节奏展开,并且全程配 Python 标准库实验。这是全书动手最密集的一章,建议开着终端读。
读完本章,你应当能独立完成这些可检验的任务:用 hashlib 计算摘要并演示雪崩效应,解释哈希查找碰撞为何等价于生日碰撞问题;说清对称与非对称加密的分工,以及椭圆曲线签名为什么能替代大整数因子分解方案;手工构造一棵 Merkle 树并给出包含证明与排除证据;把"伪造、篡改、抵赖、双花"四类攻击分别归因到哪种材料失守;评估一条新链更换哈希或签名算法时的风险清单。
| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 2.1 备料的化验单 | 材料要满足哪些安全目标 | 安全目标与攻击对照表 + 术语校准 |
| 2.2 哈希函数 | 钢印如何做到改一字全变 | hashlib 实验 + 挖矿难度计算 |
| 2.3 公钥密码与数字签名 | 归属与授权如何自证 | 密钥派生与签名流程 + 算法对比 |
| 2.4 Merkle 树 | 海量铸件如何批量质检 | 树构造与证明验证代码 |
| 2.5 材料如何守护整机 | 四类攻击各被谁挡下 | 攻防映射 + 算法更换风险评估 |
材料之间的配合关系值得先看一眼再进场:哈希负责"内容指纹",签名负责"行为授权",Merkle 树负责"指纹的批量封装",共同构成账本的承重体系。
会读 Python 即可,全部实验只用标准库 hashlib 与少量手写代码。不要求先修数论——椭圆曲线一节只取"几何直觉 + 结论强度"两层,推导细节以附录式提示给出。建议手边放一个能跑代码的环境,本章的每个关键结论都有对应的复算实验。
材料备齐之后,铸造车间(第 3 章)将把它们装进真实结构:区块怎么组、链怎么接、交易怎么建模、网络怎么传。你会发现本章所有"玩具实验"在真实机器上都有一比一的对应物,只是规模与参数不同。
一个值得在本章门口立下的学习心法:密码学材料的所有结论都可以"两遍学习"——第一遍当公式背下来(通过考试),第二遍当工具用起来(通过实战)。本教程把重心压在第二遍:每个材料都配了能跑的实验,跑通它、改坏它、看它怎么报错,材料才真正长进你的手感里。带着这份手感进车间,第 3 章的每个数据结构你都会觉得眼熟——它们全是本章材料的不同焊接方式。