Ouroboros Praos: A Self-Eating Snake in Blockchain Consensus
Ouroboros Praos is a proof-of-stake consensus mechanism developed by IOHK and is an updated version of Ouroboros Classic.
What is Ouroboros Praos?
Ouroboros Praos is an improvement of Ouroboros Classic, the first version of the consensus protocol developed by IOHK. It is the first betting proof algorithm whose security has been formally proven in a rigorous cryptographic model.
Ouroboros Praos improves the security guarantees of the Classic protocol by introducing a new "multilayer" approach to the protocol, allowing it to scale smoothly with increasing network size. The algorithm is provably secure asynchronously, making the usual and standard cryptographic assumption.
Praos is not only a technically advanced protocol, but also one that is easier for developers to integrate into their applications compared to its predecessors. That’s why it was chosen to be implemented in Cardano.
Praos means “self-sufficient” because this iteration of the protocol provides more robust guarantees than Ouroboros Genesis in terms of scalability and security. Like all IOHK research papers, this one was published in an academic journal (Journal of Cryptographic Engineering). Ouroboros Praos operates on a two-tiered system: the main chain consists of epochs (collections of blocks), and each epoch contains slots (opportunities for block mining). The time required for each epoch depends on the total number of betting pools in the network.
The main advantage of having pool operators (betting pool managers) as part of the system is that it increases the availability of the network. One of the main differences between the Ouroboros and Ouroboros Praos systems is that each requires separate betting pools.
In the Ouroboros system, each pool required a separate leader who was responsible for mining blocks. This meant that each pool had to have at least one account to start betting, which meant that all the computational work was done by that one account.
The other two forms of the Ouroboros algorithm are Ouroboros Genesis and Ouroboros Classic. Ouroboros Genesis uses a verifiable random function (VRF) in addition to the traditional Proof-of-Stake (PoS) mechanism used in Ouroboros Classic. VRF is a cryptographic principle that allows one party to generate a random result at any time and have it publicly verified by other parties. In the context of Ouroboros, VRF is used to identify a leader who captures blocks in the ledger in each slot. VRF increases the security and decentralization capabilities of Ouroboros Genesis compared to Ouroboros Classic. It also allows Ouroboros Genesis to be more scalable than Ouroboros Classic for certain competition models.