什么是拜占庭将军问题?

什么是拜占庭将军问题?

拜占庭将军问题是分布式系统领域的一个基本问题,包含了在去中心化网络中达成共识的挑战。这个问题源自博弈论,对于理解决策动态至关重要,在决策动态中,参与者无法在通信渠道不可靠的环境中验证他人的身份或完整性。

拜占庭将军问题的核心是这样一个场景:一群将军,每人领导一个军队的一个师,必须一致决定是攻击还是从被围困的城市撤退。困境的症结在于使者的可靠性,他们很容易被城市守军拦截或腐败。忠诚的将军面临的挑战是制定一项协议,克服任何不诚实参与者的欺骗,确保就协调进攻或撤退达成强有力的共识。

这个问题在分布式计算系统中尤为突出,在没有受信任的中央机构的情况下达成共识是一个重大障碍。这个类比在比特币和其他加密货币的背景下尤其重要。解决拜占庭将军问题是比特币创建过程中的一个关键突破。它为去中心化数字货币的发展奠定了基础,其中对中央实体的信任被网络节点之间的共识机制所取代。

比特币通过加密技术和共识算法的创新组合解决了这个问题。这种组合形成了一种协议,使比特币网络中的节点能够就区块链的状态达成一致,从而确保加密货币的完整性和连续性,而无需中央机构。因此,拜占庭将军问题的解决方案成为区块链技术和加密货币发展的基石,为去中心化数字交易的新时代铺平了道路。

分布式技术中拜占庭将军问题的历史

拜占庭将军问题是计算机科学和分布式系统领域的一个关键概念,由Leslie LamportRobert ShostakMarshall Pease在 1982 年的一篇开创性论文中首次提出。这个问题概括了在计算机科学和分布式系统的各个组成部分之间达成共识的挑战。分布式系统,特别是在某些组件可能发生故障或运行不可靠的情况下。

该研究论文得到了美国宇航局、弹道导弹防御系统司令部和陆军研究办公室等著名组织的大力支持,强调了这个问题不仅在军事通信中而且在不同计算机系统中的重要性。该问题提出了这样一种情况:军队的多个师(类似于计算机网络中的节点)必须就统一的行动方案达成一致。然而,尽管系统内存在以将军及其使者为代表的不可靠或潜在的叛徒分子,但这一共识必须达成。

Lamport、Shostak 和 Pease 在他们的论文中明确指出,可靠的计算机系统必须管理一个或多个组件的故障,这些组件可能会发送相互冲突的信息。这就引出了拜占庭容错的概念,这是系统即使在组件故障的情况下也能正常运行的关键功能。

20 世纪 90 年代末,研究人员Barbara LiskovMiguel Castro开发了实用拜占庭容错 (pBFT) 算法,进一步取得了进展,增强了分布式网络中的共识。尽管 pBFT 面临挑战,特别是在可扩展性方面,但它为后续的区块链技术奠定了基础。

解决拜占庭将军问题的一个重要里程碑是中本聪 2008 年比特币白皮书,介绍了工作量证明 (PoW) 算法。这项创新提供了一种实用的解决方案,可以在去中心化和去信任的环境中达成共识,从而彻底改变了该领域,这是加密货币和区块链技术发展的基石。

拜占庭将军问题已经从计算机科学中的理论困境发展成为现代计算和加密货币技术的基本要素,强调了分布式系统中可靠通信的重要性。

流行的拜占庭容错算法

为了防止一小群有害行为者对分布式系统的破坏,必须实施强大的算法。这种需求导致了拜占庭容错共识协议的开发,有助于实现可靠的分布式计算以有效地处理拜占庭故障。

其中一个协议是实用拜占庭容错(PBFT),这是一种专为分布式系统设计的共识算法。 PBFT 可以处理多达三分之一的以拜占庭方式(任意甚至恶意)行为的节点,而不会损害网络的完整性。该算法经过专门设计,旨在以尽可能快的方式就操作顺序达成共识,同时即使面对拜占庭故障也能保持一致的操作。 PBFT 采用数字签名、超时和确认的组合来确保共识过程的持续进展,即使某些节点受到损害或恶意行为,只要大多数节点仍然值得信赖。

另一个重要的协议是联邦拜占庭协议(FBA),专为去中心化网络量身定制。 FBA 使节点无需中央机构即可达成共识。它通过形成相互信任的独立节点联盟来运作。在每个联盟内,节点就交易或事件的顺序和合法性达成一致,允许不同的联盟独立地进行共识过程。使用 FBA 实现的一个例子是 Fedimint,这是一种用于比特币交易和托管的著名开源协议。 Fedimint采用蜜獾拜占庭容错(HBBFT)共识算法,展示了FBA在实际应用中的适应性和有效性。

工作量证明(PoW)和拜占庭将军问题

2008 年 10 月,中本聪发布了第一份比特币白皮书,为 2009 年 1 月的比特币网络奠定了基础。虽然白皮书没有明确提及“拜占庭将军问题”,但它有效地为这个长期存在的问题提供了解决方案。数字通信网络中长期存在的问题。

中本聪的创新涉及使用密码安全和公钥加密来解决数字交易领域拜占庭将军问题带来的挑战。加密安全采用散列(将数据转换为唯一代码的过程)来防止篡改。公钥加密用于验证网络内参与者的身份。

比特币中的交易在区块内受到保护,每个区块都通过哈希值与前一个区块链接。这将创建一条可追溯到第一个块(称为创世块)的可追踪链。区块链采用默克尔树结构来验证源自该初始块的哈希值。

当每个块都追溯到创世块时,网络内的有效性得到了保证。矿工们竞相解决复杂的密码难题,将这些区块验证为工作量证明 (PoW) 共识机制的一部分。这种方法不仅巩固了区块链的完整性,而且还激励矿工提供真实的信息,因为创建区块的成本很高。

比特币规则的客观性消除了网络内信息篡改或争议的可能性。验证交易和铸造新比特币的标准是明确且公正的。一旦一个区块被添加到区块链中,它几乎不可能改变,从而巩固了交易的历史记录。

在这个系统中,矿工扮演的角色类似于拜占庭将军问题中的将军,每个节点负责验证交易——现代相当于原始类比中的消息。区块链对加密安全性的使用阻止了黑客(类似于类比中的敌人)的潜在攻击,因为交易被分组到块中并进行哈希处理以提高安全性。中本聪的设计引入了概率元素,将矿工置于竞争环境中来验证区块,从而增强网络的去中心化。

矿工之间的竞争涉及解决密码难题,成功的可能性取决于他们的计算能力或哈希率。解决难题的矿工会广播解决方案,然后其他矿工会验证该解决方案。谜题的难度目标确保了解决方案的准确性。

因此,比特币网络的每个成员都可以一致地同意区块链的状态及其所有交易。每个节点独立验证区块和交易的合法性,消除了网络参与者之间信任的需要。

此外,区块链的去中心化性质意味着不存在单点故障。块存储在分布式数据库中,在整个网络中复制,从而增强容错能力并确保一个节点的故障不会危及整个系统。这种冗余类似于拜占庭将军类比中的多个信使,即使其中一个信使受到损害,也能确保消息得以保留。

区块链的未来:权益证明(PoS)和委托权益证明(DPoS)

权益证明(PoS)是区块链技术中的一种共识机制,于 2012 年引入,旨在解决拜占庭将军问题。与基于工作量证明 (PoW) 的网络不同,PoS 网络不依赖于挖矿。相反,他们使用一种称为“质押”的过程。

在这个系统中,用户(称为验证者)将他们的资金作为一种安全形式。验证者持有的币越多,他们可以验证的区块就越多,他们可以获得的奖励就越高。然而,这存在一个风险:试图批准虚假交易的验证者可能会失去他们的质押资金。

PoS 允许用户使用标准家用计算机来质押代币,这与 PoW 挖矿所需的专用硬件不同。各种基于 PoS 的网络已经开发了防止双花和与拜占庭故障相关的其他安全风险的机制。例如,以太坊2.0(Serenity)计划实施Casper PoS算法,该算法需要节点之间三分之二的共识才能验证区块。

委托权益证明 (DPoS) 于 2014 年推出,是 PoS 模型的变体。在 DPoS 中,只有选定的一组用户(称为委托人)有权验证交易和创建区块。用户抵押区块链的货币来投票给代表候选人,区块奖励通常按抵押金额的比例分配。

DPoS 使节点能够比 PoW 或 PoS 更快地达成共识,从而实现更快的大规模交易处理。然而,这种速度可能是以拜占庭容错为代价的。由于负责网络安全的节点较少,串通损害大多数人利益的风险就较高。为了缓解这种情况,DPoS 网络经常举行代表选举,确保代表对其行为和决策负责。

结论

随着我们的社会越来越多地采用分布式系统和像比特币这样的去中心化货币,拜占庭将军问题对于在没有中央监督的情况下协调多个独立实体变得至关重要。在此类系统中,拜占庭容错对于确保弹性和安全性至关重要,即使存在误导性或虚假信息,也能在存在潜在欺骗和背叛的情况下达成共识。

比特币举例说明了如何创建能够抵御各种攻击的去信任环境。其工作量证明(PoW)算法通过促进矿工之间的竞争,有助于维护网络安全。这种竞争使得任何单一实体几乎不可能主宰网络,从而确保了其去中心化的性质。比特币的模型植根于拜占庭容错能力,代表了一种在面对潜在的错误信息和恶意活动时达成共识和维护安全的稳健方法。

请注意,Plisio 还为您提供:

单击 2 次即可创建加密发票 and 接受加密捐赠

12 整合

6 最流行的编程语言库

19 加密货币和 12 区块链

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.