This paper presents a consensus protocol resilient to Byzantine failures. It uses signed and certified messages and is based on two underlying failure detection modules. The first is an unreliable failure detector module of the class 3S (bz). The second is a reliable arbitrary behavior detection module. More precisely, the first module detects processes that stop sending messages, while processes experiencing other arbitrary behaviors are detected by the second module. The protocol is resilient to F faulty processes, 2 ,C) (where C is the maximum number of faulty processes that can be tolerated by the underlying certification service). The approach used to design the protocol is new. While usual Byzantine consensus protocols are based on unreliable failure detectors to detect processes that stop communicating, none of them use a module to detect their arbitrary behavior (this detection is not isolated from the protocol and makes it difficult to understand and prove correct). In addition to this modular approach and to a new consensus protocol for Byzantine systems, the paper presents a finite state automaton-based implementation of the arbitrary behavior detection module. Finally, the modular approach followed in this paper can be used to solve other problems in Byzantine systems.
Baldoni et al. described a vector consensus protocol based on two failure detectors REF .
Consensus in Byzantine asynchronous systems
JOURNAL OF DISCRETE ALGORITHMS
Computer Science