Designing Byzantine Fault Tolerant Consensus Mokka
Nowadays, distributed systems are used extensively. Most of these systems have to sync their changes between participants (i.e., nodes). Distributed databases are a good example. The way, how the data will be synced (i.e., sequence, order, consistency, and other) depends on the consensus algorithm. The consensus algorithm solves the problem related to reaching an agreement about the certain value between participants. One of the problems related to the consensus algorithm is a validation of taken decision about a certain value. In other words: how do I make sure that certain change has been approved by the quorum. This problem is also known as the Byzantine fault tolerance (BFT) problem. It states that certain participant (node) may start to act as a malicious node and lead the distributed to the wrong agreement and, as a result, to the wrong state. The following paper outlines the way of how a certain distributed system can reach a consensus with BFT guaranty, by using the asymmetric cryptography and Schnorr MuSig signatures and introduce the consensus algorithm "Mokka". The experimental results and benchmarks show that the suggested approach works under the same speed as the RAFT consensus algorithm (RAFT), without degradation, and providing the security features over classic consensus algorithms.