Controllo dell'esito del gioco crash: algoritmo, sicurezza

1) Scopo di verifica: esattamente cosa stai confermando

Insopportabile: l'operatore non ha potuto modificare il risultato dopo la puntata (grazie all'hashtag del server side).

Riproduzione: con i dati di input, si ottiene lo stesso moltiplicatore che il gioco ha mostrato.

Integrità della procedura: formato di messaggio, ingrandimento «nonce», regola di arrotondamento e «house edge» applicati in base alle specifiche.

2) Dati senza i quali non è possibile verificare

1. Server Seed Hash (commit) - Viene pubblicato prima di utilizzare Server Seed appropriato.

2. Server Seed (visualizzato dopo/al termine del periodo).

3. Client Seed (side; lo specificate da soli o la piattaforma genera).

4. Nonce (il contatore delle tue scommesse all'interno dell'attuale «Server Seed»).

5. Algoritmo di hashtag (solitamente "HMAC-SHA256" o'SHA-256 ").

6. Formato messaggio (esempio: «:»), separatori/maiuscole/codifica precisi.

7. La formula di mapping dell'hashtag → il moltiplicatore (e la regola di arrotondamento/minimo).

💡 Tutte le specifiche devono essere nella sezione Fairness/Provably Fair dell'operatore. Se non c'è qualcosa è una bandiera rossa (vedere l'articolo 10).

3) Algoritmo di convalida (7 passi)

1. Contate «SHA-256 (ServerSeed)» e confrontate con «ServerSeedHash» pubblicato.

2. Raccogli un messaggio rigorosamente in formato piattaforma (ad esempio, «msg = ClientSeed +»: «+ Nonce»).

3. Contate l'hash di round:
  • при `HMAC-SHA256`: `RoundHash = HMAC_SHA256(key=ServerSeed, msg=message)`;
  • "SHA-256": "RoundHash = SHA256 (ServerSeed | | messagge'o come specificato nella specifica.
  • 4. Estrai la casualità: prendi i primi «k» bit (spesso 52) «r», poi «u = r/2 ^ k».
  • 5. Applica la formula del mapping: converti «u» in un moltiplicatore (house edge/valigette speciali conteggiate dalla documentazione del gioco).
  • 6. Arrotondare secondo le regole del gioco (ad esempio, a 2 caratteri, almeno 1. 00 x, ecc.).
  • 7. Paragonate il risultato del giro della storia. Coincidenza = corretta onestà.

4) Pseudocode (adattabile a Python/JS)

python
Inserisci qui la formula esatta del mapping dalla tua piattaforma invece di stub _ mapping ()

import hmac, hashlib, math

def round_hash(server_seed: bytes, client_seed: str, nonce: int) -> bytes:
messaggistica = f «{client _ seed}: {nonce}» .code («utf-8») vedere le specifiche
return hmac. new(server_seed, message, hashlib. sha256). digest () o haslib. sha256(...)

def take_u_from_hash(h: bytes, k_bits=52) -> float:
Prendiamo k bit senior come un intero r
r = int. from_bytes(h, "big") >> (256 - k_bits)
return r / (1 << k_bits) u в [0, 1)

def stub_mapping(u: float) -> float:
ZAGLUSKA! Sostituisci con la formula della documentazione del gioco
Ad esempio, a volte si utilizza la conversione di una vista: crash = floor ((es/( r + 1) 100 )/100
e/o «house edge» come rara forzatura 1. 00×. Non usare questa stub in un vero controllo.
return max(1. 00, round(1. 0 / max(1e-12, 1. 0 - u), 2))

def verify(server_seed_hex, server_seed_hash_hex, client_seed, nonce, shown_multiplier):
server_seed = bytes. fromhex(server_seed_hex)
1) Commit
assert hashlib. sha256(server_seed). hexdigest() == server_seed_hash_hex. lower()
2-3) Hash round
h = round_hash(server_seed, client_seed, nonce)
4) u
u = take_u_from_hash(h)
5-6) mapping + arrotondamento
calc_mult = stub_mapping(u)
7) confronto
return abs(calc_mult - shown_multiplier) < 1e-9

L'importante è che invece di «stub _ mapping», applichi la formula esatta dalla sezione Fairness della tua piattaforma; Altrimenti il controllo non sarà corretto.

5) Casi privati e pietre subacquee

Due puntate nello stesso round: molte piattaforme «nonce» aumentano per ogni puntata, anche se effettuate nello stesso round (esempio: A «nonce = 42», B «nonce = 43»). Controllate la storia.

Cambia Client Seed - Quando si cambia il side noncè, di solito viene reimpostato (o inizia un nuovo flusso). Controlla le regole della piattaforma.

Batch'Server Seed ': un Server Seed è valido per una serie di round, quindi viene pubblicato un nuovo commit. non confondere i semi di periodi diversi.

Arrotondamento/minimo: non corrispondenza secondo carattere - Nel 90% dei casi si è verificato un errore nelle regole di arrotondamento/minimo (ad esempio, fisso 1. 00 x a condizione speciale).

Codifica/spazi: spazio/traduzione di riga in eccesso, maiuscole non corrette, non UTF-8 interrompono il controllo.

6) Assegno foglio di controllo rapido del round

1. «SHA-256 (ServerSeed)» corrisponde a «ServerSeedHash»?

2. Il formato "messagge'e" nonce "è corretto?

3. L'algoritmo ('HMAC-SHA256 '/' SHA-256') e la chiave/ordine dei campi sono applicati in base alle specifiche?

4. Mupping e arrotondamento sono identici alla documentazione?

5. Se i casi particolari sono considerati («crash istantaneo» raro, minimo 1. 00 x, caps)?

6. Il risultato corrisponde alla storia del gioco fino a un centesimo?

7) Automazione del controllo (pratica)

Loghi: conserva «client _ seed», sequenza «nonce», etichetta temporale, moltiplicatore finale.

Sampling: Dopo aver girato «Server Seed», passate allo script 20-50 round casuali; fissa la percentuale di corrispondenze (deve essere 100%).

Regressione: se cambi versione del gioco/provider, esegui lo stesso set.

Esporta: memorizza CSV/JSON con i sorgenti è la tua traccia di controllo.

8) Sicurezza: come non sbagliare e non lasciarsi ingannare

Controlla localmente/offline: Non fare affidamento solo sul validatore Web dell'operatore; tenete il vostro script.

Non fidarsi dei round senza un pacchetto completo di dati: nessuna formula/formato - nessuna verifica.

Forte «Client Seed»: imposta casuale, cambia periodicamente (non aumenta la RTP, ma esclude le domande di riproduzione).

TLS/sessione: accesso solo HTTPS, 2FA, monitoraggio degli ingressi e dei download cronologici.

Non trasmettere «Server Seed» a nessuno: viene pubblicato dall'operatore dopo il periodo; Il vostro compito è quello di incrociarlo, di non recuperarlo in anticipo.

9) Tipici «errori dei principianti»

Ordine dei campi confuso («Nonce:ClientSeed» invece di «ClientSeed:Nonce»).

Conto «nonce» da zero invece di una (o viceversa).

È stato utilizzato l'hash di tutto il round di piattaforma (global nonce) e hai bisogno del tuo personale'nonce '.

Ignora le regole di arrotondamento (banker's rounding vs floor/ceil).

Comprimere con Server Seed attivo e non con Server Seed già aperto.

10) Bandiere rosse nell'operatore

Nessun server pubblico Seed Hash prima dell'inizio del periodo.

Non è possibile impostare il Client Seed o visualizzare nonce.

Non esiste una formula pubblica di mapping per l'hashtag nel moltiplicatore.

La cronologia dei giri non fornisce un minimo di dati da analizzare.

Il formato e l'algoritmo sono stati modificati senza la notifica o l'archivio delle specifiche.

11) Contesto australiano (AU)

Valuta: tenere conto delle vincite/scommesse in AUD, conservare i download delle storie (supporto, controversie).

Gioco responsabile (RG) - limiti di deposito/tempo, pause e auto-esclusione - disponibili in applicazioni in buona fede; Usateli.

Prassi di piattaforma: per gli operatori in buona fede, Fairness/Provably Fair contiene una descrizione completa e esempi di verifica; la mancanza di dettagli è il motivo per scegliere un altro servizio.

12) Totale

Controllare l'esito di Crash è una procedura chiara:
  • compressione della committente'Server Seed Hash ',
  • ripristino dì RoundHash "per Server Seed, Client Seed, nonce e algoritmo,
  • applicazione della formula di mapping e delle regole di arrotondamento pubblicate,
  • un moltiplicatore identico nella tua prova e nella storia del gioco.

Tenete il vostro script, regolate i dati di input e controllate periodicamente i round casuali. Quindi lei conferma l'onestà, non a parole, ma matematicamente.

Caswino Promo