Two-Phase Byzantine Consensus for Scalable State Machine Replication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing consensus algorithms for state machine replication, such as PBFT and Zyzzyva, face limitations in scalability and performance due to multiple communication phases, especially when dealing with Byzantine faults and network delays, leading to potential state inconsistencies that require client intervention for resolution.

Innovation Solution

A two-phase Byzantine fault-tolerant consensus method that uses speculation to maintain process state consistency, employing an agreement protocol with two communication phases and a view change protocol to replace a suspected faulty primary, ensuring bounded and detectable inconsistency without client intervention through execution histories and speculative carryover.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If PBFT uses three communication phases including two all-to-all communication phases, then Byzantine consensus is achieved, but scalability is limited to applications involving only a small number of processes

Engineering Contradiction:
ImproveByzantine consensusVSAvoidscalability
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The consensus protocol is segmented into two distinct phases: a prepare phase for sequence number agreement and an execute phase for request execution. This segmentation reduces the communication complexity from O(n²) in traditional three-phase protocols to O(n) in the proposed two-phase protocol, thereby improving scalability while maintaining Byzantine consensus guarantees.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The protocol performs preliminary agreement on the sequence number in the prepare phase before executing client requests in the execute phase. This preliminary action ensures that all non-faulty processes agree on the ordering of requests beforehand, eliminating the need for a third commitment phase and reducing overall communication overhead.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If Zyzzyva uses only one communication phase in normal case, then communication cost is reduced, but if there exist any single faulty process or some network delay, it switches to a slower four-phase algorithm

Engineering Contradiction:
Improvecommunication costVSAvoidfault tolerance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The protocol dynamically adjusts its behavior based on the receipt of prepare messages. In normal operation, it proceeds directly to the execute phase after receiving a sufficient number of prepare messages, maintaining O(n) communication complexity. When faults or network delays are detected, it transitions to a four-phase algorithm, ensuring fault tolerance while optimizing for normal conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The protocol changes its operational parameters based on system conditions. When the primary is responsive and network conditions are good, it operates in the fast two-phase mode. When faults are detected or timeouts occur, it switches to the more conservative four-phase algorithm, effectively adapting to changing system parameters to maintain both performance and reliability.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If a leader process is Byzantine faulty in Zyzzyva, then the states of processes may diverge indefinitely, but inconsistency can be detected and eliminated only with the help of clients

Engineering Contradiction:
Improveclient interventionVSAvoidstate consistency
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The protocol incorporates feedback mechanisms where processes monitor the behavior of the primary and other processes. When inconsistencies are detected in the execute phase or when prepare messages are not received within expected timeframes, processes can trigger view changes to replace the faulty primary. This continuous feedback loop enables autonomous detection and correction of Byzantine faults without requiring client intervention.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs self-diagnosis and self-correction through the view change mechanism. When processes detect that the primary may be Byzantine faulty through inconsistent behavior or failure to respond, they autonomously initiate view changes to elect a new primary. This self-service capability eliminates the need for external client intervention to detect and correct state inconsistencies.

Inventive Principle:
Principle #25Self-service

4Productivity

If the agreement protocol operates in two phases even when there exist faulty processes or some network delay, then overall performance, scalability, and robustness are improved

Engineering Contradiction:
Improveoverall performanceVSAvoidconsensus correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The protocol uses lightweight, disposable prepare and execute messages that can be quickly generated and discarded. Each message contains only essential information (sequence number, request hash, process ID) rather than full request data. This approach allows the system to handle faults and network delays efficiently by rapidly generating new messages in subsequent phases without the overhead of complex message structures, thereby maintaining both performance and correctness.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS12164380B2Two-phase byzantine consensus method and system for state machine replication
Publication Date: 2024.12.10 INDUSTRY UNIVERSITY COOPERATION FOUNDATION HANYANG UNIVERSITY
  • US12164380B2 patent drawing
  • US12164380B2 patent drawing
  • US12164380B2 patent drawing

AI summary

The present disclosure relates to a two-phase Byzantine consensus method and system for state machine replication. A consensus method which is performed by a consensus system includes performing, by all of normal processes, consensus for a sequence number proposed by a process designated to be primary with respect to a client request according to an agreement protocol; and replacing the primary when the primary is suspicious of having a Byzantine fault according to a view change protocol.