ilgyu-yi

Libplanet PBFT

2025-06-10

What is PBFT?

Practical Byzantine Fault Tolerance (PBFT) is a consensus algorithm designed to provide safety and liveness in distributed systems even when some nodes behave maliciously or fail arbitrarily — the so-called Byzantine faults.

PBFT assumes a partially synchronous network and tolerates up to f faulty replicas in a system of n = 3f + 1 total replicas. It ensures that all non-faulty replicas agree on the same sequence of client requests, despite faults.

What PBFT guarantees

Concept of PBFT

PBFT operates in view-based epochs led by a primary replica. Each client request goes through these phases:

A client accepts the result once it receives matching replies from f + 1 replicas.
If the primary is suspected of being faulty or slow, replicas trigger a view change to elect a new primary, preventing deadlocks.

Practical Implementation: Tendermint-style PBFT

Libplanet adopts a practical variant of the classic PBFT algorithm, inspired by the Tendermint consensus protocol. While classical PBFT assumes a fixed and known set of validators and involves a three-phase commit (Pre-prepare, Prepare, Commit) for each consensus round, Tendermint-style PBFT introduces several modifications to enhance scalability and real-world applicability:

By adopting these Tendermint-inspired adaptations, Libplanet achieves a more scalable and resilient consensus mechanism suitable for decentralized and partially synchronous environments, while retaining the core safety and liveness guarantees of PBFT.

← To Profile