  Most modern electronic devices can produce a random number. However, it is
difficult to see how a group of mutually distrusting entities can have
confidence in any such hardware-produced stream of random numbers, since the
producer could control the output to their gain. In this work, we use public
and immutable cryptocurrency smart contracts, along with a set of potentially
malicious randomness providers, to produce a trustworthy stream of timestamped
public random numbers. Our contract eliminates the ability of a producer to
predict or control the generated random numbers, including the stored history
of random numbers. We consider and mitigate the threat of collusion between the
randomness providers and miners in a second, more complex contract.

Cryptography and Security