分布式系统中的共识算法详解
一、共识问题概述
共识是分布式系统中的一个基本问题。自20世纪70年代以来,该问题就在分布式系统的研究中被广泛探讨。近年来,随着区块链技术的出现,人们对开发适用于区块链网络的分布式共识算法产生了新的兴趣。
分布式系统主要分为消息传递和共享内存两类,在区块链的语境下,我们关注的是消息传递类型的分布式系统,网络中的参与者通过相互传递消息进行通信。区块链是一种依赖共识机制的分布式系统,该机制确保了区块链网络的安全性和活性。
区块链网络主要分为许可型和公共(非许可型)两种类型,共识算法也基于这两种范式进行分类。例如,比特币是一个公共区块链,它运行工作量证明(PoW)算法,有时也被称为中本聪共识。相比之下,许多许可型区块链倾向于运行传统或经典分布式共识的变体,如伊斯坦布尔拜占庭容错(IBFT),它是实用拜占庭容错(PBFT)算法的区块链版本。
二、拜占庭将军问题
拜占庭将军问题由M. Pease、R. Shostak和L. Lamport首次提出。在分布式系统中,即使存在故障,网络中的节点也需要达成共识。为了解释这个问题,Lamport提出了一个寓言式的表述:一支拜占庭军队分成不同的部队,分布在城市周围,每个部队由一位将军指挥,他们只能通过信使相互通信。为了取得成功,将军们必须协调计划,决定是进攻还是撤退。然而,问题在于有些将军可能不忠,会恶意阻碍达成统一计划。因此,即使存在奸诈的将军,每个诚实的将军也必须就同一决策达成一致。
在数字世界中,将军由计算机(节点)表示,通信链路是传递消息的信使,不忠的将军则是故障节点。
三、容错性
共识机制的一个基本要求是具
超级会员免费看
订阅专栏 解锁全文
72

被折叠的 条评论
为什么被折叠?



