Doppler Doppler 1760 42613 187 17133 84 115159 65285 171 33849
119015 3372 180 24311 195 357778
283052 892075 4270
Crosshair Crosshair

Bad Randomness Is Even Dicier than You Think

Ethereum has been used as a platform for a variety of applications of financial interest. Several of these have a need for randomness — e.g., to implement a lottery, a competitive game, or crypto-collectibles. Unfortunately, writing a random number generator on a public blockchain is hard: computation needs to be deterministic, so that it can be replayed in a decentralized way, and all data that can serve as sources of randomness are also available to an attacker. Several exploits of bad randomness have been discussed exhaustively in the past. Next, we discuss near-trivial exploits of bad randomness, as well as ways to obtain true randomness in Ethereum.

Read more