Luglio 2007. Il forum di AmmazzaCasino discute un topic dal titolo “Software onesto oppure no”, aperto da un utente di nome dafffy000. Dentro quella discussione, un altro utente, Tonino, butta lì un’idea davvero brillante, tra uno sfogo sui bonus hunter e uno sui portafogli elettronici. Perché, si chiede, il numero della roulette deve essere calcolato dal software dopo che il giocatore ha puntato? Non si potrebbe generarlo prima, cifrarlo, consegnarlo al giocatore in quella forma bloccata, e poi fornire la chiave di decrittazione solo dopo la puntata? In questo modo né il casinò né il giocatore potrebbero più manometterlo, ma il risultato sarebbe già lì, verificabile, fin dall’inizio.
Gastardo, che sono io, e all’epoca gestivo già il forum, gli risponde che l’idea gli sembra buona e che ne parlerà alla prossima convention di settore. Non se ne fece nulla, o almeno non ne è rimasta traccia. In effetti ricordo che ne parlai ma forse non con le persone giuste.
Ma la cosa interessante è che Tonino aveva appena descritto, con anni di anticipo sul lessico giusto, il meccanismo esatto che oggi chiamiamo provably fair: un valore generato e “sigillato” prima della puntata, una chiave rivelata dopo, e una matematica che rende impossibile la manomissione da entrambe le parti. Gli mancava solo un dettaglio: la tecnologia per farlo su scala, che sarebbe arrivata solo nel 2013 con i primi casinò in criptovaluta. Tonino aveva ragione sull’idea. Ha solo anticipato troppo i tempi.
Oggi quella tecnologia esiste, si chiama davvero provably fair, purtroppo non “garantista” come aveva ipotizzato Tonino, e vediamo come funziona, per quali giochi si usa, quanto conta sui casinò ADM e come verificare un risultato con i tuoi occhi, passo per passo.
Cos’è il provably fair
Il provably fair è un sistema crittografico che permette al giocatore di dimostrare matematicamente che un risultato non è stato manipolato, né dal casinò né dal giocatore stesso. Nasce nei casinò basati su criptovalute intorno al 2013, per risolvere un problema specifico di quel mondo: senza un ente regolatore centrale a cui appoggiarsi, serviva un modo per provare l’onestà del gioco senza doverla chiedere a nessuno.
L’idea di fondo è semplice: il risultato viene fissato matematicamente prima che tu punti, il casinò si impegna pubblicamente su quel risultato tramite un hash, e solo dopo il round rivela i dati che ti permettono di ricalcolarlo da solo. Se il tuo calcolo coincide con quello mostrato dal gioco, il risultato era già scritto prima della tua puntata. Nessuno ha potuto cambiarlo dopo aver visto quanto avevi puntato.
RNG certificato e provably fair: due modelli di fiducia diversi
Nella maggior parte dei casinò online il generatore di numeri casuali (RNG) viene testato una volta da un laboratorio indipendente (iTech Labs, GLI, eCOGRA e simili), che rilascia un certificato valido fino al controllo successivo. Il giocatore si fida del laboratorio, non verifica nulla in prima persona. È un modello di fiducia istituzionale: solido, ma delegato.
Il provably fair ribalta la logica. Non certifica il generatore nel suo complesso una volta all’anno, ma permette di verificare ogni singolo round, uno per uno, subito dopo che è finito. Sono due cose diverse e non intercambiabili: la certificazione RNG dimostra che il sistema è statisticamente onesto su milioni di round, il provably fair dimostra che quello specifico round che hai giocato tu non è stato alterato. Un casinò serio, in teoria, potrebbe avere entrambi.
Come funziona: seed, hash e nonce
Il meccanismo si basa su tre ingredienti:
- Server seed: una stringa casuale generata dal casinò, tenuta segreta durante il gioco
- Client seed: una stringa generata dal tuo browser (spesso modificabile a mano, e conviene farlo)
- Nonce: un contatore che aumenta di 1 a ogni puntata, per garantire che ogni round produca un risultato diverso anche con gli stessi seed
Prima che tu faccia la prima puntata, il casinò genera il server seed e ne pubblica l’hash (di solito SHA-256). L’hash è come un’impronta digitale: dal server seed puoi calcolare l’hash in un istante, ma dall’hash non puoi risalire al server seed. Questo è il punto chiave, perché il casinò si è “impegnato” pubblicamente su un valore che tu non conosci ancora, ma che non potrà più cambiare senza che tu te ne accorga.
Quando il round finisce, il casinò rivela il server seed vero e proprio. A quel punto puoi fare due controlli:
- Calcoli l’hash del server seed rivelato e verifichi che coincida con quello pubblicato prima del round. Se coincide, il casinò non ha barato cambiando il seed a posteriori.
- Combini server seed, client seed e nonce con l’algoritmo HMAC-SHA256 per ricalcolare il risultato, e verifichi che coincida con quello che hai visto a schermo.
Un esempio numerico vero
Prendiamo un round di dado e facciamo i conti sul serio, non a parole. Questi sono valori d’esempio, ma il calcolo è reale e puoi rifarlo tu stesso con qualsiasi calcolatore HMAC-SHA256 online.
| Server seed (rivelato dopo il round) | f3a9c1e7b2d84f0a9e6c1b7d3a5f8e2c4b6d9f1a3c5e7b9d1f3a5c7e9b1d3f5a |
| Hash pubblicato prima del round | a641069ed100a67a52441f930d2e1fba8eb13133be07274251debc405f192464 |
| Client seed | ammazzacasino-demo |
| Nonce | 1 |
| Messaggio combinato | ammazzacasino-demo:1 |
| HMAC-SHA256 risultante | 627379f3d36cc1ddbac664d963d531c53722b79c63c092707af49d6e8f4cc5c8 |
| Primi 8 caratteri in decimale | 1.651.735.027 |
| Convertito su scala 0-100 | 38,46 |
Se il gioco ti avesse mostrato un tiro di dado pari a 38,46 con questi identici seed e nonce, la verifica torna: il risultato era già determinato prima che tu puntassi, e nessuno lo ha cambiato dopo. Cambia anche una sola cifra del server seed e l’hash risultante diventa completamente diverso e irriconoscibile: è l’effetto valanga della crittografia, ed è quello che rende impossibile manipolare il risultato senza farsi scoprire.
Dal hash al risultato: cambia per ogni gioco
L’HMAC-SHA256 produce sempre la stessa cosa: una sequenza di 64 caratteri esadecimali senza significato apparente. Il “significato” lo aggiunge la formula specifica del gioco, che varia da titolo a titolo:
- Dado: i primi byte dell’hash vengono convertiti in un numero tra 0 e 100 (come nell’esempio sopra)
- Crash: l’hash viene convertito in un moltiplicatore tramite una formula che incorpora anche il margine del banco, tipicamente qualcosa come
M = (0,99 × valore massimo) / (valore massimo − valore hash). Più il valore hash si avvicina al massimo possibile, più il moltiplicatore sale prima del crash - Mines: l’hash determina la posizione delle mine sulla griglia prima ancora che tu clicchi la prima casella
- Carte (blackjack, baccarat): quando servono più valori casuali dello spazio disponibile in un singolo hash, si usa un “cursore” che scorre e genera altri 32 byte alla volta, sufficienti per mescolare un intero mazzo
La logica resta identica: l’hash è deterministico e pubblico a posteriori, la formula di conversione è nota, quindi chiunque può rifare il calcolo. Capire questa formula non ti aiuta a prevedere il prossimo risultato (il server seed resta segreto finché il round non finisce), ma ti permette di controllare quelli passati.
C’è un livello di verifica in più che spesso viene ignorato: molte implementazioni provably fair non pubblicano solo il seme del risultato, ma anche gli elementi di base del gioco, hashati allo stesso modo. Il mazzo di carte usato in una mano, la sequenza dei valori di un dado, la composizione dei rulli di una slot, i numeri di una roulette: se il gioco lo prevede, puoi verificare che il mazzo avesse davvero 52 carte uniche e non uno truccato con più dieci del dovuto, che il dado avesse sei facce equiprobabili, che la ruota della roulette avesse la sequenza di numeri dichiarata e non una versione con una tasca in più travestita da zero. Non basta che il risultato finale sia calcolato correttamente da un input onesto: serve anche che l’input di partenza sia quello dichiarato. Un mazzo con una carta di troppo renderebbe “corretto” ogni calcolo successivo, ma il gioco resterebbe truccato a monte.
Il provably fair sui casinò ADM: la situazione reale
Qui bisogna essere onesti, perché in giro, nei siti informativi, circolano molte semplificazioni. Il modello prevalente sui casinò con licenza ADM resta quello della certificazione RNG da laboratorio terzo: il concessionario sottopone il generatore a un ente accreditato, l’ente rilascia un certificato di conformità, e quel documento è ciò che vedi (o dovresti poter vedere) menzionato nei termini del sito. La verifica round-per-round in mano al giocatore, tipica del mondo crypto, non è lo standard sul mercato regolamentato italiano.
C’è però un’eccezione concreta che vale la pena conoscere: alcuni provider di crash game distribuiti anche su operatori ADM, come Spribe (Aviator), integrano un sistema di verifica crittografica accanto alla certificazione RNG tradizionale. In quei casi specifici, se il gioco lo prevede, trovi un pannello “Provably Fair” nelle impostazioni con seed e hash da controllare. Non è la norma su tutto il catalogo di un operatore ADM, ma nemmeno un’esclusiva dei casinò non regolamentati come si legge spesso.
La bussola pratica: se un titolo ha un pannello dedicato a “provably fair”, “fairness” o “verify” nelle impostazioni di gioco, la funzione c’è ed è verificabile. Se non lo trovi, quel gioco specifico si affida solo alla certificazione RNG, e va bene comunque: significa fidarsi del laboratorio invece che ricalcolare da soli, non che il gioco sia meno regolare.
Come verificarlo tu stesso, passo per passo
Se il gioco che stai usando offre la funzione, ecco la procedura pratica:
- Apri il pannello di verifica (di solito in Impostazioni → Provably Fair, oppure nella cronologia scommesse alla voce “dettagli” o “verifica” del singolo round)
- Copia i tre valori: server seed rivelato, client seed, nonce del round che vuoi controllare
- Apri un calcolatore HMAC-SHA256 online (per esempio quello di devglan.com, gratuito e senza registrazione, oppure devstack.tools che elabora tutto localmente nel browser senza inviare nulla a un server esterno, preferibile se vuoi essere ancora più cauto – (puoi usare un browser che ti permette di andare offline)
- Nel campo “testo” inserisci client seed e nonce nel formato che usa il gioco (spesso
clientseed:nonce), nel campo “chiave” inserisci il server seed, seleziona SHA-256 - Confronta l’hash generato con quello mostrato dal gioco. Se coincidono, il round torna: nessuna manomissione
- Per un controllo extra, calcola anche il semplice hash SHA-256 del server seed rivelato e confrontalo con l’hash che il casinò aveva pubblicato prima che tu puntassi
Cinque minuti la prima volta, molto meno una volta che hai preso la mano. Non serve rifarlo a ogni puntata: ha senso per round particolarmente rilevanti, o semplicemente per togliersi la curiosità una volta e capire che il meccanismo esiste davvero, non è solo un badge da footer.
Cosa il provably fair non dimostra
Questa è la parte che i siti informativi entusiasti tendono a saltare, ma noi ci entriamo a capofitto:
- Da solo, l’hash del singolo round non dimostra l’RTP a lungo termine: verifica che quel round specifico non sia stato alterato, non che la distribuzione statistica su migliaia di round rispetti l’RTP pubblicizzato. Se però il gioco pubblica anche gli elementi di base (mazzo, rulli, sequenza della ruota, come visto sopra), il discorso cambia: da quella composizione verificata puoi calcolare tu stesso, matematicamente, l’RTP teorico del gioco, esattamente come si calcola il 2,7% di house edge della roulette europea sapendo che la ruota ha 37 caselle. È un calcolo a tavolino sulla struttura del gioco, non una conferma statistica che l’RTP dichiarato si sia effettivamente realizzato nelle tue sessioni: quello resta comunque affidato al lungo periodo e alla varianza
- Non elimina il margine del banco: la formula di conversione hash → risultato incorpora sempre l’house edge. Il provably fair garantisce che il singolo risultato non sia truccato ad hoc, non che il gioco sia equo al 50%
- Non protegge da un client seed prevedibile: se non modifichi mai il client seed proposto automaticamente, in teoria un operatore scorretto potrebbe provare a sfruttare la prevedibilità. Cambiarlo tu stesso prima di giocare chiude questa falla
- Non funziona se il round non è ancora concluso: puoi verificare solo dati già rivelati. Nessun calcolatore ti dice il prossimo risultato, e chi vende “predittori” per crash game sta vendendo aria
Il provably fair è uno strumento di trasparenza, non una garanzia di vincita né una scorciatoia per battere il banco. Resta un margine matematico a favore della casa, verificabile o no.
Per il quadro più ampio su come funziona il ritorno al giocatore nei vari giochi, la guida RTP di AmmazzaCasino è il punto di partenza giusto. E se ti interessa nello specifico come i crash game applicano questi principi, trovi tutto nella guida ai crash games.
Da qualche parte, Tonino avrebbe diritto a una nota a piè di pagina nella storia del provably fair. O almeno a un drink offerto dalla casa appena “accede” ad un casinò online.