A consensus protocol has the following few key properties, which determine its applicability and efficacy:
- Safety: According to the rules of the protocol, if all nodes produce the same output and the outputs produced are valid, the consensus protocol is determined to be safe. This is also referred to as the consistency of the shared legislature.
- Liveness: The liveness of a consensus protocol is guaranteed if all the faulty nodes participating in the consensus eventually produce a value.
- Tolerance: A consensus protocol provides fault tolerance if it can recover from failure often or participate in a consensus.
- Non-repudiation: This provides the means to verify that the supposed sender really sent the message. ...