一.拜占庭将军问题解释
可靠的计算机系统得能在部分组件出故障时照样正常运转。出故障的组件可能会有个常被忽略的表现,就是把相互矛盾的数据传到系统的不同地方。那到底啥是拜占庭将军问题呢?简单说,这就是处理这类故障问题的一个抽象说法。
拜占庭将军问题属于博弈论的问题,说的是分散在不同地方的各方,在没有可信任的中央权威帮忙的情况下,要达成共识有多难。要是没人能验证其他成员的身份,网络里的成员该咋就某个实际情况达成一致呢?
博弈论是个思考框架,用来琢磨有竞争参与者的社会事件。在战略环境里,博弈论构想了竞争参与者所处的社会状况,并得出自主且有竞争关系的代理的最佳决策。
拜占庭将军就是基于博弈论的一个比方。问题是好几个将军一起围攻拜占庭。他们已经把这座城市包围了,可他们得决定啥时候一起发动攻击。要是所有将军一块儿进攻,他们就能赢;可要是攻击不同步,他们就会输。
因为他们互相发送或者接收的信件有可能被拜占庭的守卫截获或者被别人骗着发送,所以将军们之间没有安全的通信渠道。那将军们该咋协调好一块儿发动攻击呢?
这篇文章就是为了讲清楚在区块链里的拜占庭故障是个啥,以及咋解决拜占庭将军问题。
二.拜占庭将军问题研究论文概述
这篇研究论文名为《拜占庭将军问题》,由莱斯利·兰波特、罗伯特·肖斯塔克和马歇尔·皮斯在1982年发表。这篇文章的重要性从其开篇就凸显出来,因为它获得了美国国家航空航天局(NASA)、弹道导弹防御系统司令部和陆军研究办公室的资助。
早在1982年之前,拜占庭将军问题就已经在计算机科学领域被研究过,但兰波特、肖斯塔克和皮斯的这篇论文是首次尝试将这一问题转化为并行解决方案并提出建议。
这个问题可以通过一个简单的类比来理解:拜占庭军队的各个师驻扎在敌人的城市外,准备战争。将军们只能通过信使联系,他们必须就行动方案达成一致。然而,假设有一些叛徒将军试图阻止忠诚将军们的统一行动。
为了解决这个问题,忠诚的将军们需要一种安全的方式来进行计划的一致性达成(共识)和执行(协调)。尽管这个问题非常艰巨,但现代我们已经对其有了更好的理解。
值得注意的是,拜占庭将军问题并不仅限于军事通信。任何需要分散节点组(如计算机或其他物理设备)实现可靠通信的系统都可能受到这一问题的影响。
简而言之,这篇论文探讨了一个关键问题,即如何在分布式系统中实现可靠通信,无论这些系统是用于军事还是其他领域。
三.拜占庭容错(BFT)概述
分布式计算机系统可能会因为多种原因出现故障。想象一下军事场景中的拜占庭将军问题,叛徒试图干扰忠诚将军之间的通信。这种故障可能是由软件缺陷、硬件故障或恶意攻击引起的。拜占庭式的失败并不总是坏人精心策划的结果,有时只是节点在分布式网络上达成共识时遇到的困难。
任何在不同观察者看来表现出不同症状的系统故障都被称为拜占庭故障。这种故障不受节点行为类型的限制,例如,节点可能在伪装成诚实行为者时生成任意数据。
在分布式计算机系统中,拜占庭式故障几乎是不可避免的。假设发生停电,所有节点同时离线。这时,问题来了:网络还能继续运行并保持可靠的通信吗?还是整个系统会突然停止工作或变得容易受到攻击?
在一个相当安全的网络中,少量离线节点不会对网络产生明显影响。拜占庭容错就是抵御这些条件的能力。能够承受更多拜占庭故障的网络具有更高的容忍度,这意味着它们比不能承受的网络更安全。
拜占庭故障在实际系统中的发生率和分类是一个庞大且具有挑战性的主题。但是,可以通过正式定义来指定拜占庭容错。
值得注意的是,拜占庭式的缺陷是最严重且最难纠正的。核电站、航空发动机系统以及几乎所有操作依赖于大量传感器结果的系统都需要拜占庭容错。
四.分布式系统中的拜占庭将军问题
拜占庭将军问题主要影响去中心化系统,因为这些系统没有可靠的信息来源,也无法验证从其他网络用户那里获得的信息是否准确。相比之下,在集中式系统中,人们信任一个权威机构来传播准确的信息,并防止错误或欺诈信息的传播。
举个例子,在传统的金融系统中,银行被信任来为客户提供准确的账户余额和交易历史。如果哪家银行试图欺骗或误导客户,中央银行或政府会介入以恢复公众的信心。
拜占庭将军问题在于它要求系统在不同节点间达成一致的真实信息,而集中式系统并不试图解决这个问题。相反,它们选择回避这个问题,优先考虑效率而不是信息的可信度。然而,这种方式也使得集中式系统容易受到中央机构腐败的影响。
五.拜占庭将军问题示例
咱们用金钱来举个拜占庭将军问题的例子。想象一下,一个社会要想建立一个大家都能信任和认同的货币体系,该有多难。历史上,人们常常用贵金属或者稀有的东西,像贝壳、玻璃珠之类的当作货币。黄金在一定程度上解决了这个问题,因为它在像国际贸易这样的去中心化系统里得到了广泛的信任和接受。
但是,黄金的重量和纯度一直存在信任问题。所以,黄金也没能完全搞定拜占庭将军问题,这就导致货币的建立和发行最终还是落在了受信任的中央机构,主要是政府的手里。政府掌控了铸币权,让大家相信货币的重量和纯度是有保障的。不过,这也意味着拜占庭式的失败并没有通过集中式系统真正得到解决。
而且,本该值得信赖的货币中央机构——政府,有时候也会辜负这种信任,比如通过夺取、贬低或者修改货币来背叛大家的信任。要想真正解决拜占庭将军问题,货币必须是可验证、难以伪造且去中心化的。直到比特币的出现,这个目标才得以实现。
六.如何解决拜占庭将军问题?
要解决拜占庭将军问题,我们可以采用带有容错机制的协议。简单来说,就是在面对不确定情况时,选择一种能容忍错误的程序来处理。
这样一来,解决问题的方式就变成了概率性的,而不是绝对确定的,因为没有什么事情是绝对有保障的。特别是在节点之间直接通信较少的情况下,每个节点都是相对独立的。由于每个将军(节点)可能位于不同的地方,他们之间存在物理上的隔离。以下是关于实现拜占庭容错(BFT)的关键解决方案的表格:
这个表格清晰地展示了实现拜占庭容错的各种关键技术和方法。
七.区块链:拜占庭一般问题的解决方案
拜占庭的一般问题可以通过区块链技术得到解决。区块链提供了一种在不可预测的世界中进行安全可靠通信的方式。在现实世界中,大多数交易发生在彼此不认识或不信任的陌生人之间。
每个人都像是将军,等待命令来攻击或保卫他们的阵地。没有中间人来代表您仲裁攻击;您完全靠自己做决定。
区块链创建了一个可以信任的层,而无需信任每个人。这是通过一个节点网络聚集在一起,在记录真相之前就真相达成一致来实现的。如果将军不确定通信的实质内容,其他将军可以使用他们知道的真实情况来验证。
一旦一个节点记录了信息,就会向网络中的所有其他节点发送一个副本,使信息变得冗余。工作量证明(PoW)共识算法旨在实现这一目标。不良行为者仍然会试图玩弄系统,因为信息并不总是准确的。
由于该系统旨在供公众使用,因此区块链中具有容错机制和安全性。在这种情况下,需要加密来确保消息无法更改。
该系统提供密钥对,用于对通信进行数字签名以验证身份,以证明通信来自据称发送该通信的人。消息经过身份验证后,它们将被记录下来,以提高透明度和历史问责制。
八.比特币如何解决拜占庭将军问题?
在货币领域,比特币是首个成功实现拜占庭将军问题解决方案的案例。在比特币之前,许多计划和项目都试图创建独立于政府的货币,但它们都以失败告终。
比特币作为一个货币体系,需要解决所有权问题并避免双重支付。为此,比特币采用了区块链技术,即一个公共的分布式账本,用于存储所有交易的历史记录,从而在不依赖信任的情况下完成这一操作。在拜占庭将军问题的类比中,区块链就像是各方必须达成一致的真相。
如果比特币网络中的所有节点都能就哪些交易何时发生以及以什么顺序发生达成一致,那么它们就可以验证比特币的所有权并创建一个有效的、无需信任的货币系统,而无需依赖中心化机构。
九.工作量证明 (PoW) 和拜占庭将军问题
中本聪在2008年提出了比特币的概念,实际上是为了解决拜占庭将军问题。他没有直接使用这个名字,但他的解决方案在2009年比特币网络启动时开始实施。
中本聪利用加密技术和公钥加密来确保网络的安全。他用哈希函数来防止数据被篡改,并用公钥加密来验证网络用户的身份。
比特币使用了一种叫做区块链的技术。这个技术把交易信息放在一个个区块里,每个区块都记录着前一个区块的信息。这样就形成了一个链条,保证了数据的完整性和安全性。
为了让网络达成共识,比特币使用了工作量证明的方法。矿工们需要解决复杂的数学问题,才能把新的区块加到区块链上。这样做既保证了网络的安全,也实现了去中心化。
比特币网络的规则是客观的,不会因为人的意志而改变。这就意味着网络上的信息无法被随意更改,大家都可以信任这些信息。
区块链技术还让比特币网络实现了去中心化,没有哪个部分是绝对重要的,也就没有单点故障。数据被复制并分布在网络的各个角落,这样即使有部分网络出现问题,整个系统也不会崩溃。
总的来说,比特币通过工作量证明和区块链技术,成功解决了拜占庭将军问题,创造了一个既安全又去中心化的数字货币系统。
十.新颖的解决方案:权益证明 (PoS) 和委托权益证明 (DPoS)
权益证明(PoS)和委托权益证明(DPoS)是两种新的区块链共识机制,旨在解决拜占庭将军问题。
PoS机制于2012年首次部署,与基于工作量证明(PoW)的网络不同,它不依赖于加密货币挖矿。在PoS网络中,用户(称为验证者)将资金质押在系统中,拥有更多硬币的验证者可以验证更多区块并获得更大奖励。如果用户试图验证错误交易,他们可能会失去质押的资金。用户可以使用普通家用计算机进行质押,而不需要专门的挖矿设备。
一些基于PoS的网络已经开发了防止双花攻击和其他潜在安全漏洞的方法。例如,以太坊2.0将使用Casper PoS算法,该算法要求在创建区块之前,三分之二以上的节点必须就区块达成一致。
委托权益证明(DPoS)是一种类似于PoS的共识技术,于2014年首次开发。在DPoS网络中,只有少数用户(称为代表)验证交易并生成区块。任何用户都可以质押代币投票支持代表候选人,区块奖励通常与当选节点在代表选举中质押的资金数量成比例分配。
DPoS达成共识的速度比PoW或PoS快得多,这意味着可以更快地处理交易。然而,由于负责维护网络安全的节点较少,这些节点可能更容易合谋违背大多数人的最佳利益。为了避免这种情况,基于DPoS的网络定期举行代表选举,以确保代表对其决策负责。
声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!