这是一门完整开设的区块链系统课程。它回答的问题只有一个:
这套系统是怎么被造出来的?每一个设计决策在解决什么问题,代价是什么?
它按美国研究型大学的标准组织(Stanford CS 251、MIT 6.5610、Berkeley CS 294-144 的合集):每一个机制都先给出它要解决的问题,再给出设计,最后给出这个设计放弃了什么。
课程信息
| 项目 | 内容 |
|---|---|
| 课程编号 | CS 251 — Blockchain and Cryptocurrency Systems |
| 课程层次 | 本科高年级 / 研究生入门 |
| 先修 | 一门编程语言(能读懂 200 行程序)、基础数据结构(树、哈希表)、基础概率。不需要密码学基础——第二单元从零讲起 |
| 代码语言 | Go——Merkle 树、UTXO 状态机、共识协议、mini-EVM 全部给出可运行实现。选 Go 是因为它是这个领域的母语:go-ethereum、CometBFT、btcd 都是 Go 写的 |
| 组织方式 | 每个机制先问"没有它会怎样",再问"它凭什么成立",最后问"它的代价是什么" |
这门课不讲什么
不讲币价、不讲赛道、不讲怎么发币、不提供任何投资建议。
也不教 Solidity 语法和 Hardhat/Foundry 的用法——这些东西的半衰期是两年,而且到处都是。这门课讲的是不会过期的那一层:为什么 Gas 必须存在、为什么 n ≥ 3f+1、为什么 Rollup 的真正瓶颈是数据可用性。
⚠️ 关于时效性:这个领域有一部分内容是活的(EIP-4337、EIP-4844、各家 Rollup 的实际参数)。本课的处理方式是把「设计约束」和「当前取值」分开写——比如挑战期讲清楚它由什么决定,“7 天"只作为当前实例出现。标准变了,正文的推理仍然成立。
课程结构
课程分为七个单元,共 35 讲。
Unit 1 · 问题与信任模型(第 1–3 讲)
在讲任何技术之前,先把问题定义清楚:我们到底要解决什么,以及理论上什么是做不到的。
Unit 2 · 密码学原语(第 4–8 讲)
区块链用到的密码学其实只有四样:哈希、Merkle 树、签名、承诺。这个单元从零讲起,不假设任何背景。
- 第 4 讲:哈希函数——三种抗性与它们的区别
- 第 5 讲:Merkle 树与包含证明
- 第 6 讲:椭圆曲线与公钥——地址是怎么来的
- 第 7 讲:数字签名——ECDSA、可延展性与 Schnorr
- 第 8 讲:BLS、阈值签名、承诺与 VRF
Unit 3 · 账本与状态(第 9–13 讲)
链是一个复制状态机。这个单元讲状态怎么表示、怎么证明、怎么膨胀。
- 第 9 讲:区块与链——区块头里的每一个字段
- 第 10 讲:UTXO 模型与比特币脚本
- 第 11 讲:账户模型——nonce、重放与两种模型的权衡
- 第 12 讲:Merkle Patricia Trie 与状态根
- 第 13 讲:轻客户端、无状态验证与 Verkle 树
Unit 4 · 网络与共识(第 14–20 讲)
全课最核心的单元。共识不是"大家投票”,而是"在没有身份的世界里如何给事件排序”。开头先讲网络层——因为所有共识协议的安全性证明,都建立在"诚实节点之间能互相通信"这条网络假设之上。
- 第 14 讲:P2P 网络层——区块是怎么传开的
- 第 15 讲:工作量证明的机制与难度调整
- 第 16 讲:最长链、分叉与自私挖矿
- 第 17 讲:PoW 的经济学——安全预算从哪来
- 第 18 讲:权益证明——罚没、无利害关系与弱主观性
- 第 19 讲:BFT 共识家族——PBFT、Tendermint 与 HotStuff
- 第 20 讲:以太坊的实际共识——LMD-GHOST 加 Casper FFG
Unit 5 · 执行环境(第 21–25 讲)
从"记账"到"运行程序":链上虚拟机与它的全部约束。
- 第 21 讲:EVM 的结构——一台 256 位栈机
- 第 22 讲:Gas——为什么它必须存在
- 第 23 讲:合约存储布局——slot、mapping 与打包
- 第 24 讲:调用语义——delegatecall、代理与可升级性的代价
- 第 25 讲:交易生命周期、账户抽象与并行执行
Unit 6 · 扩容与跨域信任(第 26–31 讲)
“把区块调大点"为什么不行,以及 Rollup 的安全到底建立在什么之上。最后两讲用同一把"信任假设"的尺子,量跨链桥和预言机——两者都是在往一个自洽的密码学系统里,注入它无法自行验证的断言。
- 第 26 讲:扩容的真实约束
- 第 27 讲:Optimistic Rollup 与欺诈证明
- 第 28 讲:ZK Rollup 与有效性证明
- 第 29 讲:数据可用性——Rollup 真正的瓶颈
- 第 30 讲:跨链桥——按信任假设分类
- 第 31 讲:预言机——链下数据的信任边界
Unit 7 · 隐私与安全(第 32–35 讲)
实验
六个实验,全部用 Go,从零实现,不依赖任何区块链库。
- 实验 1:Merkle 树与包含证明——含 CVE-2012-2459 攻击复现
- 实验 2:UTXO 链——交易验证、双花检测、区块组装
- 实验 3:共识——PoW 难度调整 + 简化 PBFT
- 实验 4:mini-EVM——栈机解释器与 Gas 计量
- 实验 5:欺诈证明、数据可用性与预言机——把三个安全性论证跑出来
- 实验 6:零知识、隐私与 MEV——把抽取器和模拟器写成代码
习题
每套习题都附完整解答,不是"答案略”。