§05 Gaming Tech
Blockchain and Provably Fair Gaming: What Tech Users Should Know

13-02-27-spielbank-wiesbaden-by-RalfR-093 / Ralf Roletschek, CC BY-SA 3.0
You tap Spin. The reels flash. Seven long seconds pass. Did the house nudge the odds, or did math and code pick the line? That doubt is normal. You do not need to trust a slogan. You can test one bet, see how seeds and hashes work, and spot signs of trouble fast. This guide keeps the words simple and the steps clear, so you can check fairness on your own terms.
What “provably fair” really proves (and what it can’t)
“Provably fair” is a way to show that each bet comes from a random value that the site could not change after you clicked. It does this with a promise and a reveal. First, the site makes a secret server seed. It posts a hash of that seed as a public promise. A hash is a one-way finger‑print of data. Later, after your bet, the site shows the real seed. You hash it and check if it matches the first hash. If it matches, the seed stood still.
Then your own client seed and a counter (nonce) join the mix. The game combines seeds and nonce, turns them into a big random number, and maps that number to a roll, a card, or a slot line. You can run the same steps and see if the same input gives the same output. That is the core idea: the site did not switch the seed on you mid‑bet. For a short, trusted primer on secure hashes, see the NIST guidance on hash functions.
What it does not do: it does not raise your chance to win, and it is not a long‑term payback promise. RTP, house edge, and game math are still in play. “Provably fair” only lets you verify each outcome, one by one.
Quick lab: verify one bet yourself
Here is a small lab you can do in five minutes. Pick one finished bet from a site that lists for each bet: server seed (revealed), the server seed hash (posted before), your client seed, and the nonce. The game should also show the exact rule that turns the mixed seed into the result.
Step 1: Hash the revealed server seed and check it matches the old promise. You can use a simple tool like CyberChef offline in your browser. Pick “SHA‑256” and paste the server seed. If the output matches the posted hash, the commit held.
Step 2: Rebuild the mix. Many sites do something like HMAC or SHA‑256 over “server_seed + client_seed + nonce.” The site should show the exact recipe. Run the mix the same way, then turn the hex result into a number. Map that number into the game space, like number % 100 for a 0–99 dice roll. Command‑line fan? See the OpenSSL digest docs for a quick local check with no web tools.
Step 3: Compare your roll (or line, or card) with the site’s record. If they match and the commit hash matched too, that bet checks out. If not, you found a bug or worse — flag it.
The tech menu: how randomness is built today
There is more than one way to make and prove randomness. Below are common patterns you’ll see and why they matter.
Commit‑reveal with a server seed is the classic web model. The site posts a hash of its seed before your bet, then reveals the seed after. Your client seed and a nonce reduce bias and let you replay any single bet. Simple, fast, cheap. But it needs a strong source of entropy and a clear public spec.
Client + server seeds raise trust by letting you add your own seed to the mix. If the website plays fair, your seed makes it harder for them to pre‑compute many seeds and pick one they like. The mix must be clear and stable across time and games.
On blockchains, we also see “VRFs,” short for verifiable random functions. A VRF gives a random value and a proof that anyone can check. See the formal base in IETF RFC on VRFs. Many on‑chain games use oracles such as Chainlink VRF docs for this job.
Public randomness beacons publish fresh random values on a fixed schedule, with public proofs. The most known is the League of Entropy’s drand randomness beacon. Beacons are handy for draws or timed games.
Some projects try to use a blockhash from a chain. That is risky. Miners or validators may bias it a little or pick a later block when it helps them. The Ethereum docs on randomness explain these traps and how to reduce them.
Comparative ways to generate and verify gaming randomness
| Server‑seed commitment | Site makes a secret seed; posts its SHA‑256 hash before play | Re‑hash after reveal; check nonce and mapping logic | Weak server RNG, seed reuse, late rotation | Very low | Fast dice or slots | No timestamped commit; one seed for too many bets |
| Client + server seeds | Mix of your seed and the server seed plus nonce | Recreate the mix and the same roll | Bad mixing, ignored client seed, weak user seed | Low | User‑centric trust | Vague spec; UI accepts your seed but does not use it |
| Chainlink VRF | On‑chain oracle returns a VRF output with proof | Contract checks proof; anyone can read it | Bad consumer code; oracle delays | Medium to high | On‑chain games, draws | No proof check in contract; opaque logs |
| Public beacon (drand) | Distributed network signs random rounds | Verify the signature for that round | Network stalls; no fallback | Low to medium | Timed lotteries | Single provider; no plan B if beacon is down |
| Blockhash‑based | Hash of a chosen block on L1/L2 | Check on a block explorer | MEV, miner bias, selective delay | Low | Low‑stakes fun with extra guards | Operator picks “nice” block height after the fact |
| Hybrid (VRF + per‑bet nonce) | VRF output mixed with a local counter | Check VRF proof + simple recompute | Mapping bugs; bad nonce rules | Medium | UX with stronger proof | Closed mapping code; mismatched history |
Some teams also test verifiable delay functions (VDFs) to slow down bias and make “grind attacks” costly. For a gentle intro, see the VDF research overview.
Red flags you can spot in under a minute
Fast scan any site. If you see two or more of these, walk away.
- No open verifier. You must copy data into a public tool to check a bet. If the site hides one or more inputs, that is bad.
- Vague seed logic. It says “we use blockchain” but does not post the recipe, the nonce rules, or how hashes map to outcomes.
- No server seed commit. You see only a reveal after the bet. That is not a proof.
- Seed reuse for many bets. This lets a site cherry‑pick unlucky spots.
- No separate nonce per bet. Replays can collide and cause bias.
- Wild RTP claims. A fair system proves each roll, not a promise of huge payback.
If you want a longer, code‑level list of common traps with random, the OWASP randomness guide is a clear, no‑nonsense read.
On‑chain is not a magic wand: cost, latency, and UX
On‑chain VRF is strong but not free. Each random call costs gas and time. If your game needs a result in under a second, raw on‑chain calls may be too slow. Some teams batch requests. Some do a commit on chain and reveal off chain for speed, then anchor the reveal later.
Oracles can queue in busy hours. Contracts can fail if they skip a proof check or mishandle a callback. Plan for retries. For a high‑level view of cost and timing trade‑offs, see these VRF gas and latency notes.
Regulation vs. cryptography: two kinds of “fair”
“Provably fair” gives you per‑bet checks. Regulators look at other things too: long‑term RTP targets, full RNG audits, secure builds, logs, and change control. These worlds meet, but they are not the same.
In the UK, remote games must meet the UKGC Remote Technical Standards. Test labs also do deep checks. See eCOGRA and the GLI-19 standards for scope. A site can be both provably fair and lab‑tested. If it is neither, ask why.
Field note: picking a platform the grown‑up way
Do three quick checks. One: Can you verify a bet right now with all inputs shown? Two: Is there a public doc with the exact math from seed to roll? Three: Is there a clean audit trail for past bets so you can recheck later?
If you do not want to run hash tools every time, look for independent, hands‑on reviews that show how they checked “provably fair” claims and share steps you can repeat. Some hubs also list basic user needs like payouts, KYC, and welcome offers, and note which sites have clear fairness tools — see casinos online con bono de bienvenida for a directory that also flags transparency. Disclosure: we operate this review resource.
For builders: a minimal viable fairness spec
Post a commit of your server seed (e.g., SHA‑256) with a time mark. Rotate seeds on a clear schedule. Accept a client seed and use a per‑bet nonce. Write the full recipe from inputs to outcome. Keep it short and public. Offer a one‑click verifier and a raw JSON export so users can check off site. Document edge cases: rerolls on low entropy, how ties map, how you handle old seeds, and how you replay bets.
Use strong randomness in the server. Mix with standard tools. If you need key derivation, prefer HKDF as in RFC 5869 (HKDF). Log every commit, reveal, and bet in a way users can fetch later. If you are on chain, verify VRF proofs in contract and add clear events for explorers.
FAQ: answers tech users actually ask
Is “provably fair” the same as a certified RNG?
No. “Provably fair” lets you check each bet with math. A certified RNG means a lab tested the code, build, and stats under a standard. Both help. If you can get both, even better.
Can a site cheat by picking block numbers?
If a game uses a blockhash, the operator could wait and pick a later block that is better for them. That is why many chains warn about this and suggest VRFs or beacons. See the Ethereum docs on randomness for the details and fixes.
What is a safe way to make a client seed?
Use a random string maker on your own device, not a phrase you can guess. Mix letters, numbers, and symbols. Save it so you can replay bets later. Change it now and then. Do not post it in chat.
Does blockchain alone make games fair?
No. A chain gives an audit trail and tools like VRFs. But code can still be bad, and rules can still be vague. You still need a clear spec, proof checks, and history. If you want to read a short, core piece on trust and data that cannot be changed once posted, the Bitcoin whitepaper is a classic.
What if the oracle or beacon is down?
Games should have a fallback plan and tell you what it is. They can pause, switch to a second source, or refund. A good beacon team shares how they keep uptime high; see Cloudflare’s League of Entropy for background.
Can I re‑verify old bets after a seed change?
Yes, if the site keeps the old seed, the commits, and the nonce range. A good site stores them and makes them easy to fetch. If the trail is gone, that is a trust hit.
Closing the loop: back to those seven seconds
Now you can do more than wait and hope. You can check the commit. You can rebuild the roll. You can scan for signs of trouble in under a minute. You also know when on‑chain tools help and when they slow you down. Keep this page close the next time you play. One quick test beats ten bold claims.
Not financial or gambling advice. Play within your laws and limits. This guide is for technical learning and user safety.