We’re going to get a bit technical now. In layman’s terms, a provably fair game is one where the results are not generated by just one party – like the servers of the game operator – but by multiple participants instead. All inputs are combined, hashed and shared before the result is determined.
It might be easiest explained with an example, so we’ll use Aviator as our guide.
Aviator makes you place bets and try to take out your money before the “plane flies away” at a certain, random number (the multiplier). Your prize is based on that multiplier.
A provably fair algorithm generates a “server seed” of 16 random symbols before each round. This is then encrypted, or hashed, and the resulting server seed (SHA256) is made publicly available before the start of each round. We’ll explain how to check that the result of your game was indeed provably fair later on.
Conversely, “client seeds” are created by players’ browsers. For example, in the game Aviator uses three client seeds from the first three individuals playing that round to make a wager.
When the first three players in a round place a bet, they are also partially responsible for the game’s outcome. Clients can change their client seeds, and it is sometimes recommended that they do so.
The server’s seed and the client’s seed are mixed to make a SHA512 hash, which is what dictates the game result.