# Ouroboros MPC

Hey i am trying to figure out how the Multi Party Computation works to generate randomness for the slot leader selection

Ouroboros is using VRF now, check a simple and brief explanation below.

https://vincenthz.github.io/ouroboros-vrf-explanation/

UPDATE: A layman explanation.

A very simple explanation. Assuming 4 parties with 10%, 20%, 30% and 40% stake.

1. All 4 parties roll a dice (the dice have the probability mentioned above) for each slot
2. That means, that they will get a probability between 0 and 1 based on their stake.
3. Those win who have smaller value then their stake probability (meaning more than 1 parties can win for a slot).

P1 - got 0.35 i.e. 35%, his stake is 10% therefore - NOT allowed to create block.
P2 - got 0.15 i.e. 15%, his stake is 20% therefore - allowed to create block.
P3 - got 0.5 i.e. 50%, his stake is 30% therefore - NOT allowed to create block.
P4 - go 0.24 i.e. 24%, his stake is 40% therefore - allowed to create block.

So, you can see that more than 1 party can have the block creation right for the same slot, and that’s ok and by design.

The validator nodes just need to have the block header (that contains VRF vkey, eta0 seed etc.) to check whether the block was created rightfully or not.

Currently `Praos` and `Genesis` is coming around September.