Overview

Topics:

Consensus

Modern computing is becoming more distributed. Distributed systems provide scalability, availability, and reliability. With the emergence of distributed ledger technologies (DLT), systems can now be distributed and shared between parties whose interests may not align. In order to support such a system, algorithms are designed and implemented to ensure that all parties can reliably come to an agreement, or consensus, about the state of the system, while maintaining resilience against bad actors. This is called Byzantine Fault Tolerance (BFT). Bad actors are those whose motivation is to subvert the system’s integrity. If the algorithms are also resilient to distributed denial of service attacks and malicious firewalls, then they are Asynchronous Byzantine Fault Tolerant (aBFT), which is the strongest level of security that can be achieved.

Consensus, in a general sense, is defined as an agreement and is used for group decision-making. In distributed networks, consensus describes the idea of coming to a reliable agreement on the state of a system between the members of a network. Once the state of the system has been agreed upon, the decision is final. A consensus algorithm is the process a distributed system can implement to reach agreement about the transactions that members communicate to the rest of the network.

Consensus in a distributed network can carry the following properties:

Consensus algorithms typically make the following assumptions:

The goal of a consensus algorithm is to achieve reliability of data transmitted in a network of members whose interests may not align while mitigating the faults of the network.

Alternative Consensus Mechanisms

Consensus Mechanism Description Example
Leader-based Advantages:
  • Byzantine
  • Immutable audit
  • DDoS resilient
  • Firewall / virus attack resilient
  • Low computation (No PoW)
  • High availability
Disadvantages:
  • Designed for ‘fault’ tolerance not ‘attack’ tolerance
  • Susceptible to DDoS attacks
  • Leader can influence transaction access and order
  • No fair timestamps
  • Low scalability
  • Hyperledger Fabric
  • R3 Corda
  • EOS
  • IOTA
  • EEA
  • Quorum
Proof-of-work based Advantages:
  • Immutable audit
  • DDoS resilient
  • High throughput possible
  • Scalability
Disadvantages:
  • High computation requirements
  • Firewall partitioning attacks
  • Coarse-grained timestamps
  • A miner can influence timestamps
  • A miner can influence transaction access and order
  • Ethereum
  • Bitcoin
Economy-based Advantages:
  • Immutable audit
  • DDoS resilient
  • Low computation
  • High availability
Disadvantages:
  • Not Byzantine
  • Firewall / Virus attacks
  • No certainty of consensus
  • No Fair ordering / Timestamps
  • Often: liquidity (must bond coins)
  • Often: can’t prove state to 3rd party
  • Often: no total order
  • Casper
  • IOTA
  • EOS
  • Tezos
Voting-based Advantages:
  • Byzantine
  • Immutable audit
  • DDoS resilient
  • Firewall / virus attack resilient
  • Low computation (No PoW)
  • High availability
Disadvantages:
  • Poor scalability (Impractical bandwidth requirements)
  • Individual members can influence transaction access and order
  • Low throughput
  • None

Hashgraph Consensus Algorithm

The hashgraph consensus algorithm enables distributed consensus in an innovative way. Hashgraph is a distributed consensus algorithm that is fast, fair, and secure. This indirectly creates a trusted community, even when members do not necessarily trust each other.

Permissioned vs. Permissionless Networks

A permissioned network restricts access to which members can host nodes on the network. Only trusted members can join the network and all members are known at all times. The permissioned hashgraph network is an attractive solution for enterprises that wish to share data with known parties whose interests may not perfectly align.

In a permissionless network, any member can voluntarily join the network and participate in calculating consensus. Examples of permissionless networks are the Bitcoin and Ethereum blockchains, where any user can join the network and participate in calculating consensus. All members can access and view the public ledger.

The hashgraph consensus algorithm can be implemented in both a permissioned and permissionless configuration. The Swirlds software development kit (SDK) is the permissioned network implementation of the hashgraph consensus algorithm. Hedera is the public ledger that implements the hashgraph algorithm in a permissionless environment.