Lingua
(Fare clic per modificare)
Italiano
*Tradotto automaticamente
Moneta
(Fare clic per modificare)
$
Condividilo:
Condividi questa Pagina su Facebook Condividi questa pagina su Twitter
28 Mar 2024 13:33:17 UTC

CONVALIDA DELLA LOTTERIA

Polygon (MATIC)
Settimana: 18-settembre-2022
VINCITORE
NOTA: La lotteria non può essere organizzata a meno che non ci siano 2 giocatori.
GIOCATORE
NULL
NUMERO VINCENTE
1.208.340.396.783.419.954
BIGLIETTI GIOCATI
N.ULL -
NUMERO VINCENTE PREVISTO
Il numero vincente previsto cambia ogni volta che un nuovo giocatore viene aggiunto e verificato.
1.208.340.396.783.419.954
SEME DI BASE
Numero casuale fino a 128 cifre, generato all'inizio di ogni settimana per ogni lotteria.
97343733315520642791627177875887429874457859920334052767149880348599879226465462085813495857488209291540689744241341634383171433
COPY
ID TRANSAZIONE
ID transazione dell'ultimo giocatore verificato.
BIGLIETTI
Numero di biglietti della lotteria venduti.
2.000.000.000.000.000.000
GIOCATORI
Numero di giocatori verificati.
1

Come viene generato il numero vincente?

Lottocryptos utilizza un sistema "Provably Fair" per le sue lotterie, al fine di ottenere la trasparenza nella generazione dei numeri vincenti.

Il seme per la generazione del numero casuale vincente è composto da quattro parti:

  • A - Numero casuale fino a 128 cifre. Viene generato settimanalmente all'inizio della lotteria ed è diverso per ogni criptovaluta.
  • B - L'ID della transazione dell'ultimo giocatore. L'ID della transazione dell'ultimo giocatore verificato della lotteria
  • C - Il numero totale di biglietti venduti nella lotteria
  • D - Il numero di giocatori verificati nella lotteria.
  • Per ottenere il seme per la generazione casuale del numero vincente, si segue il seguente processo.

    Ogni parte viene crittografata con SHA512 e concatenata. Quindi viene nuovamente crittografata con SHA512 e i suoi caratteri vengono convertiti nel corrispondente valore ASCII. Il seme utilizzato per la generazione del numero casuale è questo valore.

    Per poter effettuare tutti i controlli ritenuti opportuni, forniamo agli utenti il codice sorgente utilizzato per ottenere il numero casuale e gli strumenti per eseguire un test di casualità.

    CODICE SORGENTE
    File: classes/class.Random.php
    Versione PHP: 8.2.4
    Ultimo aggiornamento: 17-settembre-2022 10:57:44 UTC
    Dimensione: 3231 Byte
    <?php
    function Random_number($length){
        
    $result '';
        
    //Generate random number.    
        
    for($i=0;$i<$length;$i++){
            
    $result $result.random_int(0,9);
        }
        
        
    //Remove leading zeros.    
        
    $result ltrim($result,'0');
        if(
    $result == ''){
            
    $result 0;
        }
    return 
    $result;    
    }

    function 
    Random_string_to_int($string){
        
    $result '';
        
    //Count characters.
        
    $length strlen($string);
        
        
    //Ord ->Convert a character to its ASCII decimal value.
        
    for($i=0;$i<$length;$i++){
            
    $result $result.ord($string[$i]); 
        }
    return 
    $result;    
    }

    function 
    Random_int_to_string($number){
        
    //Convert integer to string.    
        
    $result number_format($number,0,'','');
    return 
    $result;    
    }

    function 
    Random_hash($data,$algo){
        
    //Hash string with an algo.    
        
    $result hash($algo,$data);
    return 
    $result;    
    }

    function 
    Random_basic_seed(){
        
    $result Random_number(128);
    return 
    $result;
    }

    function 
    Random_gmp_winner_number($basic_seed,$player_seed,$n_tickets,$n_players){
        
    $result '';
        
    //Convert integer to string.
        
    $n_tickets Random_int_to_string($n_tickets);
        
        
    //Hash all the parts
        
    $basic_seed Random_hash($basic_seed,'sha512');
        
    $player_seed Random_hash($player_seed,'sha512');
        
    $n_tickets_seed Random_hash($n_tickets,'sha512');
        
    $n_players_seed Random_hash($n_players,'sha512');        
        
        
    //Join all parts and hash
        
    $seed Random_hash($basic_seed.$player_seed.$n_tickets_seed.$n_players_seed,'sha512');
        
        
    //Convert letters to numbers.
        
    $seed Random_string_to_int($seed);
        
        
    //Insert seed into number generator. Only integers.
        
    gmp_random_seed($seed);
        
        
    //Generate random number.
        
    $value gmp_random_range(1,$n_tickets);
        
        
    //Convert GMP integer to string.    
        
    $result gmp_strval($value);
    return 
    $result;
    }
    /*
    //WINNER NUMBER
    $basic_seed = Random_basic_seed();
    $player_seed = 'f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16';//Transaction ID
    $n_players = 1;
    $n_tickets = 100000000;
    echo Random_gmp_winner_number($basic_seed,$player_seed,$n_tickets,$n_players);

    //RANDOMNESS TEST (Can be CPU intensive with more cycles / rounds)
    $cycles = 1;
    $runs = 1000;
    $tickets = 5;
    $player_seed = 'f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16';//Transaction ID
    $players = 5;

    $n_runs = 0;
    $probs = 0;
    $results = array();
    $results_prob = array();
    for($i=0;$i<$cycles;$i++){
        for($k=0;$k<$runs;$k++){
            $basic_seed = Random_basic_seed();
            $number = Random_gmp_winner_number($basic_seed,$player_seed,$tickets,$players);
            if(array_key_exists($number,$results)){
                $results[$number]++;
            }
            else{
                $results[$number] = 1;
            }
        }
    }
    ksort($results);?>

    <table>
        <thead>
            <td>Number</td>
            <td>Number of Times</td>
            <td>Probability</td>            
        </thead><?php 
    foreach($results as $key => $value){ 
        $n_runs += $value;
        $x = number_format((($value * 100)/($cycles * $runs)),3);
        $probs += $x;?>
        <tr>
            <td><?php echo $key;?></td>
            <td><?php echo $value;?></td>
            <td><?php echo $x.' %';?></td>
        </tr><?php 
    } ?>
        <tfoot>
            <td>Total Numbers: <?php echo count($results);?></td>
            <td>Total Runs: <?php echo $n_runs;?></td>
            <td>Total Prob: <?php echo $probs.' %';?></td>            
        <tfoot>
    </table><?php 
    */
    ?>
    TEST DI CASUALITà
    28-Marzo-2024 13:33:16 UTC
    I valori Numero di esecuzioni Probabilità
    1 211 21.100 %
    2 201 20.100 %
    3 201 20.100 %
    4 196 19.600 %
    5 191 19.100 %
    5 1000 100 %