保护区块链:拜占庭容错的作用

每次您发送加密货币交易、接收付款或与智能合约交互时,一个由互不相识或互不信任的计算机组成的网络必须就您的交易的有效性达成一致,并永久记录该交易。其中一些计算机可能处于离线状态。另一些计算机可能被恶意行为者控制,故意发送虚假信息。然而,区块链必须在每个诚实节点上都得出相同的正确结论。

实现这一目标的机制是拜占庭容错(BFT)。它是分布式系统中最重要但又最不为人所理解的概念之一,构成了区块链技术、去中心化金融、企业账本和物联网的安全基础。

本指南涵盖了拜占庭容错从基本原理到最先进的现代实现,包括它与工作量证明和权益证明的比较、它防御的具体攻击向量、目前基于它构建的协议,以及研究人员仍在努力解决的挑战。

拜占庭将军难题:一切的起源

要理解拜占庭容错,你需要了解它旨在解决的问题。拜占庭将军问题最早由计算机科学家莱斯利·兰波特、罗伯特·肖斯塔克和马歇尔·皮斯于 1982 年在题为《拜占庭将军问题》的论文中正式描述,该论文发表在 ACM 编程语言与系统汇刊上。

这个问题可以用军事比喻来解释。想象一下,拜占庭军队的几个师包围了一座敌城。每个师都由一位将军指挥,他们之间只能通过信使沟通。他们必须就共同的行动计划达成一致:要么进攻,要么撤退。如果他们同时进攻,就能获胜。如果他们同时撤退,就能幸存下来。但如果一部分人进攻而另一部分人撤退,他们就会全军覆没。

问题在于,部分将领可能是叛徒。叛徒可能会向不同的将领发出不同的指令,有的命令“进攻”,有的命令“撤退”,其目的在于阻止他们达成一致。忠诚的将领无法简单地忽略他们怀疑是虚假的指令,因为他们无法立即识别出哪些将领是叛徒。

问题是:忠诚的将军们可以使用什么算法来保证他们都能做出相同的决定,即使其中一部分将军是叛徒,积极地试图制造分歧?

Lamport、Shostak 和 Pease 证明,只有当超过三分之二的将军忠诚时,才能找到解决方案。换句话说:一个由 n 个节点组成的系统最多可以容忍 f 个故障或恶意节点,只要 n 至少为 3f + 1。如果诚实的参与者少于三分之二,则任何算法都无法保证达成一致。

这一数学结果成为了之后所有 BFT 共识算法的理论基础。

另请阅读:哈希如何保障区块链技术安全

什么是拜占庭容错?

拜占庭容错是指分布式系统的一种特性,即使某些节点以任意方式发生故障(包括发送冲突或虚假消息、对不同参与者做出不一致的响应或恶意破坏网络),该系统仍能继续正常运行并达成共识。

“拜占庭”一词特指最严重的故障类型:任意的、对抗性的、不一致的行为。这比简单的崩溃故障(节点完全停止响应)更难处理,因为拜占庭节点有时看起来行为正常,而有时却会主动破坏共识。

在区块链技术的背景下,拜占庭容错意味着即使某些验证器或节点遭到破坏、离线或故意恶意攻击,区块链网络也能保持完整性并继续正确验证交易。

Lamport论文中确立的规则始终成立:只要网络中至少三分之二的节点诚实且运行正常,BFT系统就能达成正确的共识。一旦单个攻击者控制了超过三分之一的节点,传统BFT协议的安全保障就开始失效。

获取 UPay 加密卡

体验最佳的在线支付和无缝加密交易。

注册

非拜占庭容错与拜占庭容错:一个关键区别

并非所有容错机制都相同。理解非拜占庭容错和拜占庭容错之间的区别,有助于我们理解为什么拜占庭容错更难实现,以及为什么它对区块链如此重要。

非拜占庭(崩溃)容错机制处理的是节点可能因停止运行而发生故障的简单情况:它们崩溃、离线或变得无法访问。即使某些节点处于静默状态,系统也必须继续运行。这种情况更容易处理,因为崩溃的节点不会发送任何消息,也不会造成任何实际的混乱。像 Apache ZooKeeper 和一些较早的分布式数据库这样的系统在设计时就考虑到了崩溃容错机制。

拜占庭容错机制能够应对更棘手的情况,即故障节点可能任意行事,向网络的不同部分发送错误、冲突或具有策略性误导性的消息。拜占庭节点并非简单地保持沉默;它会积极参与,以制造混乱或阻止达成共识。区块链网络之所以容易受到这种难题的影响,是因为它们运行在开放的、无需许可的环境中,任何人(包括攻击者)都可以运行节点。

具体来说,在区块链中,拜占庭漏洞包括:矿工在提议的区块中包含欺诈性交易,验证者签署相互冲突的区块以尝试分叉,节点向不同的对等节点发送不同的交易顺序信息,以及节点通过同时向网络的不同部分广播相互冲突的交易来执行双花攻击。

对于由未知且可能具有对抗性的各方运营的公共区块链而言,能够容忍崩溃故障但不能容忍拜占庭故障的系统是不合适的。

BFT是如何实现的:核心机制

拜占庭容错是通过三种主要机制的组合来实现的,这些机制共同作用,使诚实节点能够在敌对参与者的情况下达成一致。

冗余

拜占庭容错系统并非依赖单个节点来记录或验证交易,而是使用多个冗余节点。只要超过三分之二的冗余节点是诚实的,系统就能识别并丢弃少数错误或冲突的消息。冗余是拜占庭容错的基石:如果不使用比处理交易实际所需更多的节点,就无法实现拜占庭容错。

加密签名

拜占庭容错协议使用公钥加密技术来验证节点间的消息。当一个节点发送消息(例如对提议区块是否有效的投票)时,它会使用自己的私钥对消息进行签名。其他节点可以使用发送者的公钥来验证签名,从而确认消息确实来自其声称的发送者,并且在传输过程中没有被篡改。这可以防止最危险的拜占庭攻击之一:恶意节点通过伪造消息来冒充其他节点。

结构化共识协议

BFT共识协议为节点如何提议、投票和最终确定新数据定义了精确的规则。这些协议经过专门设计,即使某些节点发送了相互冲突的投票,诚实多数节点也能达成一致的最终结果。协议的结构消除了歧义:对于投票冲突、领导者失效以及节点对当前状态存在分歧的情况,都有明确的处理流程。

定义 BFT 共识的三个特性

无论其具体设计如何,每个 BFT 共识协议都必须满足三个基本属性:

安全性意味着任何两个正确的(诚实的)节点都不会对不同的值做出决定。如果一个诚实节点将一笔交易提交为有效,则其他诚实节点不会将其提交为无效。安全性确保区块链不会因诚实参与者的不同而产生相互冲突的历史记录。

活性意味着系统最终能够继续运行。如果足够多的正确节点提交了交易,该交易最终会被提交。网络不会永久阻塞。活性确保了诚实参与者的交易不会被无限期地阻止处理。

协议意味着,如果一个正确的节点交付了一笔交易,那么所有正确的节点都会交付相同的交易。所有诚实节点看到的都是相同顺序的数据。

安全性和活性之间可能存在冲突。分布式系统中著名的 CAP 定理表明,任何分布式系统都无法同时保证一致性、可用性和分区容错性。BFT 协议会刻意地进行权衡。大多数协议优先考虑安全性而非活性:如果太多节点行为异常,它们会停止运行,而不是提交可能错误的结果。

另请阅读:区块链中的共识是什么?

拜占庭容错算法的类型

自 1982 年的论文发表以来,BFT 已经取得了长足的发展。该领域现在包含几个不同的协议系列,每个协议系列都有不同的性能特征、信任假设和实现环境。

参见  如何利用人工智能获取加密货币策略信号

实用拜占庭式容错(PBFT)

实用拜占庭容错算法由 Barbara Liskov 和 Miguel Castro 于 1999 年在麻省理工学院提出。它是第一个足够实用,可以在分布式系统中实际部署的 BFT 算法,与早期的学术 BFT 工作相比,它以较低的开销解决了异步网络中的问题。

PBFT 的工作原理是通过节点间的三个通信阶段实现的:

预准备阶段:主节点(领导节点)接收到客户端请求后,为其分配一个序列号,并将预准备消息广播给所有其他节点(称为副本)。该消息包含请求、序列号和当前视图编号。

准备阶段:每个接受预准备消息的副本都会向其他所有副本广播准备消息。只有当副本收到至少 2f 个节点(其中 f 是系统可容忍的最大故障节点数)的匹配准备消息时,才能进入下一阶段。此法定人数要求可防止故障领导者欺骗不同的副本接受不同的序列号。

提交阶段:当一个节点收集到足够多的匹配的准备消息后,它会广播一条提交消息。副本只有在收到至少 2f + 1 个节点的提交消息后才会执行请求并回复客户端。这最终的法定人数确保即使某些发送提交消息的节点之后发生故障,仍然有足够多的已提交节点来保证结果的持久性。

当客户端收到 f + 1 个匹配的回复时,它接受结果,以确保至少有一个诚实节点确认了结果。

PBFT 的通信复杂度为 O(n²),这意味着消息数量随节点数量呈平方增长。对于几十个或几百个节点来说,这尚可接受,但大规模部署后就会变得难以处理。此外,PBFT 依赖于一组固定的、已知的验证者,因此最适合许可型或联盟型区块链环境。

PBFT 可以容忍最多三分之一(33%)的节点是拜占庭节点。数学证明,该阈值是经典 BFT 协议的理论最大值。

Hyperledger Fabric 对基于 PBFT 的共识机制的应用是企业级应用中最突出的例子。Fabric 使用一种订购服务(之前基于 PBFT,现在基于 Raft,并通过 SmartBFT 提供 BFT 升级路径),为企业应用提供高吞吐量和低延迟。沃尔玛利用 Hyperledger Fabric 追踪食品从农场到货架的整个过程,展示了 BFT 在实际供应链环境中的应用。

联邦拜占庭协议 (FBA)

联邦拜占庭协议(FBA)对信任问题采取了截然不同的方法。它并不要求所有验证者都了解并同意完整的受信任验证者集合,而是允许每个节点定义自己的“法定人数切片”,即它个人信任的其他节点的子集。

当这些独立的信任切片形成重叠集合时,系统即可达成全局共识。例如,如果节点 A 信任节点 B 和 C,节点 B 又信任节点 A 和 D,那么即使没有中央权威机构定义,它们之间重叠的信任关系也会形成一个隐式的全局法定人数。

FBA是Stellar网络以及Ripple网络(经修改后)的底层共识机制。Stellar的FBA实现可在3到5秒内完成交易最终确认,并支持每秒数千笔交易,使其适用于跨境支付。MoneyGram和其他汇款服务提供商之所以选择Stellar,正是因为其FBA共识机制能够提供支付应用所需的快速、可靠的最终确认。

FBA 方法与 PBFT 的权衡方式不同:它支持更去中心化的信任结构,但需要精心设计法定人数切片,以确保全局共识属性得以维持。如果法定人数切片定义不当,网络的部分节点可能会形成互不相连的共识组,各自达成不同的状态共识。

热门

HotStuff 是由研究人员 Maofan Yin、Dahlia Malkhi、Michael Reiter、Guy Golan Gueta 和 Ittai Abraham 于 2019 年提出的 BFT 共识协议。它作为 Facebook LibraBFT 协议(用于 Diem 区块链项目)的基础而具有极大的影响力,并为多个现代区块链共识系统的设计提供了参考。

HotStuff 的关键创新之处在于实现了线性通信复杂度 O(n),而非 PBFT 的二次方复杂度 O(n²)。它通过基于领导者的设计来实现这一点:领导者收集阈值签名中的投票,并将 n 个单独的投票聚合成一个简洁的证明。这意味着随着验证者集合的增长,通信开销不会急剧增加。

HotStuff 使用三阶段结构(准备、预提交、提交),在概念上与 PBFT 的阶段相对应,但通过流水线操作效率更高:当一个块正在提交时,下一个块已经在提议,从而显著提高了吞吐量。

HotStuff 以略高的延迟(三次往返,而 PBFT 只需两次)换取了显著更佳的可扩展性。对于拥有数百或数千个节点的大型验证节点集而言,这种权衡非常有利。Cosmos 生态系统中的 CometBFT(前身为 Tendermint Core)以及 Aptos 和 Sui 中使用的共识机制都采用了 HotStuff 系列的设计。

Tendermint 和 CometBFT

Tendermint 是一种专为区块链应用而设计的 BFT 共识算法,由 Jae Kwon 于 2014 年推出。它通过应用区块链接口 (ABCI) 将共识层与应用层分离,允许任何应用程序使用 Tendermint 共识,而无需构建自己的网络和共识基础设施。

Tendermint 通过多轮共识达成共识。每一轮,提议者广播一个区块。验证者分两个阶段进行投票(预投票和预提交)。当至少三分之二的验证者发送匹配的预提交投票时,该区块即被提交。如果该轮失败(由于提议者出现故障或网络速度过慢),则会开始新一轮,并由新的提议者发起。

Tendermint 提供即时最终性:一旦区块被提交,除非违反三分之二诚实多数假设,否则无法撤销。这相比于工作量证明等概率最终性系统具有显著优势,在工作量证明中,交易只有在多个后续区块被添加后才被视为最终。

Tendermint 每秒可处理数千笔交易,延迟约为一秒。2023 年,它更名为 CometBFT,以体现更广泛的社区治理模式。Cosmos Hub 和所有基于 Cosmos SDK 的链(到 2025 年将超过 100 条活跃链)均使用 CometBFT 作为其共识层。一个值得注意的生产环境案例是 Cosmos Hub v17.1 链的宕机,该宕机并非由 CometBFT 核心安全证明的缺陷导致,而是由 EndBlock 附近验证器集更新代码中的一个软件漏洞引起。这表明 BFT 保证存在于完整的实现堆栈中,而非理论上的孤立存在。

权益证明中的BFT:Casper和以太坊

以太坊在 2022 年 9 月通过合并过渡到权益证明机制,引入了 Casper FFG(友好最终性工具),并结合 LMD-GHOST 分叉选择,共同构成了 Gasper 共识协议。Casper 在权益证明验证者集合之上提供了类似 BFT 的最终性。

Casper 作为一种最终性机制,叠加在区块生成之上。验证者每 32 个区块槽(约 6.4 分钟)对检查点进行投票。当三分之二的质押 ETH 投票支持某个检查点时,该检查点即被“确认”。当两个连续的检查点都被确认后,较早的那个检查点将被“最终确认”。已确认的区块无法被撤销,除非攻击者销毁至少三分之一的质押 ETH,从而形成强大的经济 BFT 保证。

这种经济惩罚机制是以太坊对经典拜占庭容错机制的改编:它并非依赖纯粹的数学保证,而是通过违规行为的经济代价来确保最终性。如果验证者签署了相互冲突的区块,他们将损失全部权益(即被“惩罚”)。损失巨额资金的威胁促使诚实行为与自身的经济利益紧密相连。

工作量证明中的拜占庭容错

比特币的工作量证明(PoW)通过一种不同于传统拜占庭容错(BFT)协议的机制,实现了概率形式的拜占庭容错。中本聪在2008年发布的比特币白皮书中提出了PoW,作为在无需许可的环境下解决拜占庭将军问题的一种方案,在这种环境下,参与者身份未知且无法预先识别。

在比特币的工作量证明(PoW)机制中,拜占庭容错机制意味着,只要诚实的矿工控制着超过50%的网络总算力,即使攻击者控制的算力低于50%,也无法篡改已确认的交易历史。51%攻击的成本会随着比特币算力的增加和挖矿难度的提高而增加。

与传统的BFT协议在单轮投票后即可提供绝对最终性不同,比特币的最终性是概率性的:交易被撤销的概率会随着后续区块的增加呈指数级下降。这就是为什么传统上比特币的大额交易需要6个区块确认(大约一小时)的原因。

权衡取舍非常重要:PoW 在无需许可的环境下提供 BFT,但代价是巨大的能源消耗、缓慢的最终性(10-60 分钟)以及 51% 的攻击漏洞,而经典的 BFT 协议在其阈值下永远不会面临这种漏洞。

BFT协议比较:简要概述

协议故障阈值终局消息复杂性最适合
PBFT(卡斯特罗-利斯科夫)1/3 拜占庭hr@hksouv.comO(n²)小型许可网络
热门1/3 拜占庭hr@hksouv.comO(n)线性大型验证集
Tendermint / CometBFT1/3 拜占庭瞬时(约1秒)O(N)Cosmos 链,公共区块链
拜占庭联合协定重叠法定人数切片3-5秒请按需咨询支付网络(Stellar、Ripple)
Casper FFG(以太坊 PoS)质押以太坊的 1/3每 6.4 分钟O(n),采用 BLS 聚合公共 PoS 区块链
比特币工作量证明50% 算力概率(6+块)O(1)广播无需许可、无需信任的网络
Algorand BA1/3 拜占庭〜4.5秒亚线性VRF无需许可,快速生效

2025 年 BFT 的实际应用

Hyperledger Fabric 和企业区块链

Hyperledger Fabric 是目前生产环境中部署最广泛的企业级区块链框架。它为沃尔玛的食品溯源系统、IBM 的供应链解决方案以及数百个金融和物流应用提供支持。Fabric 的订购服务经历了重大演进:在从 PBFT 迁移到 Raft(一种适用于更简单部署的崩溃容错共识机制)之后,Fabric 推出了 SmartBFT 作为其拜占庭容错订购服务,以满足需要完全 BFT 保证的环境的需求。SmartBFT 沿用了 PBFT 的三阶段广播模式,并提供高吞吐量和低延迟,非常适合企业级应用。

参见  匿名币:目的、功能和优势

Stellar 的联邦拜占庭协议在全球支付领域

Stellar 的 FBA 实现每天处理数百万笔交易,MoneyGram、Wirex 和其他金融机构都使用它进行跨境支付。Stellar 的共识机制可在 3 到 5 秒内完成最终结算,比传统的代理银行(1 到 5 天)快几个数量级,也比大多数区块链替代方案更快。FBA 模型允许每个节点定义自己的信任关系,同时仍能达成全球共识,这使得 Stellar 的共识模型特别适合于支付网络,因为并非所有参与者都完全信任彼此,但所有参与者都希望获得可靠的结算。

Algorand 的拜占庭协议

Algorand采用了一种独特的BFT方法,称为纯权益证明(Pure Proof of Stake),并结合了密码抽签。在每一轮共识中,都会使用可验证随机函数(VRF)随机抽取一个验证者委员会。只有被选中的委员会成员才知道自己已被选中(并且可以向其他人证明这一点),这使得针对委员会成员的定向攻击几乎不可能,因为攻击者事先并不知道应该攻击谁。

Algorand 的 BA 协议在大约 4.5 秒内即可完成最终确认,生产环境中的吞吐量超过每秒 1,000 笔交易。其设计在无需许可的环境下实现了 BFT,且无需工作量证明所需的能源消耗,这一特性使其区别于比特币和传统的许可型 BFT 系统。

Cosmos 生态系统和 CometBFT

2025 年的 Cosmos 生态系统将包含超过 100 条主权区块链,所有区块链均采用 CometBFT 作为共识层。跨链通信 (IBC) 协议依赖于 CometBFT 的即时最终性保证:IBC 证明的有效性取决于 Cosmos Hub 及其对等链能否证明交易已真正完成,而不仅仅是可能完成。如果没有 BFT 共识提供的强大最终性保证,此类跨链通信将难以保障安全。该生态系统每天处理数十亿美元的跨链价值转移,所有交易均由 CometBFT 的拜占庭容错共识机制提供安全保障。

Klaytn 的伊斯坦布尔 BFT

由韩国Kakao部署的Klaytn采用伊斯坦布尔BFT(IBFT)算法,交易处理速度超过每秒4,000笔,区块时间为一秒。IBFT是与以太坊虚拟机(EVM)兼容的BFT变体,使Klaytn能够在保持与以太坊工具兼容性的同时,实现远超以太坊底层的性能。其混合公私链架构允许企业运行许可型侧链,而公共主链则维护去中心化的BFT保证。

BFT 可防御的攻击向量

了解 BFT 能防范什么,就能明确它的价值和局限性。

双花攻击

在双花攻击中,恶意攻击者试图通过同时广播两笔相互冲突的交易来两次花费同一笔资金。BFT共识通过要求三分之二的验证者对单一交易顺序达成一致才能最终确认任何交易来防止此类攻击。一旦交易在BFT系统中提交,任何针对同一笔资金的竞争交易都无法在不违反三分之二阈值的情况下提交。

日蚀攻击

在日蚀攻击中,攻击者通过恶意节点包围特定节点,使其孤立,从而控制该节点接收的所有信息。成功被日蚀的节点可以被灌输关于区块链状态的虚假信息。BFT协议通过要求获得所有验证节点中的绝大多数(而不仅仅是节点的直接邻居)的同意来防御这种攻击。即使某个节点被日蚀,更广泛的诚实节点也会拒绝与实际链状态相冲突的交易。

西比尔攻击

女巫攻击是指攻击者创建多个虚假节点身份,从而获得对网络的巨大影响力。在许可型拜占庭容错(BFT)系统中,通过要求验证者进行正式注册和认证来防止女巫攻击。在以太坊等权益证明(PoS)型BFT系统中,女巫攻击的防御机制来自于质押的经济成本:创建多个验证者需要为每个验证者质押实际价值,这使得大规模执行女巫攻击的成本非常高昂。

33%攻击阈值

传统的BFT协议只有在拜占庭节点少于三分之一时才能提供安全保障。如果攻击者控制了超过三分之一的验证节点(或在PoS-BFT系统中控制了超过三分之一的质押价值),协议的安全保障就会失效。这是BFT共识的根本局限性。这并不意味着33%的攻击者可以窃取任意资金,但意味着他们有可能阻止最终结果的达成,或者在最坏的情况下,导致诚实节点提交相互冲突的状态。

因此,33% 的阈值对于任何基于 BFT 的系统的安全模型来说都是一个至关重要的考量因素。像以太坊的 Casper 这样的协议在 BFT 阈值之上增加了经济惩罚:即使攻击者只获得了三分之一的质押 ETH,成功攻击最终性也会导致其全部质押 ETH 被罚没,这使得攻击对攻击者造成了毁灭性的经济损失。

消息操纵和重放攻击

如果没有加密签名,拜占庭节点可以拦截并篡改诚实节点之间的消息,或者重放旧的有效消息来干扰共识过程。BFT协议通过要求每条共识消息都使用发送者的私钥进行签名来防止消息篡改。嵌入在消息中的序列号和轮标识符可以防止上一轮的有效消息在后续轮次中被重放以造成混乱。

获取 UPay 加密卡

体验最佳的在线支付和无缝加密交易。

注册

获取 UPay 加密卡

体验最佳的在线支付和无缝加密交易。

注册

拜占庭容错在区块链中的优势

确定性、即时交易最终性

或许,BFT共识机制相对于工作量证明系统最重要的实际优势在于其即时最终性。在比特币中,交易在数学上永远无法最终确定;只有随着区块数量的增加,撤销交易的难度才会越来越大。而在BFT系统中,一旦在提交阶段达到三分之二的阈值,根据协议的假设,交易就会被确定地最终确定。无需等待额外的确认。

这对金融应用至关重要。如果每笔交易都可能在数小时后被撤销,支付网络就无法高效运作。去中心化金融应用需要可靠的最终性来处理清算、贷款和衍生品结算。通过 IBC 等协议进行的跨链通信需要一条链向另一条链证明特定交易的最终性。

能源效率

经典的BFT共识机制不需要像比特币的工作量证明那样进行大量的计算。验证者使用数字签名进行投票,而不是通过解决计算密集型难题。这使得BFT的能源效率显著提高。以太坊向PoS-BFT的过渡使其能耗降低了约99.95%,这主要归功于它用BFT式的验证者投票机制取代了工作量证明。

应对网络故障和恶意节点的恢复能力

只要三分之二的节点保持诚实且连接,一个实现良好的拜占庭容错协议就能持续正常运行。它能够应对崩溃故障、网络(暂时性)分区、拜占庭节点以及这些故障的组合。这种弹性正是公共区块链网络所需要的:它们无法预先知道哪些节点会发生故障或恶意行为,因此共识协议必须能够优雅地处理任意故障。

权限系统的高吞吐量

在 Hyperledger Fabric 等许可型环境中,BFT 协议可以实现极高的交易吞吐量。由于验证者集合是固定且已知的,因此通信开销是可预测且可优化的。企业级部署通常可以实现每秒数千笔交易的处理速度,并在亚秒级内完成最终确认,这种性能是工作量证明机制无法企及的,即使对于许多权益证明系统而言也极具挑战性。

防范拜占庭式漏洞和协同攻击的安全措施

拜占庭容错机制能够有效抵御协同拜占庭攻击。即使恶意节点数量少于验证节点总数的三分之一,无论其策略如何,也无法破坏共识。它们无法阻止诚实节点达成一致,无法在已达成一致的历史记录中注入虚假交易,也无法导致诚实节点提交相互冲突的状态。这种强大的安全保障已通过数学证明,而不仅仅是经验观察所得。

参见  了解中央银行数字货币(CBDC)

拜占庭容错的挑战与局限性

可扩展性约束

经典BFT算法面临的根本挑战在于,通信复杂度会随着验证者数量的增加而增长。PBFT的消息复杂度为O(n²),这意味着增加验证者数量会迅速变得不切实际。一个拥有100个PBFT验证者的网络,每次共识轮次最多需要10,000条消息。而当验证者数量达到1,000个时,则需要1,000,000条消息。

HotStuff及其衍生算法通过阈值签名聚合,将复杂度显著降低至线性O(n),从而有效解决了这个问题。但即使是线性复杂度也存在实际局限性。目前大多数基于BFT的公链维护的验证者数量只有几百到几千个,远低于比特币挖矿网络的数万个验证者。

由于可扩展性存在上限,BFT 共识在具有有限验证者集合的许可型区块链和权益证明网络中很常见,而无需许可的工作量证明仍然是优先考虑无限制参与的网络的机制。

对已知验证集的依赖

大多数拜占庭容错协议都需要一个已定义且经过认证的验证者集合。这在许可型环境和权益证明网络中运作良好,因为验证者需要质押资金才能获得资格。但在完全无需许可的环境中,任何人都可以无需注册即可参与,这就困难得多。比特币的工作量证明机制解决了无需许可的拜占庭将军问题,因为工作量证明不需要预先知道参与者是谁。

性能开销

实现拜占庭容错需要比非拜占庭容错系统更多的节点间通信。PBFT 类协议中所需的多阶段投票、收集和验证大量加密签名消息的要求,以及视图切换协议(处理失效领导者)的协调开销,都会增加延迟和计算成本。对于需要每秒处理数千笔事务且延迟极低的应用程序而言,这些开销需要精心设计。

正确实现的复杂性

BFT算法背后的数学证明是精确的:如果严格按照规范实现,协议是安全且稳定的。但软件很少能完全按照规范实现。实际实现中会包含并发错误、网络处理中的极端情况、消息时序漏洞以及密码学实现错误,即使理论设计是合理的,这些都可能在实践中违反协议的保证。Cosmos Hub v17.1链中断事件就说明了这一点:BFT的核心安全保证成立,但周边代码中的一个软件错误导致了生产中断。正确的BFT实现需要在整个实现栈中保持极高的严谨性,而不仅仅是共识轮逻辑。

33%阈值处的脆弱性

33% 的诚实多数要求既是 BFT 的优势,也是其安全上限。只要这一假设成立,系统就是安全的。但如果攻击者控制了三分之一或更多的验证者(或在 PoS-BFT 系统中控制了三分之一的质押价值),安全保障就会失效。实际上,对于成熟的网络而言,这需要耗费巨大的资源,而总质押价值较低的小型网络则更容易受到此类攻击。

区块链中拜占庭容错的未来

后量子BFT

当前的BFT协议依赖于易受量子计算机攻击的加密签名方案。一台足够强大的量子计算机可以破解BFT协议用于验证者投票的公钥加密技术。后量子BFT研究正在积极探索能够抵抗量子攻击的签名方案,包括基于格和基于哈希的加密技术。硬件钱包Trezor Safe 7已经实现了符合NIST标准的后量子加密技术用于固件验证,这表明更广泛的加密生态系统正在朝着抗量子攻击的方向发展。随着量子计算的进步,BFT协议也需要跟上这一步伐。

异步BFT协议

经典的PBFT及其大多数衍生算法依赖于部分同步假设:它们假定消息延迟最终是有界的,即使该界值未知。在完全异步条件下(消息延迟可能任意长),FLP不可能定理证明确定性共识是不可能的。然而,使用可验证随机函数的随机化异步BFT协议即使在完全异步条件下也能实现概率共识。HoneyBadgerBFT和Dumbo就是异步BFT协议的例子,它们即使在网络状况严重恶化的情况下也能可靠地工作。

通过分片和第二层实现可扩展性

突破BFT可扩展性瓶颈的一个很有前景的方法是利用分片技术并行运行多个BFT实例。分片技术将网络划分为多个子集(分片),每个分片对一部分交易运行各自的BFT共识机制。以太坊的路线图就包含了分片技术以及类似BFT的最终性机制。Cosmos的应用链架构是另一种横向扩展方式:每个应用运行自己的CometBFT链,从而分散共识负载。像Rollup这样的二层解决方案则通过在链下批量处理交易并使用BFT安全链进行最终结算,进一步扩展了可扩展性。

物联网中的BFT

物联网网络为BFT共识提供了一个极具吸引力的应用场景。数十亿物联网设备必须在分布式网络中安全地协调和共享数据,而单个设备可能遭受物理损坏、断电或被蓄意篡改。2025年的研究表明,基于BFT的算法能够提供物联网应用所需的低延迟,但其高昂的计算成本和33%的攻击漏洞使得物联网部署必须采用许可型网络架构。联网是BFT研究和部署增长最快的领域之一。

去中心化金融中的BFT

到2025年,去中心化金融(DeFi)应用的总锁定价值将超过56.3亿美元,其运行的可靠性从根本上依赖于BFT共识机制。清算、预言机价格信息、借贷头寸和衍生品结算都需要可靠、快速的最终确认。所有主流DeFi协议都运行在采用BFT式共识机制的链上:以太坊使用Casper共识机制,Cosmos链使用CometBFT共识机制,Stellar链使用FBA共识机制。随着DeFi应用变得越来越复杂,处理的价值越来越大,对BFT保障的需求只会越来越高,而不会降低。

BFT系统间的互操作性

获取 UPay 加密卡

体验最佳的在线支付和无缝加密交易。

注册

区块链的未来发展趋势是多链化。资产和信息在以太坊、Cosmos、Stellar、Hyperledger 等网络之间流动。跨链互操作性要求每条链验证其他链上交易的最终性证明。BFT 的即时最终性极大地简化了这一过程:最终的 BFT 证明简洁且可验证,这与工作量证明的概率最终性不同,后者需要等待多次确认才能确保跨链操作的安全。Cosmos 生态系统中的 IBC 协议以及更广泛生态系统中的跨链桥接设计都依赖于 BFT 的最终性来确保安全运行。互操作性研究是 BFT 协议设计领域最活跃的研究方向之一。

常見問題解答

简单来说,什么是拜占庭容错?

拜占庭容错是分布式系统的一种特性,它允许系统即使在部分参与者不诚实、出现故障或试图破坏系统的情况下也能继续正常运行。在区块链中,这意味着即使某些节点发送虚假信息或试图操纵过程,网络也能继续正确验证交易。其关键原则是,只要超过三分之二的节点是诚实的,系统就能得出正确的结论。

为什么称之为“拜占庭”容错?

这个名称源自拜占庭将军问题,这是计算机科学家兰波特、肖斯塔克和皮斯于1982年发表的一个思想实验。在这个比喻中,拜占庭将军们必须就作战计划达成一致,即使其中一些将军是叛徒,会发出虚假信息。“拜占庭式”指的是最糟糕的失败类型:任意的、对抗性的行为,而不仅仅是崩溃或沉默。

BFT系统可以容忍多少个故障节点?

包括PBFT、Tendermint和HotStuff在内的经典BFT协议最多只能容忍三分之一的节点是拜占庭节点。一个由n个节点组成的系统可以处理f个拜占庭节点,只要n至少为3f+1。如果超过三分之一的节点存在故障或恶意行为,这些协议的安全保障就会失效。在标准网络假设下,这已被数学证明是经典BFT的理论最大值。

PBFT 和 HotStuff 有什么区别?

PBFT 和 HotStuff 都是基于领导者的 BFT 协议,它们都能容忍高达三分之一的拜占庭节点,并提供即时最终确认。它们的主要区别在于通信复杂度。PBFT 每轮共识需要 O(n²) 条消息,这限制了其适用于较小的验证者集合。HotStuff 通过将投票聚合为阈值签名来实现 O(n) 线性通信,使其能够适用于更大的验证者集合。HotStuff 使用三次往返通信,而 PBFT 只需两次,虽然延迟略有增加,但可扩展性的提升足以弥补这一不足。

以太坊是否使用拜占庭容错机制?

是的。以太坊的权益证明共识机制使用 Casper FFG 作为最终确认机制,它是一种类似拜占庭容错(BFT)的投票机制。验证者对检查点区块进行投票,当三分之二的质押 ETH 投票支持某个检查点时,该检查点即被最终确认。以太坊在传统的 BFT 阈值之上增加了经济安全保障:行为拜占庭式的验证者将被罚没(失去其质押的 ETH),这使得攻击不仅在数学上难以破解,而且在经济上也极具破坏性。

免责声明:本文仅供参考,不构成任何交易或投资建议。本文内容不构成任何财务、法律或税务建议。交易或投资加密货币存在相当大的财务损失风险。在做出任何交易或投资决定之前,请务必进行尽职调查。

订阅我们的新闻推送

加入我们的社区,订阅我们的新闻通讯,随时了解最新资讯、更新和独家优惠。请在下方输入您的电子邮件地址,即可直接在您的收件箱中接收我们的每月新闻通讯。

弹出图像

体验加密货币在线支付的最佳体验

UPay 提供主流加密货币支付方式。使用我们的加密货币卡,轻松购买、兑换、支付和管理资金。无跨境费用。