第12章
区块链
没有银行的一本账,全世界一起记
本章导航:六个问题
导入:一份文件,为什么不能当钱
💾 数字世界的天性是复制
一张照片、一首歌、一个文档——发送给别人之后,你手里那份完好无损。复制成本几乎为零,这是数字技术的根基。
💸 但钱恰恰相反
现金递出去,你手里就没了。把 100 元变成一个数字文件发给别人——谁能保证你没留副本、不会再花一次?
这就是双重支付(double spending)问题:
同一份数字资产,被先后支付给两个对象。
货币五千年:信任的载体一直在换
金属货币的困局
沉重、难携带,撑不起扩大化的贸易——纸币应运而生。
法币的本质
纸的价值不在纸,而在发行者的信用背书,故称“法”币。
电子货币的实质
网银与移动支付只是法币换了个流通形式:银行服务器里的一条记录,信任结构没变。
双重支付:数字现金的原罪
🏦 银行的解法
银行维护唯一的中心账本:付款时先验余额、再扣减、再入账。同一笔钱花第二次时,余额已经不够——双花被账本天然挡住。
代价:所有人必须信任这一个裁判——信它不篡改、不宕机、不滥权。
⛓️ 比特币的命题
把账本公开给全网共同维护:每笔交易广播给所有节点,按公开协议验证并按时间顺序记账。
命题:在没有任何人被特别信任的前提下,让所有人对“这笔钱花没花过”达成一致。
两种支付路径
中本聪:一篇论文与一个创世区块
十七年价格过山车
先认识工具:哈希算法
哈希算法是一种单向函数:把任意长度的输入,转换成固定长度的输出——“哈希值”(摘要)。比特币主要用 SHA-256(输出 256 位)与 RIPEMD160。
算得出,反推不出
由输入算输出很容易;由输出反推输入几乎不可能,只能暴力穷举。
几乎不会撞车
不同输入得到相同输出的概率低到可忽略——抗碰撞性。256 位的碰撞以现有算力在可预见的未来内撞不出来。
改一比特,全盘变样
雪崩效应:输入改动一个比特,输出面目全非、无规律可循——篡改无所遁形。
哈希长什么样:一次真实计算
Merkle 树:一区块交易的总指纹
区块解剖:头部六件套
链式结构:牵一发而动全链
“不可篡改”的真相:不是不能,是不划算
区块链的“不可篡改”不是某种加密魔法让篡改在技术上不可能,而是让篡改在经济上极其昂贵:重算一个区块要付出真实的计算成本,而你要追赶的是一条还在不断延长的链。
改一笔交易
Merkle 根立刻对不上——先过指纹这一关。
重算一串哈希
篡改点之后每个区块都要重新挖矿,成本随深度累积。
还要赢过全网
你的伪造链必须比诚实链更长才会被接受——等于和全网算力赛跑。
动画:《哈希链与工作量证明》(2 分 38 秒)
密钥对:你的身份就是一把私钥
数字签名:不用银行核身的证明
防伪造
只有私钥持有人能生成有效签名,别人冒充不了。
防篡改
签名与内容绑定,交易被改动后验签必然失败。
防抵赖
验签通过即证明本人发起过,事后无法否认。
钱包与助记词:自己对自己负责
🌱 HD 钱包与助记词
现代钱包用分层确定性(HD)技术:一组十几到二十几个常用单词组成的助记词,就能推算出几乎无限个地址。用户要保管的不再是一串串密钥,而是这一组词。
⚠️ 没有客服的银行
助记词或私钥遗失——资产永久无法找回;泄露——任何人都能在你不知情时转走资产。没有挂失,没有撤销,没有人工审核。
没有账户的账本:UTXO 模型
找零:UTXO 必须整笔花
互动:UTXO 找零拼单器
👛 你的钱包(点击选用 UTXO)
规则:选中的 UTXO 必须整笔作为输入花掉,不能只花一部分——拼凑与找零都由此而来。
🧾 这笔交易
脚本与多重签名:可编程货币的伏笔
🔓 锁定与解锁脚本
转账不是“把钱打到地址”,而是给输出附一段脚本:谁能提供满足条件的解锁脚本(最常见:匹配的公钥+有效签名),谁就能花这笔钱。条件可以编程——这是“可编程货币”的由来。
🔑 多重签名(multisig)
可设定“三把私钥中至少两把签名才能动用”(2-of-3)。交易所、机构托管、家庭资产规划常用它分散单点风险:一把丢了、被盗了,钱还在。
挖矿:一道只能靠试错的题
难度目标:把出块稳在十分钟
🎯 目标越小越难
合格哈希要小于难度目标——直观表现为前面有足够多的 0。目标由协议动态调整:全网算力涨,题就变难;算力退,题就变易。
⏱️ 恒定的节奏
无论算力如何增减,调整的目标只有一个:全网平均每 10 分钟出一个新区块。出块节奏写进协议,不随矿场扩容而加速。
分叉、最长链与六次确认
减半与 2100 万:写死的发行曲线
| 减半次数 | 大致时间 | 每区块奖励 | 累计已发行占比(约) |
|---|---|---|---|
| 创世 | 2009 年 1 月 | 50 BTC | — |
| 第 1 次 | 2012 年 11 月 | 25 BTC | ≈50% |
| 第 2 次 | 2016 年 7 月 | 12.5 BTC | ≈75% |
| 第 3 次 | 2020 年 5 月 | 6.25 BTC | ≈87.5% |
| 第 4 次 | 2024 年 4 月 | 3.125 BTC | ≈93.75% |
| 第 5 次 | ≈2028 年 | 1.5625 BTC | ≈96.875% |
| 最终 | ≈2140 年 | 趋近于 0 | 上限 ≈2100 万枚 |
批评一:一年耗掉一个国家的电
🔌 批评方
据剑桥大学等机构估算,比特币年耗电长期在一百多太瓦时,约合一个中等规模国家的全年用电。PoW 的安全性建立在“算力越大越难篡改”之上——能耗不是 bug,是这套安全模型的账单。
🌱 辩护方
相当比例的矿场已转向水电、光伏等可再生能源与富余电力(如丰水期弃电);且比特币能耗占全球电力消耗的比重相对有限,应与它提供的价值一并权衡。
批评二至五:慢、晃、假名与量子
| 支付网络 | 每秒交易数(TPS) | 确认时间 |
|---|---|---|
| 比特币主链 | ≈3~7 | ≈10 分钟 ~ 1 小时 |
| 比特币闪电网络 | 理论可达数百万 | 秒级 |
| Visa 网络 | ≈1,700(日常) | 秒级 |
| 支付宝 | 峰值超过 50 万 | 秒级 |
价格波动
几个月内翻倍又腰斩屡见不鲜——讨论已从“取代日常货币”转向“类黄金的价值储存”。
“假名”而非匿名
每笔交易永久上链可查,链上分析公司已能借交易图谱追踪赃款;但跨境通道的监管仍相对薄弱。
量子威胁
足够强的量子计算机理论上可由公钥反推私钥;抗量子签名提案尚在早期,比特币的准备相对滞后。
以太坊:一个 19 岁的提议
智能合约:链上的自动售货机
🤖 定义
智能合约不是法律合同,而是部署在链上、条件满足即自动执行的程序。类比自动售货机:投币、选货、出货,全程没有店员审批——规则写死在机器里,对所有人一视同仁。
📋 例:众筹合约(教材示例)
规则:30 天内筹满 100 ETH → 资金自动转给项目方;未达标 → 参与者自动取回投入。代码部署后公开可查、自动执行,项目方拿不到未达标的一分钱——前提是代码本身没有漏洞(记住这句,§12.7.5 要还账)。
账户模型回归:外部账户与合约账户
Gas:给“世界计算机”装电表
💀 问题:死循环
图灵完备意味着能写死循环——一段合约若无限执行,全网节点岂不是要陪它永远卡住?
⛽ 解法:按指令收费
每条指令标定 Gas 消耗:加减法便宜,写永久存储最贵。发起交易先预付 Gas 费(以 ETH 支付)。
🛑 熔断:耗尽即停
执行中 Gas 耗尽,交易自动终止并回滚,已消耗的 Gas 不退——恶意或失误的无限计算会被自动截断,拖不垮网络。
The Merge:从拼电力到拼押金
| 对比维度 | 工作量证明(PoW) | 权益证明(PoS) |
|---|---|---|
| 记账权获取 | 算力竞争(谁先算出答案) | 质押代币 + 随机选举 |
| 安全保障 | 篡改需要超过全网 51% 算力 | 作恶者的质押资金会被罚没 |
| 能源消耗 | 极高(矿机持续运算) | 极低(普通服务器即可) |
| 参与门槛 | 专用矿机 + 廉价电力 | 质押 32 ETH 成为验证者 |
| 代表项目 | 比特币 | 以太坊(2022 年后) |
The DAO 事件:“代码即法律”的第一次大考
⚖️ 分叉派的账
被盗是合约漏洞的恶果而非正常交易,社区共识可以也应该纠正它——挽回了大部分损失。
📜 原教旨派的账
“账本不可篡改”是区块链的立身之本,人为回滚等于亲手打破它——他们留在原链,即今天的 ETC。
以太坊生态十年:从极客玩具到金融基础设施
🌐 今天的体量(2026)
承载全球 DeFi 半数以上的锁仓资产与相当份额的稳定币供应;代币发行(ERC-20)、去中心化交易所、借贷协议、NFT 几乎都起源于此。贝莱德等资管巨头开始在其上探索现实世界资产(RWA)代币化——把国债、基金份额搬上链。
⚠️ 未解的题
合约安全风险常在;PoS 下质押向少数大机构集中的中心化隐忧;为扩容而生的二层网络(Layer 2)又带来排序器中心化等治理难题。演进仍在继续。
比特币与以太坊:核心差异总表
| 对比维度 | 比特币 | 以太坊 |
|---|---|---|
| 诞生时间 | 2009 年 | 2015 年 |
| 创始人 | 中本聪(匿名) | Vitalik Buterin(公开、活跃) |
| 核心定位 | 点对点电子现金 / 数字黄金 | 可编程的智能合约平台 |
| 账本模型 | UTXO(无账户概念) | 账户余额模型 |
| 脚本能力 | 有限(非图灵完备) | 图灵完备(支持智能合约) |
| 共识机制 | 工作量证明(PoW) | 权益证明(PoS,2022 年转型) |
| 出块时间 | ≈10 分钟 | ≈12 秒 |
| 总量上限 | 2100 万枚(硬编码) | 无硬性上限(靠销毁机制调节) |
| 货币政策 | 每 4 年减半,固定不变 | 社区可通过提案调整发行参数 |
| 协议升级风格 | 极其保守 | 相对积极,持续迭代 |
| 代表性应用 | 价值储存、跨境支付 | DeFi、代币发行、NFT、链上治理 |
两种设计哲学:稳定与进化
🥇 比特币:把“无聊”做到极致
UTXO 对开发者不友好,但资金流转纯粹到可数学证明;脚本阉割换来极小攻击面;发行曲线创世即写死,十几年未动;升级要经历漫长博弈。“稳定”本身就是产品——服务于“类黄金的价值储存”这一个目标。
🌍 以太坊:为进化留足空间
账户模型贴近直觉;图灵完备给开发者近乎无限的表达;危机时愿意硬分叉纠错,哪怕分裂;共识与货币政策十年间根本性转变。“适应性”本身就是产品——服务于“持续进化的世界计算机”。
三类链:一条开放度光谱
公有链:规则不归任何人管
🛣️ 高速公路的比喻(教材)
把公有链比作一条高速公路:原生代币(BTC、ETH)是通行费凭证,而链上流通的各种资产——如 USDT、USDC 这类按 ERC-20 标准发行的稳定币——是路上运输的不同商品。注意:公有链 ≠ 只有一种币。
⚖️ 优势与代价
优势:高度透明、抗审查——没有单一实体能改规则或冻结资产。代价:每笔交易都要全网共识,速度慢、成本高(§12.6 的 TPS 表就是这笔账)。
私有链:一个绕不开的质问
质问:既然数据全由一家组织自己管,为什么不用传统数据库,非要搭一条链?——关系型数据库在读写效率、查询灵活性上远胜区块链;若不存在多方信任问题,共识机制纯属多余的负担。
❌ 用错的场景
单部门、单系统、数据不需要跨方共享——用数据库,别为“用区块链而用区块链”。
✅ 可能有价值的场景
大型组织内部存在多个相互独立的部门或子系统,需要一本统一规则、按时间排序、可追溯、难事后篡改的共享账本——如集团内的供应链、物流、合同与资产流转记录。
联盟链:多方协作的主场(含物流)
设想 20 家银行共建跨境结算系统:用公有链,谁都能来验证,不合监管与安全要求;用私有链,一家独管,又失去“共同维护”的意义。联盟链就是为这种场景而生:一组经许可的机构共同维护,交易是否有效按联盟事先约定的共识规则裁决。
Hyperledger Fabric
Linux 基金会主导的企业级框架,广泛用于供应链管理、跨境支付。
蚂蚁链
在国内的商品溯源、合同存证等领域大量部署——物流单证与货物来源正需要这种多方共记的账本。
共同点
通常不发行公开交易的加密货币:目标不是造币,而是解决多方协作中的信任与数据一致性。
三类链对比总表
| 对比维度 | 公有链 | 联盟链 | 私有链 |
|---|---|---|---|
| 参与权限 | 任何人自由加入 | 许可机构加入 | 单一组织内部授权 |
| 记账与共识 | 全网节点按公开协议 | 联盟成员按约定规则 | 组织内部决定 |
| 治理主体 | 无单一控制者 | 多家机构共同治理 | 单一组织全权控制 |
| 原生代币 | 通常有(激励与手续费) | 通常无公开交易代币 | 无 |
| 透明性 | 全部公开可查 | 成员间可见 | 组织内部可见 |
| 典型形态 | 比特币、以太坊 | Fabric、蚂蚁链 | 企业内部共享账本 |
| 最适合 | 开放价值网络 | 跨机构协作与存证 | 集团内部多部门协同 |
别混淆:数字化 ≠ 去中心化
🧭 两个正交的维度
“公有 / 联盟 / 私有”说的是参与与治理方式;“数字货币 / 数字资产”说的是链上流通的价值载体。两者不是一一对应:联盟链、私有链同样可以定义自己的数字资产,只是开放程度与经济性质不同。
🏦 例:数字人民币(CBDC)
央行数字货币在技术上或借鉴部分区块链理念,但本质是国家法定货币的数字化,由央行发行管理——它完全数字化,却完全中心化。
收束:区块链 ≠ 加密货币
区块链真正的核心能力,是提供一种
由多方共同维护、按时间排序、可验证且难以事后篡改的共享账本。
💸 转价值
数字货币转账——它最早、最出名的应用(本章前半)。
📦 追流转
供应链中商品的溯源与轨迹登记(联盟链主场,与物流直接相关)。
🤝 撑协作
数字资产确权与跨机构数据协作的可信基础设施。
一句话带走本章:用密码学把信任从机构搬到协议
📌 本章带走的六件事
- 双重支付是数字现金的原罪:银行靠中心账本,比特币靠全网共记
- 哈希管完整性(雪崩+Merkle 根),签名管身份(防伪造/防篡改/防抵赖)
- 链式结构让篡改成本随链长上升——不可篡改是经济学,不是魔法
- UTXO 无账户:整笔花、找零自构造、差额即矿工费;余额靠扫链加总
- PoW 难解易验定记账权;难度调出块、减半定发行,总量收敛于 2100 万
- 以太坊加智能合约与 Gas,2022 年转 PoS;三链按治理分:公有/联盟/私有
✍️ 课后思考
- 习题 2:总量锁死 2100 万的通缩发行,对经济正负面各是什么?
- 习题 5:The DAO 式回滚若发生在比特币上,社区会同意吗?为什么?
- 习题 7:20 家银行的跨境结算联盟,该选哪种链?说明理由
下一章预告:第 13 章 计算机视觉 —— 从“让机器记账”到“让机器看懂世界”。