-
Notifications
You must be signed in to change notification settings - Fork 156
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #79 from input-output-hk/fsancheziohk-patch-1
Create 12-ouroboros-overview.mdx
- Loading branch information
Showing
1 changed file
with
64 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
--- | ||
title: Ouroboros overview | ||
metaTitle: Ouroboros overview | ||
--- | ||
|
||
## Ouroboros | ||
|
||
In mythology, Ouroboros (also, *uroboros*) is usually depicted as a snake (or sometimes a dragon) eating its own tail in a closed circle. The word Ouroboros itself derives from Ancient Greek, its literal meaning being 'tail eating' or 'tail devourer.' | ||
|
||
As a symbol, Ouroboros represents the infinity of time flowing back unto itself, in a never-ending cycle, as if caught in an eternal loop. Ouroboros first appeared in Egypt, in 13th century BC. Later, alchemists adopted Ouroboros into their mystical symbolism. | ||
|
||
Throughout the ages, Ouroboros has been interpreted and used in a variety of ways by a plethora of cultures. One of the most common interpretations is that the symbol represents the interconnectedness and infinity of the Universe. | ||
|
||
In 2017, Charles Hoskinson adopted Ouroboros to name the proof-of-stake consensus protocol that underlies Cardano. In this context, Ouroboros represents the possibility of infinite and ethical growth and scalability of the blockchain. Ouroboros' central message is the delivery of greater opportunities for the world, and its preservation through much-reduced energy consumption. | ||
|
||
|
||
### What is Ouroboros | ||
|
||
Ouroboros is the consensus protocol for Cardano, the first provably secure proof of stake protocol, and the first blockchain protocol based on peer-reviewed research. | ||
|
||
Combining unique technology and mathematically verified mechanisms (including behavioral psychology and economic philosophy principles), Ouroboros guarantees and supports the security and sustainability of any blockchain implementing it. The result is a protocol with proven security guarantees, and able to facilitate the propagation of global, permissionless networks with minimal energy requirements. Cardano is the first such network. | ||
|
||
Ouroboros selects participants -stake pools, in this case- to create new blocks based on the stake they control in the network, and facilitates the creation of distributed, permissionless networks capable of sustainably supporting new markets. | ||
|
||
### Ouroboros implementations | ||
|
||
Ouroboros comes in five different versions: | ||
|
||
- [Classic](https://eprint.iacr.org/2016/889.pdf) | ||
- [BFT](https://eprint.iacr.org/2018/1049.pdf) | ||
- [Praos](https://eprint.iacr.org/2017/573.pdf) | ||
- [Genesis](https://eprint.iacr.org/2018/378.pdf) | ||
- [Hydra](https://eprint.iacr.org/2020/299.pdf) | ||
|
||
#### Ouroboros Classic | ||
|
||
The first implementation of Ouroboros achieved three major milestones: | ||
|
||
- The foundation for an energy-efficient protocol to rival proof of work | ||
- The introduction of the mathematical framework to analyze proof of stake | ||
- The implementation of a novel incentive mechanism to reward participants in a proof-of-stake setting | ||
|
||
But what really set Ouroboros apart from other blockchain protocols (specifically, proof-of-stake protocols), was its ability to generate unbiased randomness in the protocol’s leader selection algorithm, and the subsequent security assurances that provided. Randomness prevents the formation of patterns, which is critical for maintaining the protocol’s security. Ouroboros was the first blockchain protocol to be developed with this type of rigorous security analysis. | ||
|
||
|
||
#### Ouroboros BFT | ||
|
||
Ouroboros Byzantine Fault Tolerance (BFT) was the protocol's second implementation, used during the Byron update (transition from the old Cardano codebase to the new). The second instance of the protocol prepared Cardano for the decentralization that came with the Shelley release. | ||
|
||
Ouroboros BFT enabled synchronous communication between a network of federated servers – the blockchain –, providing ledger consensus in a simpler and more deterministic manner. | ||
|
||
#### Ouroboros Praos | ||
|
||
Ouroboros Praos introduced substantial security and scalability improvements to the Ouroboros Classic implementation. Praos processes transaction blocks by dividing chains into slots, which are aggregated into epochs. But unlike Ouroboros Classic, Praos is analyzed in a semi-synchronous setting and is secure against adaptive attackers, using private-leader selection and forward-secure, key-evolving signatures to ensure that a strong adversary cannot predict the next slot leader and launch a focused attack (such as a DDoS attack). | ||
|
||
#### Ouroboros Genesis | ||
|
||
Once implemented, the fourth iteration of Ouroboros -Genesis- will further improve upon Ouroboros Praos by adding a novel chain selection rule that enables parties to bootstrap from a genesis block without the need for trusted checkpoints or assumptions about past availability. The Genesis paper also provides proof of the protocol’s Universal Composability, which demonstrates that the protocol can be composed with other protocols in arbitrary configurations in a real-world setting, without losing its security properties. | ||
|
||
#### Ouroboros Hydra | ||
|
||
The latest iteration is Ouroboros Hydra, an off-chain scalability architecture that addresses three key scalability challenges: high-transaction throughput, low latency, and minimal storage per node. | ||
|
||
Ouroboros Hydra enables Cardano to scale horizontally, increasing performance by incorporating additional nodes, rather than vertically, through the addition of more powerful hardware. Early simulations show that each head can perform up to 1,000 TPS. With 1,000 heads, this could be as high as 1,000,000 TPS. Once implemented, Ouroboros Hydra will allow Cardano to scale to the level of, for example, global payment systems. |