<p>PBFT is <code>Practical Byzantine Fault Tolerance</code>. It is a "classical" consensus algorithm that uses a state machine. Uses leader and block election to select a leader.</p>

<p>PBFT is a three-phase, network-intensive algorithm (n^2 messages), so is not scalable to large networks</p>

CC BY-SA 4.0
2018-09-20T09:07:08.557Z
What do you mean by `n^2 messages` ? Is it time complexity? and "message" means "transactions" ? Thanks
Questioner
CC BY-SA 4.0
2018-09-20T15:16:23.520Z
It is a number of messages complexity, because every node must send messages to every other node.  With 2 nodes, there are two messages, 3 nodes has 6 messages, 4 nodes have 12 messages, 5 nodes has 20 messages, 6 nodes has 30 messages, n nodes has n(n-1) messages.
Dan Anderson
CC BY-SA 4.0
2018-09-20T15:24:24.973Z
Thankk you, so it's `n(n_1) messages`, however, in your answer you have mentioned `n power 2` (n^2), that's right? Thanks
Questioner
CC BY-SA 4.0
2018-09-20T18:41:03.563Z
Yes, in Big O notation O(n^2) is the same as (n * (n - 1)).
In other words, it is exponential to the power of 2. The "- 1" makes little difference in the end.
Dan Anderson
CC BY-SA 4.0
2021-12-03T12:12:10.977Z
PBFT, in practice, scales for how many nodes?
(Compared to Paxos and Raft. For example, [HERE](http://muratbuffalo.blogspot.com/2020/03/pigpaxos-devouring-communication_18.html) it's mentioned that Paxos does not scale for more than a dozen nodes. How about PBFT? ) Thanks.
Questioner
CC BY-SA 4.0
2018-09-19T14:50:00.207Z
2018-09-19T14:50:00.207Z
Dan Anderson
<p>Can we consider <strong>PBFT (Practical Byzantine Fault Tolerance)</strong> as a consensus algorithm ?</p>

<p>And if yes, <strong>How</strong> does it work?</p>

<p>And is it <strong>similar</strong> to other consensuses such as <strong>PoW</strong>, <strong>PoS</strong> or <strong>PoA</strong> ? Or it is <strong>totally different</strong>?</p>

<p>And is it <strong>used</strong> actually in a blockchain platform? if yes, <strong>which one</strong>?</p>

<p>P.S. I heard that it is NOT <strong>scalable</strong> for large network, <strong>Is it true</strong>? And if so, is its scalability <strong>even worse</strong> than PoW?</p>

CC BY-SA 4.0
2018-09-19T15:28:00.713Z
You can't really compare the scalability. PoW scales perfectly with number of participants, but needs very long intervals between updates, and is inherently costly. PBFT only works with small numbers of participants, but can be much faster and cheaper.
Pieter Wuille
CC BY-SA 4.0
2018-09-20T08:29:13.390Z
@Pieter Wuille Would you please explain in more details how PBFT works? Or any terse article which explains it briefly? Thank you
Questioner
<blockchain><alternatives><consensus><scalability>
Is PBFT a consensus algorithm?
Questioner
# Is PBFT a consensus algorithm?

(Asked by: username_0 on 2018-09-19)

Can we consider **PBFT (Practical Byzantine Fault Tolerance)** as a consensus algorithm ?

And if yes, **How** does it work?

And is it **similar** to other consensuses such as **PoW**, **PoS** or **PoA** ? Or it is **totally different**?

And is it **used** actually in a blockchain platform? if yes, **which one**?

P.S. I heard that it is NOT **scalable** for large network, **Is it true**? And if so, is its scalability **even worse** than PoW?

**Tags:** blockchain, alternatives, consensus, scalability

> **Comments:**
> **username_1**: You can't really compare the scalability. PoW scales perfectly with number of participants, but needs very long intervals between updates, and is inherently costly. PBFT only works with small numbers of participants, but can be much faster and cheaper.  
> **username_0**: @username_1 Would you please explain in more details how PBFT works? Or any terse article which explains it briefly? Thank you  

---

## 1 answers

### Answer by username_2 on 2018-09-19. Score: 3

PBFT is `Practical Byzantine Fault Tolerance`. It is a "classical" consensus algorithm that uses a state machine. Uses leader and block election to select a leader.

PBFT is a three-phase, network-intensive algorithm (n^2 messages), so is not scalable to large networks

> **Comments:**
> **username_0**: What do you mean by `n^2 messages` ? Is it time complexity? and "message" means "transactions" ? Thanks  
> **username_2**: It is a number of messages complexity, because every node must send messages to every other node.  With 2 nodes, there are two messages, 3 nodes has 6 messages, 4 nodes have 12 messages, 5 nodes has 20 messages, 6 nodes has 30 messages, n nodes has n(n-1) messages.  
> **username_0**: Thankk you, so it's `n(n_1) messages`, however, in your answer you have mentioned `n power 2` (n^2), that's right? Thanks  
> **username_2**: Yes, in Big O notation O(n^2) is the same as (n * (n - 1)). In other words, it is exponential to the power of 2. The "- 1" makes little difference in the end.  
> **username_0**: PBFT, in practice, scales for how many nodes? (Compared to Paxos and Raft. For example, [HERE](http://muratbuffalo.blogspot.com/2020/03/pigpaxos-devouring-communication_18.html) it's mentioned that Paxos does not scale for more than a dozen nodes. How about PBFT? ) Thanks.  

---

