Introduction to the publication

LLFOURN
Unraveling the Ouroboros
2 min readFeb 15, 2018

This is the beginning of my journey into Ouroboros, Cardano’s consensus algorithm. I’ve recently started seriously getting into crypto currencies. Over the past few weeks I’ve read loads of white papers and immersed myself in youtube content. Cardano was the project that really stood out for me. In theory, Ouroboros has solved bitcoin’s scaling issues while maintaining security.

Ouroboros — The snake that eats its own tail and a Proof of Stake algorithm that has gone through the academic process.

Other consensus algorithms I looked at deviated significantly from the well worn blockchain architecture. For example, IOTA tosses away the blockchain completely and replaces it with a directed acyclic graph. It promises amazing things like instant fee-less transactions, but it’s so much more complex that I can’t even guess whether it’s actually secure in theory or in practice. Cardano’s Ouroboros takes the battle tested blockchain architecture and extends it with a new consensus algorithm based on well understood cryptographic primitives. What’s more, they’ve actually done the excruciatingly difficult work to formally prove the security of Ouroboros at top cryptographic conferences.

Ouroboros was accepted at the International Association of for Cryptographic Research’s (IACR) 2017 conference. Ouroboros Praos, the successor to Ouroboros, was accepted into Eurocrypt 2018. This shows they meet the highest standards of cryptographic research. It also means they’re a great jumping off point for me to learn how the next generation of crypto currencies are going to work.

Video promoting Ouroboros’ acceptance at the IACR conference

In this publication, I’m going to learn by attempting to explain how each part of the protocol works. First, I’m going to do some background on distributed ledgers and Ouroboros. Then, I’m going to go through the cryptographic primitives that make up the protocol. With each technical post, I hope to present working code that demonstrates how the particular cryptographic primitives are used to construct each subsystem.

Here we go!

--

--