拜占庭容错 (BFT) 是一种算法,旨在使分布式系统能够在容忍错误或恶意节点的同时,在剩余节点之间保持共识。它允许系统或网络通过抵抗诸如51% 攻击或源于某些节点传输有关虚假交易的信息的拒绝服务 (DoS) 攻击之类的攻击来继续运行。[1][2][3]
加密货币 采用去中心化模型,利用分布式节点网络独立验证和记录交易。共识对于这种去中心化框架的完整性至关重要,而拜占庭容错(BFT)在其建立中起着关键作用。[1][4]
BFT 是分布式系统固有的特性,即使在存在故障或恶意节点的情况下,也能确保网络的正常运行。当节点传播不准确的信息时,会触发拜占庭故障,这可能是由于恶意攻击、软件缺陷或节点达成共识方面的挑战等因素造成的。认识到分布式系统中拜占庭故障的必然性,实施拜占庭容错至关重要。它的功能是使系统即使在面对提供错误信息的节点时也能达成共识。[5]
区块链技术中的拜占庭容错起源于拜占庭将军问题,最初由莱斯利·兰波特、马歇尔·皮斯和罗伯特·肖斯塔克概念化。他们1982年发表的开创性论文《拜占庭将军问题》提出了一个场景,涉及拜占庭军队将军需要就进攻或撤退达成一致决定。被破坏的将军制造了一个障碍,称为拜占庭故障,而有效处理此问题的系统被认为是拜占庭容错的。[2]
这个概念在加密货币区块链网络中得到了应用,其中节点类似于军队将军,验证交易,形成一个拜占庭容错系统,即使在节点发生故障或故意欺骗的情况下也能正常运行。[2][4]
2008年,当中本聪发布比特币白皮书时,拜占庭容错开始受到广泛关注,该白皮书引入了一种能够抵抗拜占庭故障的共识方法,该方法利用工作量证明(PoW)协议。在比特币诞生后,区块链研究人员不断推进这些原则,产生了各种共识方法,如权益证明(PoS),所有这些方法都旨在实现拜占庭容错。[3]
拜占庭容错算法通过将网络节点分成组并强制它们通过消息交换进行通信来工作。这种通信允许节点验证其他节点共享的信息,从而保证所有节点对系统的当前状态达成一致共识。[1]
区块链通过共识算法采用拜占庭容错机制,以建立关于分布式账本当前状态的集体协议。这些共识算法规定了谁有权向区块链添加区块。在某些区块链中,这涉及解决一个复杂的数学问题(PoW),而在另一些区块链中,这需要质押一定数量的区块链原生货币,以促进新区块的添加(PoS)。[6]
此外,每个要包含在区块链中的新区块都会传播到网络中的所有节点。每个节点随后会验证这些区块及其交易,然后将其合并到其本地版本的区块链中。区块链技术通常采用各种 BFT 算法,例如实用拜占庭容错 (pBFT)、联邦拜占庭协议 (FBA) 和委托拜占庭容错 (dBFT) 等。[6][7]
PoW 共识算法要求网络中的矿工解决密码难题,以验证和创建存储交易数据的区块。首先成功解决难题的矿工有权将交易添加到区块并获得区块奖励,但他们需要证明他们解决了难题才能确认区块的添加。挖矿在 PoW 中涉及使用昂贵的计算机或挖矿设备,这会阻止矿工传播虚假信息,因为其他参与者会拒绝它。这也降低了恶意行为者控制系统中大多数节点的风险。[2]
另一方面,PoS 共识机制需要质押特定数量的加密货币代币才能获得验证交易的许可。一旦网络协议接受了一个人,该交易就可以包含在不断扩展的区块中,以接收区块奖励。[2]
pBFT 是一种共识算法,旨在在异步系统中高效运行,在这种系统中,对请求的响应何时收到没有明确的上限。它的运作方式是确保网络中的所有节点都拥有区块链的副本,并且可以在新的交易和区块添加到区块链之前对其进行验证。 [1][8]
在 pBFT 中,节点分为三类:领导者节点,负责向网络建议新的交易或区块,并接收来自客户端的请求;一组副本节点,在验证提案中起着至关重要的作用,通过彼此进行消息交换;以及一组客户端节点,负责发送交易请求。 [1][8][9]
FBA 是一种共识机制,旨在以比传统 BFT 算法更分散和灵活的方式实现 BFT。在任何用户请求之前,节点必须在 FBA 网络中预先建立和验证。节点有权自主选择和信任其他节点,从而形成法定人数,代表认为解决方案正确的所需最少节点数。一旦建立法定人数,相应的区块将被验证并纳入区块链。FBA 共识算法遵循以下步骤:[10][11]
dBFT(委托拜占庭容错)共识算法旨在区块链和加密货币社区内达成共识,尽管其复杂性可能对新手构成挑战。它的复杂性源于它擅长处理区块链上不可信的参与者,在这方面超越了其他算法。[12]
NEO,通常被称为“中国以太坊”,引入了委托拜占庭容错共识,强调其致力于通过数字化资产和在区块链上实施智能合约来创建“智能经济”。dBFT共识机制作为一种状态机运行,利用循环方案来定义主/备份节点并管理网络消息。以下是 dBFT 状态:[12][13]
Zilliqa 是一种软件,旨在提供高吞吐量,能够每秒完成数千笔交易。它旨在通过使用分片作为Layer 2扩展解决方案来解决区块链可扩展性问题和速度,该解决方案将其基础设施分成几个相互连接的区块链以支持更多交易。该平台允许质押和收益耕作,许多去中心化应用程序 (dApps),包括 Zilswap、Avely Finance 和 LunarCrush,将 Zilliqa 集成到他们的协议中。 [14][15][16][17]
Zilliqa 网络提供一系列功能,包括智能合约、交易结算和代币发行。其运作依赖于两个主要原则:分片,一种将网络划分为多个分片的方法,使节点能够仅处理一部分交易;以及 pBFT,一种确保网络安全和同步的算法。通过 pBFT,当至少三分之二的节点同意记录的准确性时,才能达成共识,然后将其添加到区块链中。此共识过程适用于特定分片,其中所有节点必须在最终确定微区块并将其合并到交易区块之前达成一致。此外,Zilliqa 采用工作量证明算法来分配节点身份并创建分片,从而增强平台交易记录的安全性。 [15][16]
$$widget0 [YOUTUBE@VID](C-8QUipIKts$$
Stellar (XLM),也称为恒星流明,是一个去中心化的点对点 (P2P) 网络,旨在连接全球金融系统,并为支付提供商和金融机构建立标准化协议。其目的是促进金融资产的流动,连接个人、银行和支付处理商。此外,Stellar 允许用户创建、发送和交易各种加密货币。 [20]
Stellar 使用去中心化服务器网络和分布式账本,每两到五秒在所有节点上更新一次,同时采用称为 FBA 算法的共识协议。该协议通过利用仲裁切片(或特定的网络部分)来验证交易,从而实现更快的交易处理。Stellar 网络中的每个节点选择一组“受信任”的节点,一旦交易获得此集合中所有节点的批准,则被视为已验证。这种简化的流程显着提高了 Stellar 的网络速度,使其能够每秒处理多达 1,000 个网络操作。 [21]
Neo 是一个区块链网络,旨在通过智能合约自动管理数字资产,从而建立一个使用去中心化应用程序的分布式智能经济系统。该平台允许创建 dApps,用于去中心化交易所 (DEX)、预测市场和社交网络等目的。 [18]
除了这些功能外,Neo 还为用户提供去中心化文件存储系统、身份系统和 Oracle 系统等功能,用于集成外部信息,例如价格数据。 [18][19]
Neo 区块链有两种原生加密货币:NEO,用于对协议变更进行投票;GAS,用于支付网络上的计算成本。该平台采用 dBFT 共识机制,以确保区块链安全以及在其分布式计算机网络中的同步。 [18]
dBFT 的功能类似于委托权益证明 (DPoS),并采用实时投票系统来确定哪些运行该软件的计算机可以在 Neo 区块链上生成下一个区块。这意味着任何持有 NEO 的人都可以参与网络运营。每个 NEO 代币(或 Neo 币)都可以被质押以代表一票,并且质押的 NEO 越多,投票权越大。所有质押代币的 NEO 所有者都投票给负责创建区块的共识节点。作为回报,这些共识节点会收到网络的交易费用,以 GAS 加密货币支付,用于提议和向 Neo 区块链添加新区块。 [18][19]