
Provably Fair
Randomizzazione
La nostra piattaforma sfrutta i blocchi delle blockchain EOS per generare un hash segreto che determina i risultati delle battaglie. Questo processo è completamente esterno, decentralizzato e al di fuori del nostro controllo, guidato esclusivamente dalle azioni di minatori e validatori. Influenzare i risultati di gioco richiederebbe dominare l'intera rete blockchain EOS, cosa non fattibile. Se avete domande, contattate il nostro team di supporto.
Timeline
Quando crei una battaglia, nessun risultato viene generato fino a quando tutti gli altri giocatori o bot si uniscono. Una volta che tutti i giocatori e/o bot si sono uniti, determiniamo il numero dell'ultimo blocco e selezioniamo un blocco EOS non ancora estratto.
Ad esempio, se l'ultimo blocco estratto è #371315767, aggiungiamo 5 a quel numero ottenendo il blocco #371315770, che attenderemo per ottenere l'hash unico dell'ID Block EOS, il quale non può essere conosciuto in anticipo.
Dopo che il blocco è stato estratto, otteniamo il suo hash unico (EOS Block ID), che usiamo come parte del Client Seed per fare il primo roll.
Ci sono molti siti blockchain che possono verificarlo. Utilizziamo eosflare.io ma ci sono altre opzioni disponibili da qui: https://eosauthority.com. Una volta selezionato il provider, potrai verificare che il blocco era effettivamente qualche secondo nel futuro. Un blocco di esempio può essere trovato qui: https://eosflare.io/block/359689419.
Termini e definizioni
- EOS Block ID - Ottenuto dal blocco EOS estratto immediatamente prima dell'inizio del primo round nella battaglia.
- Slot - Fondamentalmente la posizione del giocatore nella battaglia. Se appari 2° da sinistra, la tua posizione sarebbe 2.
- Client Seed - Una combinazione di EOS Block ID e Slot, separati da un trattino. Essenziale per creare il roll hash.
- Server Seed - Una stringa generata casualmente assegnata quando viene creata una battaglia.
- Server Hashed Seed - La versione hash del Server Seed.
- Nonce - Equivalente al numero del round nella modalità battaglia.
- Numero di Blocco - Un numero unico per ogni Blocco EOS.
- Roll Hash - Prodotto utilizzando client seed, nonce e server seed.
- Roll Ticket - Un numero di ticket dell'oggetto derivato convertendo il roll hash nell'intervallo da 1 a 10.000.000.
Lancio
Questo codice illustra la logica per generare un ticket per ciascun lancio e giocatore. Ogni nuovo round (lancio) produce ticket articolo che gli utenti ricevono nell'inventario del gioco. lancio - si riferisce al numero del ticket che determina l'articolo che un utente ottiene in quel lancio.
<?php
// //
// CsDrop Provably Fair Case Battles //
// //
/*
* Fill in all three below and click the blue 'eval();' button.
------------------ */
$server_seed = '';
$client_seed = '';
$nonce = $roundNumber = 0;
/* ------------------ */
if ($server_seed == '' || $client_seed == '' || $nonce < 0) {
echo "Fill in details";
return;
}
define('MIN_RESULT', 0.00001);
define('MAX_RESULT', 100);
define('CONVERT_RATE', 100000);
define('HASH_TYPE', 'sha256');
function getProvablyFairResult(string $client_seed, string $server_seed, int $nounce)
{
$hash = hash_hmac(HASH_TYPE, "{$client_seed}-{$nounce}", $server_seed);
$normalized = hexdec($hash) / (16 ** strlen($hash));
$roll = MIN_RESULT + $normalized * (MAX_RESULT - MIN_RESULT);
return convertDecimalValue($roll);
}
function convertDecimalValue(float $value): int
{
return round($value * CONVERT_RATE);
}
$result = getProvablyFairResult($client_seed, $server_seed, $nonce);
echo "Result: {$result}";Questo può essere eseguito localmente o su qualsiasi esecutore di script PHP trovato online. Indirizziamo i clienti a: https://3v4l.org/bRN5v per questo, ma ci sono molte opzioni disponibili come segue:
Il cliente dovrà modificare le variabili server_seed, nonce e client_seed nello script per verificare i risultati.
Queste informazioni possono essere trovate qui: https://csdrop.com/profile/game-history sotto "Battaglie".
Tiro di Spareggio
A volte, dopo il conteggio finale di tutti gli oggetti dei giocatori, due o più giocatori potrebbero avere lo stesso valore di oggetti guadagnati durante la battaglia.
Per risolvere questo pareggio, viene condotto un mini-turno aggiuntivo chiamato Tiro di Spareggio. È essenzialmente una rotazione della roulette nel gioco che seleziona un vincitore tra i giocatori in parità, assicurando una determinazione equa e onesta della vittoria.
In questo caso, il Tiro di Spareggio è anche Provably Fair utilizzando:
- Seed del server - Quello generato per la battaglia.
- Seed del cliente - L'ID del Blocco EOS collegato alla battaglia.
- Nonce - Numero totale di round nella battaglia più uno.
In caso di pareggio in cui i giocatori hanno oggetti di pari valore, il vincitore è determinato dalla posizione occupata da ciascun giocatore e da un biglietto generato casualmente che va da 1 a 10.000.000. La posizione corrisponde alla posizione del giocatore nel gioco, contando da sinistra a destra.
Per un pareggio che coinvolge due giocatori:
- Se il risultato è compreso tra 1 e 5.000.000 allora, il giocatore nello slot 1 viene dichiarato vincitore.
- Se il risultato è compreso tra 5.000.001 e 10.000.000 allora, il giocatore nello slot 2 viene dichiarato vincitore.
Per un pareggio che coinvolge tre giocatori:
- Se il risultato è compreso tra 1 e 3.333.333 allora, il giocatore nello slot 1 viene dichiarato vincitore.
- Se il risultato è compreso tra 3.333.334 e 6.666.666 allora, il giocatore nello slot 2 viene dichiarato vincitore.
- Se il risultato è compreso tra 6.666.667 e 10.000.000 allora, il giocatore nello slot 3 viene dichiarato vincitore.
Per un pareggio in modalità Jackpot:
Gli intervalli associati a ciascun giocatore dipendono dall'importo che hanno vinto. Ad esempio, con 4 giocatori (1V1V1V1 o 2V2), abbiamo:
- Lo slot giocatore 1 ha vinto 2.000€ (che rappresenta il 20% della vincita totale): gli intervalli di vincita associati a questo giocatore saranno tra 1 e 2.000.000
- Lo slot giocatore 2 ha vinto 6.000€ (che rappresenta il 60% della vincita totale): gli intervalli di vincita associati a questo giocatore saranno tra 2.000.001 e 8.000.000
- Lo slot giocatore 3 ha vinto 500€ (che rappresenta il 5% della vincita totale): gli intervalli di vincita associati a questo giocatore saranno tra 8.000.001 e 8.500.000
- Lo slot giocatore 4 ha vinto 1.500€ (che rappresenta il 15% della vincita totale): gli intervalli di vincita associati a questo giocatore saranno tra 8.500.001 e 10.000.000
In caso di battaglie a squadre, il giocatore che vince fa vincere il sorteggio alla sua squadra.
Battle Double
Una volta terminata la battaglia, l'utente può scegliere di raddoppiare le proprie vincite. O vince e raddoppia il valore vinto nella battaglia, oppure perde il Battle Double e le vincite della battaglia.
Il sistema provably fair per il Battle Double è lo stesso dell'apertura delle box. Ciò significa che il risultato sarà generato allo stesso modo dell'apertura delle box utilizzando client seed, server seed e nonce. Fare riferimento alla scheda "Apertura delle box" per saperne di più su come viene generato il risultato.
Un risultato viene generato tra 1 e 10.000.000.
Se il risultato è inferiore a 4.500.000 (incluso) l'utente vince e raddoppia le proprie vincite
Se il risultato è tra 4.500.001 (incluso) e 10.000.000 l'utente perde.























