自2008年比特币作为一种作为点对点的电子现金系统出现开始,许多加密货币都被创造出来,每个加密货币都有其特定的机制。但几乎所有的加密货币都有一个共同点,那就是区块链是他们架构的核心。
除了少数例外情况外,区块链都是被有意设计成去中心化的,由分布式计算机节点网络维护的数字账本。出于这个原因,区块链技术允许建立无信任的经济系统,在其中可以执行透明和可靠的金融交易而无需中间人。加密货币正在被采用作为传统银行和支付系统的可行替代方案,这些系统严重依赖信任。正如大多数分布式计算系统一样,加密货币网络的参与者需要定期就区块链的当前状态达成一致,这就是我们所说的达成共识。但是,以安全和可信的方式就分布式网络达成共识绝非一项容易的任务。那么,如果某些节点可能出现故障或不诚实行为,分布式计算机节点网络如何就决策达成一致? 这就是所谓的拜占庭将军问题的根本问题,它产生了拜占庭容错的概念。
什么是拜占庭将军问题?
简单来说,拜占庭将军问题在1982年被认为是一个逻辑上的困境,它说明了一群拜占庭将军在试图同意下一步行动时可能会遇到沟通问题。困境假设每个将军都有自己的军队,每支军队都位于他们打算攻击的城市周围不同位置。 将军需要就攻击或撤退达成一致。只要所有将军达成共识,即协调后决定共同执行,无论是攻击还是撤退都无关紧要。因此,我们可以考虑以下目标:· 每个将军必须作出决定:攻击或撤退(是或否);· 一旦做出决定后无法改变;· 所有将军都必须就同一决定达成一致,并以同步方式执行。上述通信问题涉及这样一个事实,即一个将军只能通过信使发送的信息与另一个人进行通信。因此,拜占庭将军问题的核心挑战是信息可能以某种方式被延迟,破坏或丢失。此外,即使消息成功传递,一个或多个将军也可以选择(出于任何原因)恶意行动并发送欺诈性消息以混淆其他将军,导致行动的完全失败。如果我们将这个困境对应到区块链上,则每个将军代表一个网络节点,而节点需要就系统的当前状态达成共识。换句话来说,分布式网络中的大多数参与者必须同意并执行相同的操作以避免失败。因此,在这些类型的分布式系统中达成共识的唯一方法是至少拥有2/3以上的可靠和诚实的网络节点。这意味着如果大多数网络决定采取恶意行为,则系统容易受到故障和攻击(例如51%攻击)。
拜占庭容错(BFT)
简单来说,拜占庭容错(BFT)是能够抵抗拜占庭将军问题导致的一系列失败的系统属性。 这意味着即使某些节点出现故障或恶意行为,拜占庭容错系统也能够继续运行。拜占庭将军的问题有多种可能的解决方案,因此,有多种方法可以构建拜占庭容错系统。同样地,区块链有各种不同的方法来实现拜占庭容错,这就是我们说的共识算法。
区块链共识算法
我们可以将共识算法定义为区块链网络达成共识的机制。最常见的实现是工作量证明(PoW)和股权证明(PoS)。这里我们以比特币为例。虽然比特币协议规定了系统的主要规则,但工作量证明共识算法定义了如何遵循这些规则以达成共识(例如,在交易的验证和验证期间)。虽然工作量证明的概念比加密货币更早,但中本聪开发了一种修改版本的算法,可以将比特币创建为拜占庭容错系统。请注意,拜占庭容错算法不能100%容忍拜占庭故障,但由于成本密集型的挖矿和底层加密技术,工作量证明已被证明是区块链网络最安全可靠的实现之一。从这个意义上说,由中本聪设计的工作量证明共识算法被许多人认为是拜占庭容错最天才的解决方案之一。
结论
拜占庭将军的问题是一个有趣的困境,最终产生了拜占庭容错系统,这些系统正在各种场景中得到广泛应用。除区块链行业外,拜占庭容错系统的一些使用案例包括航空,航天和核电行业。在加密货币领域中,拥有有效的网络通信以及良好的共识机制对于任何区块链生态系统都至关重要。保护这些系统需要持续的努力,但是现有的共识算法尚未克服一些限制(例如可扩展性)。尽管如此,工作量证明和权益证明作为拜占庭容错系统来说都是有趣的方法,其潜在的应用会激发更有趣的创新。