The problem of reaching a Byzantine consensus was conceived and formalized by Robert Shostak, who called it the interactive problem of consistency. This work was carried out in 1978 as part of the NASA-funded SIFT project in SRI International`s Computer Science Lab. SIFT (for Software Implemented Fault Tolerance) was the brain child of John Wensley and was based on the idea of using several versatile computers that would communicate in pairs of messaging to reach consensus, even if some computers were defective. Before considering possible solutions to this problem, let me sketch out the problem more specifically and explain how it relates to you and your business. The problem is complicated by the presence of general traitors who can not only vote in favor of a sub-optimal strategy, but also selectively do so. For example, if nine generals vote, four of whom support attacks, while four others are in favor of withdrawal, the ninth general can send a vote on withdrawal to those generals in favor of withdrawal and a vote on attack to the rest. Those who got a fallback vote from the ninth general will withdraw while the rest will attack (which might not go well for the attackers). The problem is even more complicated, as generals are physically separated and have to send their voices through messengers who may not vote or falsify false voices. As Mike Maloney explains in his recent documentary, the problem of the Byzantine generals can be summed up as a question: how to ensure that several entities separated by remoteness are in perfect harmony before taking action? The typical picture of this story about computer systems is that computers are the generals and their digital communications are the messengers. Although the problem is formulated in the analogy as a decision and security problem, it cannot simply be solved in electronics by cryptographic digital signatures, as failures such as false tensions can spread through the encryption process.
Thus, a component may work for one component and appear defective for another, which prevents consensus on whether the component is defective or not. . . .