IBFT (Istanbul Byzantine Fault Tolerance) and IBFT 2.0 are both consensus protocols used in permissioned blockchains, primarily for ensuring transaction finality while supporting Byzantine fault tolerance. However, IBFT 2.0 is an upgraded version of IBFT, featuring several key improvements aimed at enhancing stability, security, and performance. Here’s a breakdown of the main differences:
1. Protocol Rounds and Stability
- IBFT: Has a single round per block proposal. If consensus fails (due to network issues or node failures), it may result in a stalled network, as IBFT lacks a formal mechanism for recovering from failed rounds.
- IBFT 2.0: Introduces a mechanism called rounds, allowing multiple rounds of proposal and voting if a block proposal fails. This means nodes continue attempting consensus until an agreement is reached, significantly improving network resilience.
2. Improved Byzantine Fault Tolerance
- IBFT: Provides Byzantine fault tolerance but may experience issues when handling a network with just the minimum quorum of nodes required for consensus.
- IBFT 2.0: Improves Byzantine fault tolerance by refining the voting and validation process to maintain consensus even with network or node instability. This enhancement allows IBFT 2.0 to handle faulty nodes more effectively, minimizing the risk of deadlocks.
3. Voting and Validation Process
- IBFT: Uses a basic pre-prepare, prepare, and commit process for block finality, but without the option for additional rounds, leaving it susceptible to network stalls.
- IBFT 2.0: Adds a new stage to the voting process, supporting an additional round-change phase. If consensus isn’t achieved in the initial round, nodes can switch to a new round with a new leader, ensuring that block finality progresses without stalls.
4. Leader Election and Rotation
- IBFT: Operates with a static leader election, which can make the network more vulnerable if the leader node experiences downtime.
- IBFT 2.0: Improves leader election by allowing for dynamic rotation of the leader node. This dynamic leader rotation reduces dependency on a single node and mitigates the risk of failure if the leader node is temporarily or permanently offline.
5. Performance and Network Efficiency
- IBFT: Can experience network inefficiencies and slower performance due to the lack of a fallback mechanism when consensus fails in the first round.
- IBFT 2.0: Optimized with the ability to enter additional rounds, resulting in better performance in situations with network delays or node unavailability.
6. Recovery from Failed Consensus Attempts
- IBFT: Struggles to recover from failed consensus, often requiring a manual reset or intervention to resume.
- IBFT 2.0: Automatically recovers from failed consensus attempts through the additional round-change mechanism, reducing the need for manual intervention.
Summary
In essence, IBFT 2.0 is designed to address IBFT’s limitations by adding resilience, improving fault tolerance, and providing a more dynamic consensus mechanism. These upgrades allow IBFT 2.0 to better handle network or node failures, making it a more reliable choice for permissioned blockchains requiring high availability and robust fault tolerance.
Both IBFT and IBFT 2.0 are Proof of Authority (PoA) consensus protocols. In a PoA network, a predefined set of nodes, or validators, are authorized to create and validate blocks, which differs from public consensus mechanisms like Proof of Work (PoW) or Proof of Stake (PoS).
In PoA:
- Validators are known and trusted entities, often pre-selected in permissioned networks.
- The reputation or identity of validators is at stake, which incentivizes them to act honestly.
- Consensus is faster and more resource-efficient than PoW, as there is no mining involved.
IBFT and IBFT 2.0 leverage PoA for their Byzantine Fault Tolerant (BFT) consensus mechanism, meaning they can tolerate some number of faulty or malicious validators, providing both security and efficiency in private or consortium blockchain settings.
Creating IBFT 2.0 PoA network with Besu:
https://besu.hyperledger.org/private-networks/tutorials/ibft