“拜占庭将军”问题

在分布式计算机系统中,“拜占庭将军”问题是经常面临的经典问题。

它旨在解决分布式计算机网络在网络中某些节点试图传递欺诈性信息的情况下,如何达成可靠的共识。

互联网为商业和教育开辟了许多新的途径,那么怎样才能相信来自世界各地的节点不是“恶意”节点呢?

首先来想象这样一个场景: 强大的拜占庭帝国想夺取一座城市,并意图完全包围它。

为了确保军队能够包围城市,必须分成由不同将军率领的军团,每个军团由直属的将军指挥, 而将军们之间只能通过信使进行交流,那么将军们如何能够高效准确的进行沟通,而不必担心信息或计划受到损害呢?

所有指挥官必须就以下两个行动计划中的一个达成一致:

一是所有人在特定时间点同时发起进攻; 二是如果面临激烈的抵抗,则全面撤退。

如果在进攻或撤退等方向上没有达成统一的共识, 那么拜占庭军队将遭受大规模的伤亡;

理想的情况下,所有的将军和信使都值得信赖, 那么共识也就不成问题;

然而现实情况中,一些将军或信使可能成为叛徒, 那么他们很有可能不遵守命令或是传递错误的消息, 因此必须对信息进行某种形式的验证以确保不会受到侵害。

将军们之间能够相互通信以验证正在传输的消息, 如果存在差异,则很容易确定谁是叛徒。

与制定作战计划的决策者将军们沟通进攻计划不同的是,

比特币节点之间传递的是交易的有效性, 各个节点之间组成“点对点”的网络,用于检查其他节点所发送交易的有效性。

在计算机科学领域,这个问题特指必须应对系统中某些组件故障的可能性,

若节点出现问题,需确保整个网络不会因此停止运转,区块将继续正常生成。

“拜占庭将军问题”这个术语在区块链世界中经常使用, 它指的是在公共区块链中达成共识的问题,而不是各方都是值得信赖的。

Leave a Reply

Your email address will not be published.