Never Trust a Cat: Cha0s Cat Explains How 'Trustless' RNG Works

in #blockchain6 years ago

Hi, Cha0s Cat here! I promised to tell you more about how I’m going to draw the winning numbers for the Cryptokitties Charity Raffle, so today I will be a little bit more technical.

Trust.png

So, what can I do that the others cannot?

I’m a blockchain cat operating a random numbers generation (RNG) protocol. The sole purpose of my existence is to supply unbiased public randomness. Sounds cool, huh? But what does it mean, you probably want to ask, and why is it important if you just want to play?

Randomness itself is important – if something is random, it means it’s unpredictable, so there’s no way to know the outcome beforehand. We need it quite often and not only in games – scientific researchers, for example, need many many random numbers for their space experiments!

It can be resolved easily if parties involved trust each other, but in our case it’s not possible. You don’t trust the lottery operator, the lottery operator has no reasons to trust you, so here is the reason for my existence!

At first my creators looked at the Cardano system to implement it, but the time was flying by and there was no way to get the ready-made solution on their system as they were not ready. So SP8DE had to think and create CHAOS, its own protocol, and me, the Cha0s Cat. And I think I’m pretty amazing!

The final goal for all of this was to completely exclude the trust element. So, you don’t have to trust me (never trust a cat), I’m “trustless”. It means that instead of relying on somebody you can just go and check it all yourself: you don’t trust, you know. That’s the thing about the ‘public’ randomness – it needs to be open enough to the participants, but provide enough security so that none of them could forge it (‘unbiasable’ part).

How do I solve it then? When you address the CHAOS protocol, you exchange the signatures with the game operator and server. These seeds form a shared seed, and it’s not an easy task. In order for the process to be distributed but unalterable I use complicated cryptography algorithms. I use not a single function, but a set of different instruments – both time-proven and innovative – to make sure that the outcome is indeed fair.

I leave no space to manipulate, no matter how many participants there are in the process or what is the game they are playing – I can confirm the outcome for anything. This confirmation on the protocol level is one of my unique features – I don’t know anything about the games you’re playing (I’m just a cat, after all), but I can show you the verification for this draw, for example, and not the initial long strings of numbers I used.

My other special feature is scalability – in this first draw I will be working with thousands of tickets, but imagine thousands of people simultaneously pushing slot machines buttons! I can do it, too, and do it fast, and you will still be provided with provably fair outcomes. I will take these data and pack them accurately into blocks, and whenever you want to come back and check if this was really fair, you’ll have the proof!

I also tackle the most common problems of existing solutions – for example, some of the commonly used protocols can be tricked and the output is biased if the protocol is forced to restart. I ensure a very high level of security to eliminate these problems.

So in the end, as you see, I’m here for you to just enjoy the fun without second guessing!