The Problem with Weak Sources of Randomness in Ethereum Smart Contracts

On Ethereum, the Ethereum Virtual Machine (EVM) is the execution environment for running smart contracts. The EVM uses a deterministic model, meaning that for a given input, the execution of a smart contract will always produce the same output.