The underlying concept of provable fairness is that customers have the ability to prove and verify that their results are fair and unmanipulated. This is achieved through the use of a commitment scheme, along with cryptographic hashing.
This is simplified in the following representation: fair result = operators input (hashed) + players input.
Provably Fair System Documentation for Users
Overview: A Provably Fair system ensures that all outcomes in games are verifiably fair and not manipulated. This system is designed to provide transparency and trust by allowing users to verify the randomness of results through cryptographic algorithms. Here’s a step-by-step guide for users to understand and verify the fairness of a game or process using a Provably Fair system.
How Provably Fair Works:
Server Seed (Hidden Seed): The game server generates a random server seed before the game round starts. This seed is hashed and shown to the player as a hash before the round begins. The hash is a cryptographic representation of the seed and ensures that the seed cannot be altered after the round starts.
Client Seed: As a user, you are provided with your own client seed that the system will automatically generate. This seed is combined with the server seed to determine the outcome of the game.
Hashing and Random Number Generation: After the round ends, once you rotate your client + server seed, the server reveals the server seed that was used during the game. The outcome is determined by combining the server seed and client seed in a hash function, typically using algorithms like SHA-256. This ensures that the results are random and verifiable.
Step-by-Step Guide to Verifying a Provably Fair Outcome:
Retrieve the Hash Before the Game Starts:
Before you play, take note of the hashed server seed provided by the platform. This is a hashed version of the server’s randomly generated seed and ensures that the server cannot change the seed after the game begins.
Submit Your Client Seed:
If you are given the option to submit your own client seed, you can input a custom value (e.g., a random word or number). Otherwise, a seed will be generated automatically by the system.
Play the Game:
Once the server and client seeds are combined, the game generates a random result. Play your round as usual.
Post-Game Verification:
After the game ends, the server reveals the server seed that was initially hidden. This seed, combined with the client seed, will be run through a hash function (e.g., SHA-256) to verify the fairness of the result.
To verify:
Combine the server seed and your client seed.
Run the combination through a hash function use our ember tool to verify.
Compare the result with the provided game outcome to ensure they match. If they match, the game was provably fair.
Example:
The platform provides a hashed server seed: b2cfa5....
You generate or submit a client seed: user123.
The game round proceeds, and after completion, the server reveals the original server seed: 9fe67b....
You combine the server seed 9fe67b... and your client seed user123, and hash them.
The result of the hash should match the outcome of the game, confirming the fairness of the process.
FAQs:
Why can’t the platform change the outcome after I play?
Since the hash of the server seed is shown to you before the game starts, the platform cannot change the server seed after you’ve seen the hash. Any change in the server seed would lead to a completely different hash, making it impossible for the platform to manipulate results without detection.
Do I need to understand cryptography to verify fairness?
Not at all! There are many tools online that allow you to verify hashes easily. Simply input the server seed and client seed into an online hash calculator, and you’ll be able to verify the result.
Can I trust the platform to reveal the correct server seed?
Yes, because the server seed is hashed and presented before the game begins. Once the game is over, the server cannot alter this seed without invalidating the hash that was already provided to you.
By following these steps, you can confidently verify the fairness of each game round, ensuring that neither the platform nor any external factors could manipulate the results.