信任的崩塌:为什么我们需要区块链
第 1 章 信任的崩塌:为什么我们需要区块链
2008 年 9 月 15 日凌晨 1 点 45 分,雷曼兄弟控股公司向纽约南区联邦破产法院递交了破产保护申请。这家运营了 158 年、账面资产 6390 亿美元、雇佣人数超过 2.5 万的金融机构,在距离它最近一次公开估值仅 72 小时之后,变成了一堆法律文件。
让这件事真正令人恐惧的,不是雷曼的倒塌本身,而是没有人能说清楚它到底欠了谁多少钱、谁又欠了它多少钱。破产保护文件被递交的那个早晨,全球金融市场骤然发现自己正凝视着一个深渊——一个没有底的、由衍生品、杠杆和错综复杂的对手方关系构成的算术深渊。一种新型的"清算失能"已经发生,系统本身不知道自己在哪个状态。
这是本章要回答的核心问题:在没有可信第三方的情况下,人类究竟能不能在陌生人之间建立确定性的信任?
1.1 一座信用的大厦,三十年建好,三个月塌了
2008 年的金融危机并不是一场偶发的灾难,它是一场酝酿了三十年的信任工程崩塌的终局。要理解这件事的技术根源,我们不需要去争论意识形态,只需要去看一个具体的东西——清算账本。
1.1.1 清算与结算——被忽略的金融基础设施
在任何一个金融体系里,最核心的基础设施不是银行,不是证券交易所,而是清算与结算系统。这两个概念经常被混用,但在技术上有本质区别:
- **清算(Clearing)**:交易双方通过账目核对,确认"我欠你多少、你欠我多少"。这是关于**意图**的。
- **结算(Settlement)**:按照清算结果完成资金实际转移。这是关于**执行**的。
这两件事之所以重要,是因为现代金融体系不是建立在"现金"之上的,而是建立在"承诺"之上的。
举一个简单的例子:
> 农民老张把 100 斤麦子卖给了面包师老李。老李说:"我现在没钱,但我下周从银行贷款出来就给你。"老张说:"行,但你得给我写个欠条。"然后老张拿着这张欠条,去集市买了盐,去铁匠铺抵了犁头修缮费,又去磨坊主那里预付了下个月的面粉加工费。
这张欠条之所以有用,不是因为那张纸本身值多少钱,而是因为所有人都相信它将来会被兑付。"大家都相信"这种共识,就是信任。
在传统社会里,这种信任由血缘、地缘或宗教担保;在现代金融体系里,这种信任被一个庞大的中心化机构——中央清算所(Central Counterparty, CCP)——所担保。全球最大的几个清算所——美国的 DTCC、英国的 LCH、法国的 LCH SA——每天清算的合同金额超过数万亿美元,承担着"保证人会付钱"的角色。
1.1.2 雷曼时刻:账本崩塌的算术难题
雷曼兄弟在 2008 年 9 月破产前夜,账面上有超过 600 万笔未平仓的衍生品合约。CDS(信用违约互换)作为最常见的衍生品,它的逻辑是:
1. 我(雷曼)认为某笔房贷不会违约; 2. 我找一个对手方(比如 AIG)签一份保险; 3. 如果房贷违约了,AIG 赔我损失; 4. 如果没违约,我定期给 AIG 付保费。
这看起来像普通保险,没问题。但是当房贷大面积违约时,所有人同时来找 AIG 要保险赔偿,AIG 就破产了。一个更糟糕的事实是,雷曼自己也买了大量 CDS——它在赌房贷会违约——可是由于对手方太多、合约嵌套太深,最后连"雷曼到底欠了谁、谁欠了雷曼"都算不清楚。
这种状态有一个专业术语:清算失能(Clearing Failure)。在分布式系统理论里,这叫账本状态不一致(Ledger State Inconsistency)——不同节点对自己及他人的财富拥有着完全不同的视图,整个系统无法收敛到唯一的状态。
更值得注意的是,雷曼不是被任何单一对手方击败的,它是被"账本算不出来"击败的。当一份金融账本复杂到人类大脑无法在合理时间内完成全部核算时,账本就失去了它的核心作用——作为真相的唯一来源。系统从一个有清晰状态的金融体系,退化成了一个混沌的钟摆。
1.1.3 中央清算体系的三个结构性脆弱点
雷曼事件暴露的并非偶然的管理失误,而是中央清算体系与生俱来的三个结构性脆弱点:
脆弱点一:单点故障(Single Point of Failure)
中央清算所是一个具体的机构,它有具体的服务器、机房、员工、董事会。当这个机构本身崩溃时,所有依赖它担保的合约瞬间失去支撑。雷曼本身就是最大的中央清算对手方之一,所以它的崩溃产生了连锁反应——这就是系统性风险。
脆弱点二:账本不透明(Ledger Opacity)
中央清算所的账本通常不公开。即使公开,因为嵌套了太多衍生品(CDS、NTRS、TRS、CDO、CDO²、CDO³……),人类大脑根本无法在合理时间内评估整个系统的总风险。这叫做系统复杂度爆炸(Complexity Explosion)——账本复杂到无人能读懂,信任也就无从验证。
脆弱点三:激励错配(Misaligned Incentives)
中央清算所本身是有商业目标的公司。它的管理层有动机去维护自己的利润、奖金和股价,而不是去维护整个系统的健康。这在博弈论里叫代理人问题(Principal-Agent Problem)——当代理人的利益和系统整体利益不一致时,灾难只是时间问题。
这三个脆弱点同时存在,构成了一个不可调和的悖论:
> 我们要把"所有人的信任"外包给"一家公司",但这家公司本身又是不完美的。
金融体系这种"用一个有限信任的机构去担保无限信任的体系"的架构,注定会在某个临界点崩溃。这个临界点,就是 2008 年。
1.1.4 中本聪的回应
就在雷曼破产两个月后——2008 年 11 月 1 日——一个化名"中本聪(Satoshi Nakamoto)"的人,在密码学邮件列表上发布了一篇论文。他在摘要里这样写:
> "本文提出了一种完全通过点对点技术实现的电子现金系统,它允许在线支付直接由一方发起并支付给另一方,中间不需要通过任何金融机构。数字签名提供了部分解决方案,但是如果仍然需要可信的第三方来防止双重支付,那么这种电子支付的主要优点就丧失了。我们提出一种使用点对点网络解决双重支付问题的方案……"
注意他的用词——"不需要通过任何金融机构"。这不是乌托邦口号,这是对一个具体技术问题的工程化回应:
> 如果信任不能由一个人类机构来承担,那么它必须由数学来承担。
他没有打算一次性修复整个金融体系,他只回答了一个最小但是最基础的问题:如何在没有第三方的情况下,让一笔支付从 A 到达 B,而不会被重复花掉?
这就是区块链的诞生。它的起点不是技术野心,而是对一次历史性金融灾难的工程化反思。
---
1.2 小镇集市上的债务纠纷:双重支付与拜占庭敌手
要真正理解区块链到底在解决什么,让我们暂时离开华尔街,回到一个更小、更接地气的场景。
1.2.1 互信村的周六晚上
有一座小镇,名叫"互信村"。镇上每个周六都有一个集市,集市的常客是三个人:
- **农民甲:老王**。他种麦子,每年秋收后会把一部分存进镇上的粮仓。
- **磨坊主乙:老李**。他负责把麦子磨成面粉,按重量收费。
- **银行家丙:张家老爷**。他掌管镇上唯一一本"总账",所有大宗债务都要登记在他那里才能生效。
集市的规则很简单:
1. 双方成交后,可以私下写欠条; 2. 但要"作数",必须周六晚上到张家老爷的账房登记; 3. 张家老爷簿记的那一份,是镇上公认的唯一真相。
每到周六晚上,老王、老李和张家老爷会围坐在账房里,把这一周的转账轧平。某一周的账务看起来可能是这样:
> 老王欠老李 100 斤麦子,老李欠张家老爷 30 元面粉加工费,张家老爷为了做中间人又给老李垫了 50 元买粮款。
张家老爷需要做几件事:
1. 核实老王确实欠老李 100 斤麦子; 2. 登记老李应该付给他 30 元; 3. 登记他为老李垫付的 50 元; 4. 把三方的账务轧平到一个让大家都认可的状态。
如果老王、老李和张家老爷三个人都是诚实的,账本很快就能结清。但问题来了——如果他们中间有人想作弊呢?
1.2.2 双重支付攻击(Double Spending Attack)
老李的作弊方式很直接:他找到老王说:"老王,咱们之间的事我记不清了,能不能重新写一张欠条?我承认欠你 100 斤麦子,约定 2025 年 6 月 1 日还清。"老王不疑有他,签了新的欠条。
可是,这笔债务已经在张家老爷的账本上登记过了。老李真正的策略是:
1. 给老王一张新的"账本外"欠条; 2. 同时在张家老爷的账本上不更新(让旧记录继续存在); 3. 等到 2025 年 6 月,他向张家老爷说:"我已经付清那 100 斤麦子了,这是兑付凭据"; 4. 然后告诉老王:"我已经把钱付到张家老爷那里了,你去找他要"; 5. 张家老爷把欠条注销,老王去张家老爷处取钱——但张家老爷那里其实从来没收到这笔钱。
这就是双重支付——同一笔债务,被支付了两次。
在纸质账本时代,张家老爷只要把账本死死锁在柜子里,老李很难绕过张家老爷重复支付。但是当账本数字化、网络化,问题一下子复杂起来了:
情形 A:消息延迟。 老王和老李可能在不同城市,债务的"确认"通过通信网络来回多次。如果有人在中间截获或复制了确认消息,就可能创造两笔独立的债务。
情形 B:消息造假。 老李本身可以伪造"我早就还给你了"的消息,发给张家老爷;张家老爷信以为真,勾销了老王账上的欠款。
情形 C:网络分区。 如果镇上突发地震,海底电缆断裂,老王和老李两边的记录各自独立,双方都不知道对方账本的最新状态。这种时候该信谁的账?
这三种情形,构成了分布式系统里最经典的一类威胁——拜占庭敌手(Byzantine Adversary)问题。
1.2.3 拜占庭将军问题
1982 年,计算机科学家 Leslie Lamport、Robert Shostak 和 Marshall Pease 在他们那篇著名的论文《The Byzantine Generals Problem》中提出了这样一个思想实验:
> 一群拜占庭将军围攻一座敌城。他们之间只能通过信使传递消息。问题是: > - 一些将军可能是叛徒; > - 信使可能在途中被截杀; > - 叛徒将军会故意撒谎; > - 在这种条件下,忠诚的将军们能就"是否进攻"达成一致行动吗?
这个问题在分布式系统理论里叫拜占庭容错(Byzantine Fault Tolerance, BFT)。
关键洞察:在传统分布式系统里,我们一般假设节点要么"活"着,要么"死"了(即崩溃故障,Crash Fault)。但拜占庭模型里,节点不仅会死,更会主动作恶——它会撒谎、串通、假装活着、广播相互矛盾的消息。
Lamport 等人给出了这个问题的数学结论:
> 如果在一个 $n$ 个将军的系统里,叛徒数量 $f$ 满足 $f < n/3$,那么存在一种算法使诚实的将军达成一致。
但是,他们的原始论文并没有给出一个能在大规模网络中推广的实用方案——因为它要求 $n$ 个将军进行多轮签名和广播,计算量巨大,并对网络同步有强假设。
接下来的 26 年里,分布式系统研究者一直在尝试两个方向:
1. 实用拜占庭容错(PBFT):Castro 和 Liskov 在 1999 年提出,运行在受控的联盟链环境里,吞吐量可达每秒数千笔交易,但前提是知道所有参与者的身份; 2. 无许可拜占庭容错:在没有准入控制、对参与方身份一无所知的开放网络里达成共识——这个方向在 1990 年代被认为是不可能的。
直到 2008 年比特币出现,人们才发现:
> 我们不需要让所有人都"同意"。我们只需要让所有人在数学上"没有别的选择"。这就是工作量证明(Proof of Work, PoW)机制的核心思想。
工作量证明的本质是把"作恶的成本"从"被发现后受惩罚"转移到"作恶需要支付真实的算力成本"。当攻击成本超过攻击收益时,作恶就不再是理性选择。这种把博弈论与密码学合二为一的设计,是过去四十年分布式系统领域最聪明的工程发明。
1.2.4 真实世界的双重支付
值得特别强调的是,双重支付不是理论上的威胁。它真实发生过。
2018 年 5 月,比特币黄金(Bitcoin Gold, BTG)遭遇了一次 51% 攻击。攻击者控制了网络总算力的 51% 以上,能改写交易历史。具体操作是:
1. 攻击者先把一定数量的 BTG 充值到某交易所,等待交易所确认后卖出提现; 2. 同时,攻击者在主链之外悄悄挖一条更长的链,把那笔充值交易逆转掉; 3. 卖出的 BTG 已经变成了真金白银离开交易所,而链上的 BTG 又回到了攻击者自己的钱包里。
单次攻击让攻击者套走了超过 1800 万美元。没有工作量证明或者类似机制保护的区块链,这种攻击就变成几乎零成本。这就是双重支付的真正恐怖之处——它不是一个哲学问题,它是一个真实的、持续的、被反复演练的攻击向量。
回到本章的核心问题:
> 在没有可信第三方的情况下,人类究竟能不能在陌生人之间建立确定性信任?
到目前为止,传统金融体系的回答是——不能。我们只能把这种"信任"外包给一个中心化的清算所。但清算所本身可能是恶意的、可能倒闭、可能根本算不过来那笔账。
能不能不要这个清算所,直接让陌生人之间达成可信的转账?比特币对此给出了肯定的回答——代价是数学、密码学和博弈论。
---
1.3 区块链 vs 传统分布式系统:CAP 三角中的不同选择
要深刻理解区块链的"非主流性",我们需要借助分布式系统理论里最重要的定理——CAP 定理。
1.3.1 CAP 定理的精确表述
CAP 定理由计算机科学家 Eric Brewer 在 2000 年提出,后由 Gilbert 和 Lynch 在 2002 年给出严格证明。CAP 三个字母分别代表:
- **C(Consistency,一致性)**:所有节点在同一时间看到相同的数据;
- **A(Availability,可用性)**:每个请求都会收到(非错误)响应,不会出现请求超时;
- **P(Partition Tolerance,分区容忍性)**:系统在出现网络分区(节点之间无法通信)时仍能继续运行。
定理的精确表述是:
> 在一个异步网络模型中,任何分布式数据存储系统最多只能同时满足三个属性中的两个。
为什么?因为当网络分区发生时,节点之间的通信被切断。要满足一致性,就必须拒绝不一致的请求;要满足可用性,就必须冒着返回过期或矛盾数据的风险。鱼和熊掌不可兼得——这是物理世界的硬约束。
1.3.2 传统分布式系统的选择地图
让我们看看几个真实的传统系统是怎么在 CAP 三角上做选择的:
| 系统 | 选择 | 含义 | 实际表现 | |------|------|------|----------| | 银行核心清算系统(Base II、CHIPS) | CA(放弃 P) | 系统在网络分区时拒绝交易,确保账本绝对一致 | 机房切换时停机数小时,绝不允许出现"双花" | | Amazon DynamoDB(多区域部署) | AP(弱化 C) | 宁可返回旧数据也不能停服,冲突稍后由后台合并 | 用户短暂看到不同区域数据不一致 | | 传统 RDBMS 主从复制(MySQL) | CA 或 CP | 主库挂掉时从库可能拒绝写入 | 读副本切换可能短暂不可用 | | MongoDB(默认配置) | CP | 主节点出问题立即停止接受写入 | 写不可用,但绝不写错 | | Cassandra | AP | 始终接受写入,冲突在后台解决 | 可能读到旧数据,但永不停止 |
注意一个有趣的事实:几乎所有传统金融系统都在追求 CA,即在网络分区时干脆停止接受交易。它们用"暂停服务"换取"绝对一致"——这在传统业务里是合理的,因为银行系统短暂停机几小时不会引发系统性恐慌。
但如果把这个原则推到极致:
> 一个全球性的、24/7 不间断运营、跨越国界、跨越多家机构、不允许任何"暂停"的支付网络——它就是不可能用 CA 模型构建的。
1.3.3 区块链的选择:一个全新的角
区块链做出的选择可以表述为 "CP 优先 + 一个第四维度"。
它的 C 不仅是表面上的"节点看到同一份数据",更是共识一致性(Consensus Consistency)——在网络分区结束时,整个系统能自发地收敛到一个唯一的状态,并且这个状态不能被篡改。
它的 P 是革命性的:它容忍网络分区,并且在分区恢复后通过共识机制选出"哪一条链才是真相"。注意这里的"选出"——传统分布式系统在分区结束时通常需要人工干预(比如 DBA 手动修复冲突),而区块链通过工作量证明等机制让系统自我收敛。
更重要的是,它引入了传统 CAP 讨论里通常不强调、但在区块链中是核心的第四个属性:
> 去中心化(Decentralization) > 抗审查(Censorship Resistance) > 不可篡改(Immutability)
这意味着:
- 没有任何单个节点可以**单方面**修改账本;
- 没有任何外部权威可以**冻结**某个用户的余额;
- 没有任何人可以让**已经发生的事**"消失";
- 系统规则由全体参与者共同维护,不是由某家公司决定。
如果用 CAP 的语言重新表述,区块链本质上是:
> 一个在网络分区结束后能自我收敛到唯一状态、且任何单方篡改都会被系统拒绝的分布式账本。
它牺牲了绝对可用性(在分叉期间可能要等若干个区块确认),但获得了数学意义上的确定性。
1.3.4 流程对比图
```mermaid flowchart LR subgraph A[传统中心化清算流程] A1[用户A发起转账] --> A2[请求中心化清算所] A2 --> A3[清算所核验余额] A3 --> A4[更新中心数据库] A4 --> A5[通知收款方银行] A5 --> A6[收款方账本到账] end
subgraph B[区块链分布式账本流程] B1[用户A签名交易] --> B2[广播到全网节点] B2 --> B3[各节点独立验证] B3 --> B4