Is Ouroboros a Dan Larimers’ DPoS ripoff?

Harry Kalogirou
3 min readApr 17, 2018

No.

Is Ouroboros a variant of DPoS (Delegated Proof of Stake)? In my opinion, yes.

I am putting that up there so it is very clear, after the huge fuss that my previous article caused, which led Charles Hoskinson to accuse me of spreading FUD and calling me a liar:

Of course being called a liar is a huge insult and can’t go unaswered. So let me explain the situation. The “apple of discord” was this sentence of mine in an article talking about a completely different subject:

Ouroboros, is a consensus algorithm based on the Delegated Proof of Stake algorithm (DPoS) invented by Dan Larimer (of EOS).

Somehow, this was probably interpreted by Charles as “Ouroboros is a copy of DPoS”, and that of course will cause frustration as it is clearly not the case. I am not accusing Ouroboros of plagiarism. Yet, my personal opinion is that this is clearly a DPoS kind of algorithm. One can claim that I don’t know what I am talking about, but no one can call me liar and I will continue to explain why I think that.

First of all the Ouroboros paper describes itself as PoS but then adds:

we introduce a stake delegation mechanism that can be seamlessly added to our blockchain protocol.

So it is PoS with stake delegation on top. But I understand that maybe the actual algorithm is something completely different and this is just a matter of naming different things the same. I have implemented DPoS as described by Dan Larimer in Ebakus so I know the concepts pretty well. I haven’t implemented Ouroboros but I studied the paper. So lets begin with what the original DPoS is.

The DPoS algorithm has some characteristic parts. First it requires some kind of synchronisation between the peers as it splits time into slots, timing is critical in this algorithm. Then it selects a number of peers among those that have stake (theirs or delegated) and schedules them into those slots in a specific manner. Some are scheduled from the top stake and some from the rest of the witnesses probabilistically according to their amount of stake. Finally that set of delegates is updated every some interval. So now we have time slots and assigned block producers for each of those. The producers emit blocks on their slot and the chain with the less missed blocks is the main.

Now, Ouroboros, splits time into slots too, then selects peers to be producers in those slots probabilistically according to stake (skips the top stake essentially). At a specific time interval it updates that selections, and eventually selects the chain with the less missed blocks as the truth. The terminology might be different at many points like leaders of slots, density of the chain, etc but clearly we are talking about the same thing. The difference comes in the way the selection works, the block timings and producer set updates timings. That is valid differentiation and the work of mathematically proving that these tend to peace and harmony is huge work on its own. However you have to be blind to not to see the relevance in the prior work and state of the art and how that echos into Ouroboros. That is how I see it and you are more than welcome to disagree.

At the end of the day, putting down my thoughts based on my experience is the best way I can engage this community. If this is considered FUD, and even worse by multi billion company CEOs, then scientific masturbation is the least of our problems.

--

--

Harry Kalogirou

Harry is a passionate software engineer and free software enthusiast. Creator of FlyCraft, Pop Corny and EbakusNG blockchain software.