What is a provably fair game?
The answer lies at the heart of a whole new industry which has been developed around the transparent, decentralized, nature of the blockchain.
The open and decentralized consensus mechanism existent in Ethereum, Bitcoin and most major cryptocurrencies, makes it possible for anyone to verify transactions using open source software that can be freely downloaded.
Blockchain explorers such as Etherscan and Blockchain.info allow any user to inspect the blockchain and see for themselves how and when a particular transaction happened, the amounts involved, precise dates and a lot more metadata which is stored with each transaction.
Provably Fair Games
A fair game is a contest where participants’ chance of winning is proportional to their stake in the game.
If everyone stakes the same amount, then, a fair game should present every player with the same chance of winning. Games where it is allowed to risk bigger stakes, like a lottery for example, the probability of a winning game should increase proportionally with the invested amount.
For example, if someone buys 10 lottery tickets they’ll have 10X bigger odds of winning than someone who bought a single ticket.
In real world lotteries, trust is placed on the lottery operator. These are usually heavily regulated and externally audited, though that doesn’t always guarantee the fairness of the game.
Real world lotteries are, therefore, provably fair for as long as you trust the underlying draw process. If all numbers are equally likely to be drawn, and honest witnesses take part in the process, chances of fraud are lessened by publicity.
Mathematically Proven Fairness
But, what if this process could be mathematically guaranteed to be fair instead of relying on human witnesses and other traditional approaches?
That’s exactly what defines a provably fair game: it’s a contest where fairness is mathematically guaranteed.
The laws of probability are well known and are accepted by everyone involved in gaming architectures. The number of odds of winning divided by the number of possibilities is your chance of winning. As long as the draws and bets are kept public, then this process is easily audited. If game results skew too far from the expected probability, an audit can help reveal where the bias may be originating.
So what’s needed for a provably fair game to be implemented? Full transparency. And that’s where the blockchain really shines through.
In privately run games it is impossible to audit the process by which chance is established. There is no way to know how the winning odds and the complete search space were determined. Therefore knowing the true probability of the game becomes impossible. This was the reality of online gambling before the blockchain! Online games are basically black boxes where you trust the system.
With the blockchain, the computation itself is made public.
Fair Game Example
Take, for instance, a provably fair game like Bustabit.
In Bustabit, players send Bitcoin to a deposit address. The Bitcoin is then credited to a gambling account. When the player wins big, the amount can instantly be withdrawn back to the wallet.
Both the deposit and the withdrawal are forever recorded on the blockchain for everyone to see.
Only the blockchain can make this possible.
The decentralized consensus system allows games to be run in a worldwide virtual computer that everyone can trust. As long as the draw and the result is public, there is no way to cheat the game.
What happens then if I find a flaw in a game? It’s simple: like everything else in the cryptocurrency world, the community is the key to guaranteeing transparency and fairness. Individual nodes verify Bitcoin transactions 24×7, even when they’re not mining. The blockchain can be verified by anyone running a full node! And whenever invalid transactions arrive, the system must broadcast the fact that X transaction is fake or invalid. The same applies to games. Once something fishy is detected, the community should spread the word via social networks like Twitter and Reddit. While some scams are able to fool a lot of people for a very long time, most cheating attempts fall before they reach the mainstream. A fast response is crucial to avoid giving perpetrators a potential reward for their fraud attempt.
In summary, for a game to be provably fair, it must:
- Be based on a public blockchain that anyone can audit.
- Be open source.
- Hold the draws in some public medium like an algorithm run by a smart contract on the blockchain.
- Publish game results on the blockchain.
- Provide a public whitepaper describing the algorithm employed.
- Offer winning probability proportional to the stake invested in the game. Buying five tickets, or chipping in 5x more money, should provide 5X higher odds of winning.
If a game can be verified to uphold the above conditions, it is likely a provably fair game that is decentralized and which can be played by anyone and not depend on arbitrary processes.
Reddit discussion: What does “provably fair” mean in gambling?