Vai al contenuto

BoosterHand Lab · simulazione

I casinò crypto possono barare? Ho costruito un gioco provably fair per scoprirlo

Aggiornato 2026-10-29 · BoosterHand Lab · Metodo: simulazione Monte Carlo (Python/NumPy, seed fisso)

Demo di dadi provably fair con server seed, hash SHA-256 e lancio HMAC: test per capire se i casinò crypto possono barare
Risultati principali
  • Cambiare 1 carattere del server seed ha prodotto un hash SHA-256 completamente diverso, quindi lo scambio è stato scoperto all'istante.
  • Il mio primo lancio (nonce 1) è stato 91,76, e chiunque può ricalcolarlo dai seed rivelati.
  • Su 200.000 lanci, ogni intervallo di 10 punti ha ottenuto tra il 9,88% e il 10,11% dei risultati: i dadi erano equi.
  • La regola «lancio sotto 49,5 paga 2x» nasconde comunque un vantaggio del banco dell'1%: i giocatori hanno recuperato circa 99,4 centesimi per dollaro.
  • Il provably fair risponde a 1 domanda (il risultato è stato modificato?), non al fatto che i prelievi vengano pagati o che il sito abbia una licenza.
Guarda (in inglese): Provably Fair Explained: Can Crypto Casinos Cheat? (I Tried)

I casinò crypto possono barare? Quasi tutti i casinò crypto rispondono con le stesse due parole: provably fair. La promessa è che il casinò non può truccare il tuo risultato e tu puoi controllarlo da solo, così ho costruito da zero un gioco di dadi provably fair, ho provato a barare e poi l’ho lanciato 200.000 volte per vedere cosa dimostra davvero il sistema (e l’unica cosa importante che non dimostra).

Se vuoi tutta la teoria, la nostra guida al provably fair la tratta in modo approfondito. Questo articolo è la versione pratica: seed veri, hash veri, numeri veri dalla mia demo.

Provably fair: come funziona in 4 passaggi

Il provably fair non è un prodotto specifico. È uno schema costruito con due strumenti crittografici standard: una funzione di hash (SHA-256) e un hash con chiave (HMAC-SHA256). Ecco come li ha usati il mio gioco demo.

Passaggio 1: il casinò sigilla il suo server seed

Prima che tu piazzi una singola puntata, il casinò sceglie un valore segreto chiamato server seed. Nella mia demo era bh-demo-server-seed-7f3a9c21.

Il casinò non ti mostra il seed. Ti mostra la sua impronta: l’hash SHA-256 del seed. Per il mio seed era 0516de5d906f8cd6...eaa7848. Pensalo come una busta sigillata. Non puoi leggere cosa c’è dentro, ma una volta sigillata, il contenuto non può essere sostituito di nascosto.

Server seed impegnato come hash SHA-256 prima della puntata, il passaggio della busta sigillata nel provably fair
Il casinò si impegna sul suo server seed pubblicando solo l'hash SHA-256 prima che tu punti.

Passaggio 2: aggiungi un client seed e un nonce

Poi arriva il tuo input. Il client seed è un testo qualsiasi che scegli tu. Il mio era my-lucky-seed-42. Ogni puntata riceve anche un contatore chiamato nonce: 1 per la prima puntata, 2 per la seconda e così via.

Perché il tuo seed conta? Perché il casinò si è impegnato sul suo server seed prima di conoscere il tuo. Non può scegliere un server seed che produca risultati negativi per te, dato che non controlla l’intero input.

Passaggio 3: l’HMAC trasforma i seed in un lancio

Il gioco inserisce server seed, client seed e nonce in HMAC-SHA256. Il risultato è una lunga stringa esadecimale. La mia demo prende i primi 8 caratteri, li converte in un numero e li scala in un intervallo da 0 a 100.

Il mio primo lancio è stato 91,76. Ecco i primi cinque lanci della demo:

NoncePrimi 8 caratteri hex dell’HMACLancio (da 0 a 100)
1eae5dbc191,76
2f140597794,24
392d71f7457,36
493f96f2957,80
54cff089730,08
HMAC-SHA256 di server seed, client seed e nonce trasformato in un lancio di dadi provably fair di 91,76
I primi 8 caratteri hex dell'HMAC diventano un lancio tra 0 e 100, qui 91,76.

Passaggio 4: verifichi tutto da solo

Quando hai finito (o cambi i seed), il casinò rivela il server seed. Ora fai due controlli:

  1. Calcola tu stesso l’hash SHA-256 del seed rivelato. Se corrisponde all’impronta che hai visto prima di puntare, il seed non è stato sostituito.
  2. Ricalcola ogni lancio da seed e nonce. Se ognuno corrisponde alla tua cronologia di puntate, nessun risultato è stato modificato.

È la parte che le persone intendono quando cercano “verificare provably fair”. Ecco una versione generica in Python del controllo della mia demo. È abbastanza corta da girare su qualsiasi laptop:

import hashlib, hmac

server_seed = "bh-demo-server-seed-7f3a9c21"   # revealed after play
client_seed = "my-lucky-seed-42"
shown_hash  = "0516de5d906f8cd663d818fa4b55b4bfb98f897e7ad9c1c8ecaa6bb30eaa7848"

# 1. Does the revealed seed match the hash shown before betting?
print(hashlib.sha256(server_seed.encode()).hexdigest() == shown_hash)

# 2. Recompute each roll
for nonce in range(1, 6):
    msg = f"{client_seed}:{nonce}".encode()
    h = hmac.new(server_seed.encode(), msg, hashlib.sha256).hexdigest()
    roll = int(h[:8], 16) / 2**32 * 100
    print(nonce, round(roll, 2))

I siti reali usano la propria formula esatta (formato del messaggio, quanti caratteri, come viene scalato l’intervallo) e dovrebbero pubblicarla. L’idea è la stessa ovunque.

Verificare il provably fair: il server seed rivelato produce la stessa impronta SHA-256 mostrata prima della puntata
Un hash corrispondente dimostra che il casinò ha usato lo stesso server seed su cui si era impegnato.

I casinò crypto possono barare? Ci ho provato

È ora di fare il cattivo. Ho cambiato un solo carattere nel server seed: l’ultimo 1 è diventato un 2, ottenendo bh-demo-server-seed-7f3a9c22.

Il nuovo hash SHA-256 iniziava con 14c8e98f... invece di 0516de5d.... Non leggermente diverso: completamente diverso, dal primo all’ultimo carattere. SHA-256 è progettato così. Una minima modifica all’input stravolge tutto l’output, e nessuno può risalire all’indietro per trovare un secondo seed con la stessa impronta.

Quindi, se un casinò provasse a sostituire il suo seed dopo aver visto la tua puntata, il controllo dell’hash fallirebbe al primo tentativo. Scoperto all’istante. È questo il potere reale e utile del provably fair.

Cambiare un carattere del server seed produce un hash SHA-256 completamente diverso, quindi l'imbroglio viene scoperto
Un carattere cambiato produce un hash totalmente diverso, quindi un seed sostituito non può nascondersi.

Prima del colpo di scena, una domanda per te: ti fideresti di più di un gioco provably fair o di uno con licenza? Perché? Scrivi la tua risposta nei commenti sotto il video, perché la prossima sezione potrebbe farti cambiare idea.

Cosa non dimostra il provably fair

La crittografia ha retto. Ma “il risultato non è stato modificato” e “il gioco è equo nei tuoi confronti” sono due affermazioni diverse.

I lanci erano equi: 200.000 lanci testati

Per prima cosa ho controllato i numeri casuali in sé. Ho lanciato i dadi della demo 200.000 volte e ho diviso l’intervallo da 0 a 100 in dieci fasce da 10 punti. Un lancio equo dovrebbe mettere circa il 10% dei risultati in ogni fascia, cioè 20.000 lanci.

Intervallo del lancioLanciQuota
Da 0 a 1020.18810,09%
Da 10 a 2019.9509,98%
Da 20 a 3019.8629,93%
Da 30 a 4020.19010,10%
Da 40 a 5020.21310,11%
Da 50 a 6019.8449,92%
Da 60 a 7019.7539,88%
Da 70 a 8020.04710,02%
Da 80 a 9020.15310,08%
Da 90 a 10019.8009,90%

Ogni fascia è finita a un soffio dal 10%. Nessuno stava truccando i dadi.

Istogramma di 200.000 lanci provably fair, ogni intervallo di 10 punti vicino al 10 per cento, a mostrare una distribuzione uniforme
Su 200.000 lanci, ogni intervallo di 10 punti ha ottenuto quasi esattamente il 10% dei risultati.

Il vantaggio del banco c’era comunque

Ora il colpo di scena. Nel mio gioco, un lancio sotto 49,5 vince e paga 2x la puntata. Sembra quasi un lancio di moneta, ma non lo è del tutto.

  • Probabilità di vincita: 49,5% (la zona vincente è di 49,5 punti su 100)
  • Pagamento: 2x
  • Ritorno atteso: 49,5% × 2 = 99 centesimi per dollaro

Questa regola nasconde un vantaggio del banco dell’1%, sotto gli occhi di tutti. Su 200.000 lanci simulati, i giocatori hanno vinto il 49,7% delle volte e hanno recuperato circa 99,4 centesimi per dollaro puntato. È vicino al 99% previsto dalla regola, con il normale rumore casuale sopra.

La regola dei dadi lancio sotto 49,5 paga 2x nasconde un vantaggio del banco dell'1 per cento anche in un gioco provably fair
Dadi equi, ma la regola di pagamento trattiene comunque circa l'1% di ogni dollaro puntato.

Il provably fair dimostra che il risultato non è stato modificato. Non elimina il vantaggio, perché il vantaggio sta nelle regole, non nel numero casuale. Un vantaggio dell’1% è piccolo rispetto a molti giochi da casinò, ma si accumula comunque man mano che punti di più. La nostra simulazione sull’RTP mostra come si sviluppa su migliaia di puntate.

Le cose che non controlla mai

Il provably fair risponde a una sola domanda ristretta: questo specifico risultato è stato manomesso? Non dice nulla su:

  • Prelievi. Un lancio perfettamente equo non vale nulla se il sito non ti paga. Velocità e affidabilità dei pagamenti sono una questione completamente separata.
  • Licenze. La matematica non ti dice chi regola l’operatore o dove puoi presentare un reclamo. La nostra guida alle licenze spiega cosa coprono le licenze di Curacao e Anjouan.
  • Ogni gioco del sito. Un casinò può offrire dadi provably fair accanto a giochi che non usano affatto il sistema. L’etichetta su un gioco non si estende al resto.
  • L’implementazione. Se il sito non pubblica la formula esatta, o non ti permette di impostare un tuo client seed, non puoi davvero verificare nulla.

Come abbiamo eseguito la simulazione

Questa era una mia demo didattica, non una copia del codice di un casinò reale. Ecco i parametri:

  • Impegno (commit): hash SHA-256 del server seed, mostrato prima di giocare
  • Lancio: HMAC-SHA256 con il server seed come chiave e client_seed:nonce come messaggio, primi 8 caratteri hex scalati da 0 a 100
  • Seed: server seed bh-demo-server-seed-7f3a9c21, client seed my-lucky-seed-42, fissi per la riproducibilità
  • Test di manomissione: un carattere del server seed cambiato (da ...c21 a ...c22)
  • Volume: 200.000 lanci
  • Regola del gioco: lancio sotto 49,5 vince, paga 2x, vantaggio del banco teorico dell’1%
  • Risultato: 49,7% di vincite, 99,4% di ritorno al giocatore (RTP)

Le implementazioni reali differiscono nei dettagli: alcune usano più caratteri, formati di messaggio diversi o passaggi extra per giochi come le carte. L’idea di base “prima impegnati, poi rivela, ricalcola tutto” resta la stessa. La nostra pagina sulla metodologia spiega come costruiamo e verifichiamo tutte le simulazioni del Lab.

Cosa significa per te

Il provably fair è una protezione reale e utile, e il mio test di manomissione ha mostrato perché: un casinò non può sostituire il seed di nascosto senza essere scoperto. Ma è un controllo, non un marchio di qualità.

  • Consideralo un minimo, non un motivo per fidarti. Dimostra che un risultato non è stato modificato dopo la tua puntata. Tutto qui.
  • Leggi le regole del gioco per trovare il vantaggio. La tabella dei pagamenti ti dice quanto trattiene il banco. Dadi equi con un vantaggio dell’1% ti costano comunque denaro in media nel tempo.
  • Controlla anche le cose noiose. Licenza, storico dei prelievi e termini contano quanto la matematica. La nostra lista dei segnali d’allarme nei casinò crypto è un buon punto di partenza.
  • Fissa i tuoi limiti prima di giocare. Nessun sistema di verifica cambia il fatto che il risultato atteso è una perdita. Se il gioco smette di essere divertente, fai una pausa e consulta la nostra pagina sul gioco responsabile per ricevere supporto.

Prossimamente nel Lab: un bonus casinò conviene? Ho dato un bonus del 100% a 10.000 giocatori simulati e ho fatto i conti sui requisiti di puntata.

Domande frequenti

I casinò crypto possono barare nei giochi provably fair?

In un gioco provably fair implementato correttamente, il casinò non può cambiare un risultato dopo la tua puntata senza che il controllo dell'hash fallisca. Può comunque fissare regole con un vantaggio del banco e può ancora rifiutare o ritardare i prelievi, cosa che il provably fair non copre.

Come verifico un risultato provably fair?

Dopo che il server seed è stato rivelato, calcolane l'hash con SHA-256 e confrontalo con l'hash che ti è stato mostrato prima di puntare. Poi ricalcola ogni lancio dal server seed, dal tuo client seed e dal nonce usando la formula pubblicata dal sito.

Provably fair significa che non c'è vantaggio del banco?

No. Il provably fair dimostra solo che il risultato non è stato modificato. Nella nostra demo i dadi erano equi, ma la regola di pagamento tratteneva comunque circa l'1% di ogni dollaro puntato.

Il provably fair è meglio di una licenza di gioco?

Controllano cose diverse. Il provably fair controlla i singoli risultati, mentre una licenza riguarda chi regola l'operatore, i reclami e i pagamenti. L'ideale è avere entrambi.

Perché mi serve un client seed mio?

Il tuo client seed entra in ogni lancio, quindi il casinò non può conoscere il risultato finale quando si impegna sul suo server seed. Cambiarlo con un testo tuo elimina qualsiasi possibilità che il casinò abbia scelto entrambi gli input.

Correlati

Le simulazioni usano modelli generici, non un gioco o un casinò reale. I risultati mostrano la matematica sul lungo periodo, non una previsione per una sessione. Solo 18+. Se il gioco smette di essere divertente, fai una pausa: gioco responsabile.

Fonti

  1. FIPS 180-4, Secure Hash Standard (SHS) — NIST
  2. RFC 2104: HMAC: Keyed-Hashing for Message Authentication — IETF
  3. SHA-2 — Wikipedia
  4. HMAC — Wikipedia
  5. Commitment scheme — Wikipedia

Prossimo esperimento: Il bonus del casinò conviene? Ho simulato requisiti di puntata 35x su 10.000 giocatori