# Can someone who is familiar with Ouroboros explain its fault tolerance threshold?

Ouroboros claims to be <50% Byzantine fault tolerant with regards to persistence. I was wondering why is it that some other PoS systems settle for 33% (e.g. Casper), when 50% is provably achievable?

In the Ouroboros Classic paper, as referenced in this talk by Peter Gazi (https://www.youtube.com/watch?v=PoNaw-Mtxgo), it seems like all that is needed to achieve <50% fault tolerance is simply to have a sequence of random slot leaders create new blocks. That's all the forkability analysis and persistence/liveness conclusion with probabilistic finality seems to depend on (probability of forkability falls exponentially with length of the characteristic string with p = (1-e)/2). So why are some PoS chains out there still 33% BFT? Don't they all pretty much follow a slot leader system like Ouroboros, and thus should also have 50% BFT by this theorem? I understand that in the Classic paper they assume synchrony. But this assumption is relaxed in Ouroboros Praos, with the same 50% BFT.

Does it have something to do with absolute finality vs probabilistic finality? I.e. does Casper achieve absolute finality, and in doing so have to sacrifice the fault tolerance somehow? Is there another factor?

Thank you!

## Casper vs Praos

`Casper protocol` with its `33%` fault tolerance is rather an economic finality type, than probabilistic one. It guarantees that at least 2/3 of validators sign some messages and the network verifies these messages. So it maintains the balance between finality time and decentralization.

With a lack of official IOHK documentation, I came to my own conclusion – probabilistic `Ouroboros Praos` with its `< 50%` simple byzantine fault tolerance (Simple BFT), means that approximately 2/3, but not lower than 1/2, of pool's validators sign some messages and the network approves these messages. This is a kind of trade-off between the speed, decentralization, Cardano's fault tolerance and protection against 51% attacks.

So the equation is as simple as that:

``````                50.001 % < consensus < 66.667 %
--------------------------------------------------------------------
<--- dangerously               not effectively --->
``````

Consensus can be reached in a case if more than 50% of the honest delegates find the block to be invalid, so the dishonest validator must be replaced and disincentivized.

If you need details on BFT you can find them in IOHK paper:

## Practical BFT protocols

I don't think this story is about one protocol is better/worse than another, it's just about the fact that the developers have slightly different visions how their protocols should work.

Since in Cardano you have to wait for several minutes (after putting a block with your Tx into ledger), to be sure your Tx is deeper-and-deeper in blockchain, there's no thoughts about absolute finality at the moment:

Absolute finality refers to the type of finality provided by PBFT-based protocols (like Tendermint by Jae Kwon), in which a transaction is immediately considered finalized once it is included in a block and added to the blockchain. In this case, a leader will propose a block, and a sufficient fraction of a committee of validators will have to approve the block for it be committed.