注: 该博客后续将不再更新, 最新版本请见本人个人主页.
拜占庭将军问题(The Byzantine Generals Problem)提供了对分布式共识问题的一种情景化描述, 由Leslie Lamport等人在1982年首次发表. 论文同时提供了两种解决拜占庭将军问题的算法:
- 口信消息型解决方案(A solution with oral message);
- 签名消息型解决方案(A solution with signed message).
本文之后将详细讲述这两种算法. 事实上, 拜占庭将军问题是分布式系统领域最复杂的容错模型, 它描述了如何在存在恶意行为(如消息篡改或伪造)的情况下使分布式系统达成一致. 是我们理解分布式一致性协议和算法的重要基础.
拜占庭将军问题描述
拜占庭将军问题描述了这样一个场景:
图1. 拜占庭将军问题