Open In App

Consensus Problem of Distributed Systems

Consensus is a general agreement on a decision made by the majority of those involved. For example, the problem may be as simple as friends trying to decide which restaurant has multiple options to choose from or complex as decisions on distributed systems.

Need of consensus in a distributed system:

In a distributed system, nodes are distributed across the network. Some of these nodes might get failed(crash fault) or starts behaving abnormally (Byzantine Fault). In such a scenario, it becomes difficult to come to a common decision. More concisely,



So we can remove these problems by given below solutions:

Consensus Without Any Fault:

State of Network:

Steps:

Consensus With at most m Crash Faults:

State of Network:

Steps:

Consensus With at most m Byzantine Faults:

Byzantine Faults: In simple terms, a Byzantine Fault is where some nodes start behaving maliciously or abnormally. Here problem is that any such node may send two different value to two different nodes and if so happen then all our previous methods won’t work. Because previously we are sure that if a node sends a value then it will send the same value to every node. 



  State of Network:

  Steps:

Here, 

There are some more Consensus Algorithms for Permissioned Environments like RAFT, PAXOS. Apart from the above discussion, there are some more Consensus Algorithms that are used in Permissionless Environment, like Proof of Work: It is used in Bitcoin.

Article Tags :