什么是拜占庭将军问题?

7-30-2024, 2:12:04 AM
区块链与拜占庭将军问题有着密切的联系。区块链网络是一种分布式网络,其节点就像拜占庭将军一样,需要在不可靠的网络环境中达成交易和数据的共识。

拜占庭是古代东罗马帝国的首都,它曾经是世界上最强大、最富有的城市之一。但是,由于地域广阔,拜占庭经常遭受外敌侵略和内部叛乱。为了保卫边境,拜占庭派出了多支军队,由不同的将军指挥。将军之间如何达成信息一致性成了最大问题。
而区块链与拜占庭将军问题有着密切的联系。区块链网络是一种分布式网络,其节点就像拜占庭将军一样,需要在不可靠的网络环境中达成交易和数据的共识。

两军问题

两军问题是拜占庭问题的一个特例。
两军问题及其无解性证明最早是由E.A. Akkoyunlu、K.Ekanadham和R.V.Huber于1975年在联合发表的论文《网络通信设计的约束与权衡》(Some Constraints and Trade-offs In The Design of Network Communications)中首次提出。
1978年,JimGray在《数据库操作系统笔记》书中将这个问题正式命名为“两军问题” (Two General’s Problem)。原本是用来分析在一个不可靠的通信链路上试图通过通信以达成一致是存在问题的,后来常被用于阐述分布式系统的一致性和共识问题。

问题定义
A国的两支军队,分别由两个将军领导,正在准备攻击B国的一支军队。B国的这支军队被包围在一个山谷里,A国的两只军队A1和A2分别驻扎在山谷两边的山头上,但从A1驻扎地到A2驻扎地,只有唯一的一条山道,且必须经过山谷。同时,B军的数量和作战能力比A1军和A2军的任意一支都要强(A军知道,B军不知道),A国的任意一支军队单独去进攻B军,都会被B军击败,从而让B军逃掉,但只要A1军与A2军联合攻击,就可以战胜B军。
[图片]
问题:是否可以想出一种能让A国的两支军队的将军达成同时攻击约定的算法,该算法可包含发送和接收处理消息?

说答案:经典的两军问题是无解的,不存在一个能确保A国军队成功协商一致攻击B国的协议。但在一定的容忍条件下,可以通过一种相对可靠的方式解决大多数问题,例如TCP协议中建立连接的“三次握手”机制。

拜占庭将军问题

拜占庭将军问题是由2013年度图灵奖得主莱斯利·兰波特(Leslie Lamport)在1982年发表的论文《拜占庭将军问题》(The Byzantine Generals Problem)中首次提出。拜占庭将军问题描述了如何在存在恶意行为(如消息被篡改)的情况下实现分布式系统的一致性。
拜占庭帝国的几支军队将敌城包围,每支军队都由一名将军指挥。拜占庭的军队之间只能通过通信兵相互传达消息。在观察敌情之后后,根据敌城的军事力量,拜占庭将军们都得出相同的结论,只有超过半数的拜占庭军队共同发起进攻,才能攻破城池,取得胜利。

因此,所有的拜占庭军队必须制定一个联合行动计划,要么共同进攻,要么共同撤退。
但是,情报部门已经知道这些拜占庭军队的将军中存在叛徒,将试图破坏忠诚的将军们达成一致的联合行动计划。同时,虽然拜占庭军队的通信兵一定能不被敌方截获且确保送达消息,但是通信兵中也可能存在叛徒,可能在传信过程中篡改或伪造消息,也可能丢失消息。

问题求解
如果将拜占庭问题中的攻城军队的将军数量对应为分布式系统的节点数量,可以将符合拜占庭问题条件的分布式系统称为”拜占庭系统”,
在拜占庭系统中任意两个节点之间的通信是保证可达的,可以得出以下结论:
对于一个拜占庭系统,如果系统总节点数为Z,表示叛变将军的不可靠节点数为X,只有当Z≥3X+1时,可由基于拜占庭客容错(BFT)类算法的协议保证系统的一致性。

在实际的系统中,一般把由于系统故障导致节点不响应的情兄归类为“非拜占庭错误(Crash Fault)”,把节点伪造或篡改信息进行恶意响应的情况归类为“拜占庭错误(Byzantine Fault)”。

共识算法分类

区块链系统是一种分布式系统,特别是像比特币、以太坊等公有链系统,由大量高度分散且彼此不信任的网络节点构成,区块链共识机制就是以共识算法为核心,确保区块链系统就某个事物始终能达成数据一致且不产生分叉。
目前,根据共识算法容错类型的不同,可以将共识算法分为非拜占庭容错类(CFT,Crash Fault Tolerance)算法和拜占庭容错类(BFT,ByzantineFault Tolerance)算法。

非拜占庭容错类共识算法

对于分布式系统,非拜占庭容错类共识算法能在节点发生系统故障或非计划停机等非拜占庭错误时,确保整个分布式系统的可靠性;但是,当系统中存在恶意节点伪造或篡改数据等行为时,非拜占庭容错算法无法保证系统的可靠性。
因此,非拜占庭容错类共识算法主要用于实现封闭的、系统节点都受控的企业吸分布式系统,如某企业构建的内部分布式应用集群系统或分布式存储系统。非拜占庭容错类共识算法中最有代表性的包括PaxoS算法与Raft算法。

拜占庭容错类共识算法

拜占庭容错类共识算法能允许分布式系统节点发生任何类型的错误但错误节点数量不超过一定比例时,确保整个分布式系统的可靠性。简单的说,只要分布式系统的故障 (由于非拜占庭错误或拜占庭错误导致)节点数与系统总节点数相比,小于一定比例,拜占庭容错类共识算法就能保证分布式系统的可靠性。
由于像比特币、以太坊等区块链系统中,存在大量彼此不信任的网络节点,不排除有恶意节点企图伪造或篡改系统数据,因此,拜占庭容错类共识算法是区块链共识机制主要采用的共识算法。拜占庭容错类共识算法中最有代表性的包括PBFT实用拜占庭容错算法、PoW工作量证明算法、PoS权益证明算法等。

* 投资有风险,入市须谨慎。本文不作为 Gate 提供的投资理财建议或其他任何类型的建议。
* 在未提及 Gate 的情况下,复制、传播或抄袭本文将违反《版权法》,Gate 有权追究其法律责任。

分享

币圈日历
隼鸟升级
VeChain 已公布 Hayabusa 升级计划,定于 12 月进行。此次升级旨在显著提升协议性能和代币经济学,标志着团队所称的迄今为止最注重实用性的 VeChain 版本。
VET
-3.53%
2025-12-27
Litewallet 日落
莱特币基金会已宣布,Litewallet 应用将于 12 月 31 日正式停止服务。该应用不再积极维护,仅在此日期之前解决关键漏洞修复。支持聊天将在此截止日期后也将停止。鼓励用户过渡到 Nexus Wallet,并在 Litewallet 中提供迁移工具和逐步指南。
LTC
-1.1%
2025-12-30
OM 代币迁移结束
MANTRA Chain 发布提醒,用户需在 1 月 15 日之前将其 OM 代币迁移到 MANTRA Chain 主网。此迁移确保用户在生态系统中的持续参与,因为 $OM 将过渡到其本链。
OM
-4.32%
2026-01-14
CSM价格变动
Hedera 已宣布,从 2026 年 1 月起,ConsensusSubmitMessage 服务的固定 USD 费用将从 $0.0001 增加到 $0.0008.
HBAR
-2.94%
2026-01-27
解锁延迟
Router Protocol宣布其ROUTE代币的归属解锁延迟6个月。团队指出,与项目的开放图形架构(OGA)战略对齐以及保持长期动力的目标是推迟的主要原因。在此期间将不会进行新的解锁。
ROUTE
-1.03%
2026-01-28
sign up guide logosign up guide logo
sign up guide content imgsign up guide content img
Sign Up

相关文章

AI 概念代币分类及盘点
新手

AI 概念代币分类及盘点

该赛道的发展已经远远不止于 Meme,基金会、DAO、AI Agent 各类叙事精彩纷呈,给人以眼花缭乱之感。本文将新一代的 AI 代币梳理为 AI Meme、AI Agent、Launchpad 和 Framework/DAO 四类,帮助用户更好地了解 Crypto+AI 的投资机会。
1-6-2025, 7:43:34 AM
关于比特币八大常见误解
中级

关于比特币八大常见误解

自2009年问世以来,比特币逐渐走进走进全球大众视线。然而比特币声名鹊起背后常与各种谎言、误解联系在一起,本文将揭秘关于比特币常见误解。
9-4-2024, 6:15:31 AM
RWA——价值区块链的新叙事
新手

RWA——价值区块链的新叙事

现实世界资产 (Real World Assets,简称 RWA) 指真实世界中存在的有形与无形资产,包括房地产、债券、大宗商品、现金、证券、艺术品及知识产权等。
12-5-2024, 3:03:20 AM
分形比特币——由Unisat支持的比特币原生扩容方案
进阶

分形比特币——由Unisat支持的比特币原生扩容方案

为了解决交易缓慢和高费用的问题,Unisat 旗下的分形比特币(Fractal Bitcoin)应运而生。
8-21-2024, 8:17:45 AM
Kaito(KAITO)——去中心化 InfoFi 平台
新手

Kaito(KAITO)——去中心化 InfoFi 平台

Kaito 是一个基于 Web3 和 AI 技术的去中心化应用平台,旨在为用户提供低门槛的个性化 AI 机器人创建工具,并构建开放公平的 AI 内容生态系统。
3-3-2025, 4:07:04 AM
Gate.com 推出 PreMint —— 盘前市场的变革
进阶

Gate.com 推出 PreMint —— 盘前市场的变革

Gate.com 推出的盘前交易 PreMint 新功能,PreMint 是基于盘前交易上的质押铸造, 通过质押用户的USDT来铸造 PreToken。
9-3-2024, 3:57:45 AM