# What is timelock crypto and how can it be used for random number generation?

In this video Vitalik Buterin talks about timelock crypto and that it's his favorite option for provably fair random number generation https://youtu.be/p5qwbOkCZSc?t=4958.

Can anyone explain what timelock crypto is and how it can be used for RNG?

I believe he's referring to this: https://www.gwern.net/Self-decrypting-files.

The idea is similar to commit/reveal schemes:

1. Alice picks a random number, hashes it, and shares the hash with Bob.
2. Bob shares a random number with Alice.
3. Alice reveals her random number. (Bob can check that this is the correct number, since he knows its hash already.)
4. Both parties XOR the two numbers together.

Either party can be happy with the randomness as long as they chose their number randomly. If Alice refuses to reveal her number, she is punished (e.g. losing the game they're playing by default).

My understanding is that time-lock encryption is like this but with a neat trick: Alice doesn't have to reveal her random number! It will become known over time. The way this is accomplished is that Alice does something to her number that obscures the number for now but will be reversible in time. The article I linked to gives an overview of the literature on how to do this.