Che cos'è uno schema di impegno:
Uno schema di impegno è una funzione che consente a un giocatore e alla piattaforma di impegnarsi in modo sicuro rispetto a un valore segreto scelto, mantenendolo nascosto agli altri.
Questi valori possono essere rivelati successivamente affinché terze parti possano verificare che l'impegno corrisponda al valore rivelato. Uno schema di impegno garantisce che il casinò sia verificabile.
Uno schema di impegno prevede due fasi: la fase di Commit e la fase di Reveal.
Fase di Commit:
L'obiettivo della fase di commit è impegnare/bloccare determinati valori creati dal giocatore e dall'operatore per generare gli esiti di gioco.
In una spiegazione semplificata, i valori 3 vengono impegnati e utilizzati per generare l'output di un gioco. Una volta impegnati, i valori non possono essere modificati fino alla fase di reveal. Durante il commit, viene eseguito l'hashing per prevenire manomissioni.
Seed client attivo
Seed server attivo (non sottoposto ad hashing)
Nonce
Output = Commit(Active_Client_Seed, Active_Server_Seed, Nonce)
Seed client attivo: non è sottoposto ad hashing ed è un valore determinato dal giocatore.
Seed server attivo (non sottoposto ad hashing): viene mantenuto segreto ed è creato dal server. Questo valore segreto viene sottoposto ad hashing. All'operatore e al giocatore viene mostrato solo il valore sottoposto ad hashing.
Nonce è inizialmente impostato su 0, poiché non è stata effettuata alcuna giocata. Aumenterà a ogni partita.
Una combinazione di queste 3 variabili garantisce che l'output del commit sia sempre diverso
Fase di Reveal:
Nella fase di reveal, l'obiettivo è rivelare il seed server non sottoposto ad hashing. Una volta noti i seed non sottoposti ad hashing e il nonce, l'utente può verificare il proprio risultato.
Se un giocatore desidera verificare i propri risultati, dovrà prima ruotare la propria coppia di seed server e client.
Una volta eseguita questa operazione, la piattaforma rimuoverà l'hashing e mostrerà il seed server precedentemente attivo. A questo punto, i giocatori, l'operatore ed eventuali terze parti conosceranno tutte le 3 informazioni: seed client, seed server e nonce.
Inserendo il seed client, il seed server e il nonce del round noti, saremo sempre in grado di dimostrare i risultati/l'esito di quel determinato gioco e round.
Seed server
Il seed server viene generato dal tuo sistema come stringa esadecimale casuale di 64 caratteri. Questo seed viene sottoposto a processi di hashing SHA-256. Viene visualizzato il valore sottoposto ad hashing. L'hashing serve a due scopi:
Prevenire le frodi: è computazionalmente impossibile per un utente risalire al seed server originale non sottoposto ad hashing a partire dall'hash (resistenza alla prima preimmagine), impedendo ai giocatori di frodare.
Prevenire la manipolazione: data la proprietà di resistenza alle collisioni di SHA-256, è computazionalmente impossibile trovare due input non sottoposti ad hashing uguali che producano lo stesso output sottoposto ad hashing, impedendo all'operatore di frodare il giocatore.
Solo quando il gioco è completato e l'utente ruota i seed client, il casinò rimuoverà l'hashing dal seed server per la verifica.
Seed client
Il seed client appartiene a te, il giocatore, per garantire che tu influisca sulla casualità dell'esito di ogni gioco.
Inizialmente, il seed client viene generato casualmente per te dal tuo browser; tuttavia, ti invitiamo a modificare il seed client con un valore di tua preferenza. Questo garantisce che tu, in qualità di giocatore, possa influire sull'esito del gioco.
Nonce
In crittografia, il nonce si riferisce a un “numero usato una sola volta”. È un numero che aumenta di valore ogni volta che viene effettuata una nuova scommessa con lo stesso set di seed server e client.
Questo garantisce che la combinazione di seed server, seed client e nonce sia diversa in ogni gioco e che l'output dello schema di impegno sia diverso.
Scopri di più su come questi valori vengono implementati nel codice.


