区块链/等级 I · 货币/1.2 密码朋克之路/课程 7
双花问题与拜占庭将军问题
在找到解决方案之前存在的信任问题
材料区块浏览器界面(例如 mempool.space 或 blockchain.com)中本聪白皮书,第4节兰波特等人,《拜占庭将军问题》(1982年)
好奇
- 如果一个数字文件可以被完美、瞬间地复制,那么有什么能阻止它被花费两次?
- 一群没有共同身份、也没有领导者来调解分歧的陌生人,如何能就同一段历史达成一致?
- 在开放网络中,是什么让一张选票比另一个人的口头承诺更有分量?
探索
- 数字代币只不过是一个文件。与实物现金不同,它可以被逐位复制,零成本且毫无损耗。如果爱丽丝向鲍勃发送10个单位,她仍保留着原始文件,可以同时把这10个单位再发送给查理。在2008年之前,每一个可用的数字现金系统都依赖可信的发行方:在线方案对每笔支付进行集中核验,而离线方案只能在事后识别出双花者。
- 大卫·乔姆的DigiCash要求每个收款方都将硬币存入银行,由银行将每个序列号与已花费硬币列表进行比对。哈尔·芬尼的可重复使用的工作量证明,依靠一台在安全硬件上运行开源代码的服务器来追踪已花费的代币。戴伟的b-money设想由服务器缴纳押金,作弊会被罚没,但从未被实现。每一种设计的核心都保留了一个可信方或一个已知群体。
- 1982年,莱斯利·兰波特、罗伯特·肖斯塔克和马歇尔·皮斯在《ACM编程语言与系统汇刊》上形式化地提出了“拜占庭将军问题”。包围一座城市的将军们必须就进攻还是撤退达成一致,但其中一些将军是叛徒,会发送相互矛盾的消息;而信使本身是可靠的。在消息不带签名的情况下,只有当叛徒少于三分之一时(n ≥ 3f+1)才可能达成一致;若叛徒达到或超过三分之一,任何协议都无法保证达成一致。
- 像PBFT这样的经典容错协议需要一组已知且固定的参与者。这适用于银行内部账本,但在任何人都能加入的开放网络中则行不通。2002年,约翰·杜塞尔指出了女巫攻击:攻击者可以生成无限多的虚假身份,稀释诚实的投票或控制法定人数。在开放的点对点网络中,身份廉价且无穷无尽,因此任何以身份计票的机制都可能被单个行为者接管。
- 中本聪的白皮书直接回应了这一问题。其摘要将比特币呈现为一种无需可信第三方即可解决双花问题的方案。该系统不依赖身份或机构信任,而是将每个区块与累积的工作量证明绑定在一起。投票以计算量加权,而计算量无法通过捏造身份来倍增;攻击者必须在算力上压倒诚实网络,才能改写历史。
- 其结果是概率性最终确定性。从数学意义上说,一笔交易并非永久不可逆,但随着每个新区块延长链条,它会变得越来越安全。只要攻击者控制的算力不足全网一半,交易被逆转的概率就会随每一次确认呈指数级下降。这种权衡接受了理论上被逆转的可能性,以换取无需中心控制的实际不可篡改性。打开一个区块浏览器,观察累积工作量如何随区块高度不断增长;正是这种不断累积的成本,把账本锚定在物理现实之上。
关键事实
- 1982年,兰波特、肖斯塔克和皮斯在ACM TOPLAS上发表了《拜占庭将军问题》。
- 对于未签名消息的共识,需要超过三分之二的参与者保持诚实(n ≥ 3f+1)。
- 约翰·杜塞尔在2002年描述了女巫攻击,证明了无限多的身份会瓦解传统的法定人数机制。
- 2008年之前的所有数字现金系统都依赖可信的发行方来应对双花问题。
- 比特币通过接受工作量证明累计值最高的链来达成共识。
- 2008年11月,中本聪在密码学邮件列表上用“拜占庭将军问题”的概念解释了他的解决方案。
练习 九、六、三、一
9收集列出9种需要多方就状态达成一致的分布式系统或协议。说明谁拥有最终决策权,以及如果某一方造假会发生什么。
6归类根据其信任模型,将这9种机制分为6类:中心权威型、固定法定人数型、无需许可的工作量证明型、需要许可的权益证明型、社会共识型以及其他类型。
3提炼将这6组因素简化为安全性、去中心化与可扩展性之间的3种核心权衡。
1凝结用一句话解释,为什么以能量消耗为权重的“投票”比以身份为权重的投票更难伪造。
事实核查
日期、数字及数据均依据下方列出的已发表资料进行核实。