Come funziona il provably fair sui siti di Rust e come verificare i tuoi tiri
Hash del server seed, client seed, nonce e HMAC-SHA256 in parole semplici, con un esempio svolto che puoi riprodurre e una routine passo per passo per controllare qualsiasi tiro su un sito di skin di Rust.
Tutti e dieci i siti della nostra classifica dichiarano i propri giochi provably fair. L'espressione ha un significato preciso, e il controllo che c'è dietro è qualcosa che puoi eseguire da solo con uno strumento di hashing gratuito o poche righe di codice. Pochissimi giocatori lo fanno davvero. Questa guida spiega cosa dimostra il sistema, cosa lascia fuori e come verificare un tiro dall'inizio alla fine.
La versione breve: prima che tu punti, il sito fissa un valore segreto e ti mostra la sua impronta. Tu aggiungi un input tuo. Dopo le puntate, il sito rivela il segreto, e puoi confermare che l'impronta corrisponda e che ogni risultato derivi dagli input. Se i numeri tornano, il sito non poteva cambiare un esito dopo aver visto la tua puntata.
Il problema che il provably fair risolve
Su un sito di skin, è il server a decidere ogni risultato. Quando apri una cassa, lanci una moneta o aspetti un moltiplicatore del crash, stai guardando l'animazione di un numero prodotto su una macchina che non puoi ispezionare. Senza una qualche forma di prova, ti fidi del fatto che l'operatore non spinga in silenzio i tiri contro di te quando la puntata è grossa.
I casinò online con licenza di solito rispondono con regolatori e audit di terze parti sui loro generatori di numeri casuali. La maggior parte dei siti di skin si affida invece a un approccio crittografico. Ha un grande vantaggio per i giocatori: non devi fidarti di un revisore, perché puoi ripetere il calcolo sul tuo computer.
L'idea si chiama schema di commitment. Immagina il sito che scrive il suo segreto su un cartoncino, sigilla il cartoncino in una busta e te la consegna prima che il gioco inizi. Non può sostituire il cartoncino più tardi senza che tu te ne accorga, e tu non puoi leggerlo in anticipo.
I tre input: server seed, client seed e nonce
Quasi ogni sistema provably fair sui siti di Rust usa gli stessi ingredienti. Le etichette variano un po' da sito a sito, ma i ruoli restano gli stessi.
Server seed
Una lunga stringa casuale generata dal sito. Resta segreta mentre giochi, perché chiunque la conoscesse potrebbe prevedere ogni risultato. Quello che vedi invece è il suo hash, di solito prodotto con SHA-256. Un hash è un'impronta a senso unico. Lo stesso input dà sempre lo stesso output di 64 caratteri, cambiare un solo carattere dell'input cambia completamente l'output, e non c'è alcun modo pratico di risalire dall'hash al seed.
Client seed
Una stringa che viene dal tuo lato. I siti ne generano una predefinita per te, e la maggior parte ti lascia modificarla nel pannello di fairness o delle impostazioni. Il suo compito è impedire al sito di scegliere un server seed sfavorevole proprio a te. Il sito si è impegnato sul suo seed prima di sapere cosa avresti digitato, quindi non aveva modo di tarare l'uno sull'altro.
Nonce
Un contatore che parte da 0 o 1 e sale di uno a ogni puntata che piazzi sulla stessa coppia di seed. Ti permette di riusare un server seed e un client seed per centinaia di puntate e ottenere comunque un risultato nuovo ogni volta.
Quando vuoi controllare i tuoi risultati, chiedi al sito di ruotare il seed. Rivela il vecchio server seed in chiaro, ti mostra l'hash di uno nuovo e azzera il nonce. Tutto ciò che hai giocato con il vecchio seed ora può essere verificato.
Come gli input diventano un risultato
La ricetta più comune è HMAC-SHA256. HMAC è un modo standard di combinare una chiave segreta con un messaggio per produrre un hash. Sulla maggior parte dei siti di Rust il server seed è la chiave, e il messaggio è il client seed e il nonce uniti, spesso con i due punti, come clientseed:nonce. Alcuni siti aggiungono un numero di round o un ID di gioco, quindi leggi sempre la formula esatta nella pagina di fairness del sito.
L'output è una stringa esadecimale di 64 caratteri. Il sito poi trasforma una parte di quella stringa in un numero tra 0 e 1. Un metodo tipico prende i primi otto caratteri esadecimali (32 bit), li converte in un numero intero e divide per 4.294.967.296, cioè 2 alla 32. Quel decimale viene poi mappato sul gioco:
- Dadi e upgrader: moltiplica per 100 per ottenere un tiro da 0,00 a 99,99, poi confrontalo con il target.
- Roulette: moltiplica per il numero di slot della ruota e arrotonda per difetto per scegliere uno slot.
- Casse: moltiplica per il numero totale di ticket della cassa, così una skin che possiede l'1% dei ticket vince nell'1% dei tiri.
- Crash: passa il numero in una formula che lo trasforma in un moltiplicatore, con il house edge incorporato. La nostra guida alla strategia crash passa in rassegna quella formula e cosa significa per i target di cash-out.
Un esempio svolto che puoi riprodurre
I seed qui sotto sono inventati per questo esempio, così puoi controllare la nostra aritmetica con qualsiasi calcolatore HMAC-SHA256.
- Server seed: example-server-seed-01. Il suo hash SHA-256 inizia con a5275da7ccca3f73. Quell'hash è ciò che il sito ti mostrerebbe prima di giocare.
- Client seed: my-own-client-seed. Nonce: 1. Il messaggio è quindi my-own-client-seed:1.
- HMAC-SHA256 con il server seed come chiave e quel messaggio come input dà un risultato che inizia con 4cdcf221.
- Esadecimale 4cdcf221 è 1.289.548.321 in decimale. Diviso per 4.294.967.296, fa circa 0,30025.
- Su una scala di dadi da 0 a 100, è un tiro di 30,02. Su una ruota di roulette da 15 slot, 0,30025 per 15 fa circa 4,5, che arrotondato per difetto dà lo slot 4 (contando il primo slot come 0).
Esegui gli stessi seed con nonce 2 e ottieni un hash completamente diverso, che inizia con 6486ccbd, e che risulta circa 0,3927. Niente nel primo tiro ti dice qualcosa sul secondo. Quell'indipendenza è il punto centrale: non c'è nessuno schema da leggere in una cronologia di puntate, perché ogni risultato è un hash nuovo.
Come verificare un tiro da solo, passo per passo
Il primo controllo completo richiede un po' di tempo. Dopo, sono pochi minuti di copia e incolla. Fallo prima con un saldo piccolo, così conosci il procedimento prima che un risultato conti davvero per te.
- Apri il pannello di fairness prima di puntare. Di solito è linkato dalla schermata di gioco, dal footer o dalle impostazioni del profilo. Salva l'hash del server seed da qualche parte fuori dal sito, come una nota sul telefono o uno screenshot.
- Imposta il tuo client seed. Sostituisci quello predefinito con qualcosa che hai digitato tu. Martella la tastiera. Non deve essere memorabile.
- Gioca, e annota le puntate che ti interessano. Scrivi il nonce mostrato a ogni puntata, oppure trovalo dopo nella cronologia delle puntate.
- Ruota il seed. Il sito rivela il vecchio server seed. Copialo.
- Controlla il commitment. Passa il server seed rivelato in un qualsiasi strumento SHA-256. L'output deve corrispondere all'hash che hai salvato al punto 1, carattere per carattere.
- Ricalcola il tiro. Usa HMAC-SHA256 con il server seed rivelato, il tuo client seed e il nonce, poi applica la conversione che il sito pubblica. In PHP è una singola chiamata a hash_hmac, e il modulo hmac di Python fa lo stesso in un paio di righe.
- Confronta. Il numero che calcoli deve produrre l'esito registrato nella tua cronologia.
La maggior parte dei siti offre anche un verificatore integrato dove incolli i seed. È comodo, ma gira sul codice dell'operatore stesso. Per un controllo che non dipenda affatto dal sito, usa almeno una volta uno strumento indipendente o un tuo script.
I giochi condivisi funzionano un po' diversamente
Le modalità per un solo giocatore come dadi, upgrader e aperture singole di casse possono girare sulla tua coppia di seed personale. I giochi in cui molti giocatori condividono un solo risultato, come jackpot, coinflip, case battle, round di roulette e crash, non possono lasciare che il client seed di un giocatore decida l'esito di tutti. I siti lo gestiscono in alcuni modi comuni.
- Una catena di hash. Comune nel crash. Il sito genera in anticipo una lunga catena di hash, dove l'hash di ogni round è lo SHA-256 di quello del round successivo. Pubblica l'ultimo hash della catena prima che si giochi il primo round, e puoi controllare che ogni round rivelato faccia hash in quello precedente. Ogni risultato della catena era fissato prima che qualcuno piazzasse una puntata.
- Un seed pubblico esterno al sito. Il sito si impegna sul suo server seed, poi mescola un valore che nessuno poteva conoscere in anticipo, come l'hash di un blocco futuro di una blockchain pubblica. Poiché quel blocco non esisteva quando il sito si è impegnato, il sito non poteva tarare il suo seed su di esso.
- Commitment per round. Nel jackpot e nel coinflip, l'hash del seed del round compare quando il round si apre, e il seed in chiaro più il ticket vincente vengono mostrati quando finisce.
L'idea della verifica è la stessa in ogni caso. Trova il commitment che era pubblico prima del round, conferma che il valore rivelato corrisponda, poi ricalcola il risultato. Per come un ticket vincente diventa un vincitore in un piatto condiviso, vedi la nostra guida alle probabilità di coinflip e jackpot. Le case battle mescolano entrambi gli approcci, cosa che trattiamo in case battle spiegate.
Cosa il provably fair non dimostra
Un tiro verificato dimostra una cosa stretta: il risultato è venuto da input a cui il sito si era impegnato prima della tua puntata. È utile, ma i giocatori spesso leggono nel badge molto più di quanto sostenga.
- Non dice nulla sul house edge. Un gioco crash con un grande vantaggio può essere perfettamente provably fair. Il vantaggio sta dentro la formula pubblicata che trasforma il numero casuale in un moltiplicatore o in una probabilità di vincita. Equo significa che il sito ha seguito le proprie regole, e quelle regole nel tempo favoriscono comunque il sito.
- Non controlla i prezzi. Se una cassa elenca una skin a un valore ben sopra quello a cui si venderebbe sul Mercato della Comunità Steam, il tiro può essere equo e la cassa comunque poco conveniente. La nostra guida all'upgrader mostra come il prezzo degli oggetti sposti in silenzio le probabilità reali.
- Non copre i prelievi. Un sito può far girare seed impeccabili e comunque ritardare i payout, congelare account o riscrivere i termini. È per questo che la fairness è solo un input in come valutiamo i siti, insieme a velocità dei payout e affidabilità.
- Funziona solo se qualcuno controlla. Un commitment che nessuno confronta è solo una stringa di caratteri su una pagina.
Segnali d'allarme su una pagina di fairness
Verificare i seed è un passaggio di routine quando testiamo un sito. Queste sono le cose che ci rendono sospettosi, più o meno dalla più lieve alla più grave.
| Cosa vedi | Cosa significa | Cosa fare |
|---|---|---|
| Nessuna opzione per cambiare il client seed | Il sito controlla ogni input dei tuoi tiri personali | Tratta le modalità per un solo giocatore con più cautela |
| Un pulsante di verifica ma nessuna formula pubblicata | Puoi controllare i risultati solo con il codice del sito | Chiedi al supporto la formula esatta prima di depositare molto |
| L'hash del server seed compare solo dopo la puntata | Non c'è un vero commitment | Non considerare il gioco provably fair |
| I vecchi server seed non possono mai essere rivelati | Non si può verificare nulla | Come sopra |
| Il seed rivelato non ha come hash il commitment salvato | Il seed è stato cambiato, oppure la pagina è rotta | Smetti di giocare, fai screenshot di tutto e contatta il supporto |
Se ti capita l'ultima riga, conserva le prove: l'hash salvato, il seed rivelato, gli ID delle puntate e l'ora di ciascuna. Una singola discrepanza può essere un bug di visualizzazione, ma è esattamente il tipo di segnalazione credibile di un giocatore che ci porta a ricontrollare un sito.
Una routine sensata per giocatori normali
Non devi verificare ogni puntata. Una routine leggera cattura la maggior parte dei problemi senza trasformare una sessione in compiti a casa.
- Imposta un nuovo client seed ogni volta che inizi a giocare su un sito nuovo.
- Fai uno screenshot dell'hash del server seed prima di giocare.
- Ruota dopo la sessione e controlla il commitment, che è un calcolo SHA-256.
- Ricalcola il risultato o i due risultati che contavano di più, come una grossa perdita all'upgrader o una battle che eri sicuro di dover vincere.
- Ogni tanto, ripeti il controllo completo con uno strumento indipendente invece che con il verificatore del sito.
Una verifica pulita significa che le perdite che subisci sono quelle che i calcoli pubblicati prevedono, e non di più. Il vantaggio è comunque presente a ogni tiro. Il passo pratico successivo è decidere in anticipo quanta parte di quelle perdite attese sei disposto a pagare per l'intrattenimento; la nostra pagina sul gioco responsabile tratta limiti semplici e gli strumenti che aiutano a rispettarli.
Domande frequenti
Un sito provably fair può comunque barare?
Non può cambiare un risultato impegnato senza che il controllo dell'hash fallisca. Può comunque applicare un house edge alto, sovrapprezzare gli oggetti nelle casse o ritardare i prelievi, perché il provably fair copre solo come viene prodotto il tiro.
Devo cambiare il mio client seed?
No, ma dovresti. Un client seed scelto dopo che l'hash del server seed è stato mostrato significa che il sito non poteva scegliere il proprio seed pensando al tuo input.
Perché il sito non mostra semplicemente il server seed prima che io giochi?
Chiunque conosca sia il server seed sia il client seed può calcolare ogni risultato futuro. L'hash permette al sito di impegnarsi sul proprio seed senza svelare i tiri futuri.
Che strumento posso usare per verificare i tiri?
Funziona qualsiasi calcolatore SHA-256 e HMAC-SHA256, compresi gli strumenti online gratuiti e le funzioni integrate in PHP, Python o JavaScript. Usa il verificatore del sito per comodità e uno strumento indipendente per il controllo che conta.
SHA-256 è abbastanza sicuro per questo?
Sì. È uno standard molto diffuso, usato anche nel mining di Bitcoin, e non esiste alcun modo pratico noto per invertirlo o per trovare un secondo seed che produca lo stesso hash.
Continua a leggere
Guide correlate
Bonus, casse gratuite e codici promo del gambling in Rust: quanto valgono
Una cassa gratuita vale il suo drop medio, non il suo oggetto top, e un saldo gratuito vale ciò che sopravvive al requisito di puntata. Come prezzare ogni bonus comune dei siti di Rust prima di digitare un codice.
Le case battle di Rust spiegate: modalità, probabilità e come scegliere una battle equa
Una case battle non cambia il house edge delle casse al suo interno. Cambia quanto forte vinci o perdi. Come funzionano i formati, la matematica dietro, e come riconoscere una battle in cui vale la pena entrare.
Skin gambling responsabile: limiti, segnali d'allarme e dove trovare aiuto
Le skin rendono facile perdere il conto dei soldi veri. Questa guida copre i segnali d'allarme, i limiti che reggono davvero, autoesclusione e strumenti di blocco, e le linee di aiuto gratuite che puoi contattare oggi stesso.