Byzantine fault-tolerant (BFT) consensus algorithms are at the core of providing safety and liveness guarantees for distributed systems that must operate in the presence of arbitrary failures. Recently, numerous new BFT algorithms have been proposed, not least due to the traction blockchain technologies have garnered in the search for consensus solutions that offer high throughput, low latency, and robust system designs. In this article, we conduct a systematic survey of selected and distinguished BFT algorithms that have received extensive attention in academia and industry alike. We perform a qualitative comparison among all algorithms we review considering message and time complexities. Furthermore, we provide a comprehensive, step-by-step description of each surveyed algorithm by decomposing them into constituent subprotocols with intuitive figures to illustrate the message-passing pattern. We also elaborate on the strengths and weaknesses of each algorithm compared to the other state-of-the-art approaches.
Read full abstract