O QUE É PROVADAMENTE JUSTO?O Rocketpot usa algoritmosProvavelmente justos. Você pode verificar o resultado do jogo com o código fonte fornecido abaixo. O sistema Provably Fair é um método matemático que é usado para garantir que ninguém, nem os jogadores nem o operador do site, possa saber o resultado do jogo antes de ele começar e ninguém possa mexer nos números aleatórios do jogo. |
COMO FUNCIONA?Nós geramos uma cadeia de O hash do último elemento da cadeia é Todos os mapas de jogo para um hash na cadeia: O |
COMO VERIFICÁ-LO?Para verificar que um hash pertence a um jogo #n, simplesmente o hash n vezes e compare o resultado com o hash que o termina. Para calcular o resultado de um jogo a partir do seu hash: |
const CryptoJS = require("crypto-js");
função generateGameResultFromSeed(roundSeed, sal) {
// Número de bits mais significativos a utilizar
const nBitsToUse = 52;
// Passo 1. HMAC_SHA256(message=seed, key=salt)
const hmac = CryptoJS.HmacSHA256(roundSeed, sal);
const roundHash = hmac.toString(CryptoJS.enc.Hex);
// Passo 2. r = 52 bits mais significativos
const roundRandSource = roundHash.slice(0, nBitsToUse / 4);
const r = parseInt(roundRandSource, 16);
// Passo 3. Calcular o crash = r / 2^52, uniformemente distribuído em [0; 1)
const twoPower52 = Math.pow(2, nBitsToUse);
let crash = r / twoPower52;
// Passo 4. Calcular o crash normalizado no intervalo 100 - 100B
crash = Math.floor(97 / crash);
crash = Math.min(crash, 100000000000);
crash = Math.max(crash, 100);
// Passo 5. Pegue os próximos 52 bits como semente para a seleção do jogador na rodada do Jackpot
const jpPlayerRandSource = roundHash.slice(nBitsToUse / 4, 2 * nBitsToUse / 4);
const jpPlayerRandom = parseInt(jpPlayerRandSource, 16);
// Passo 6. Pegue os próximos 52 bits como semente para apanhar o valor do Jackpot na roda
const jpValueRandSource = roundHash.slice(2 * nBitsToUse / 4, 3 * nBitsToUse / 4);
const jpValueRandom = parseInt(jpValueRandSource, 16);
retornar {roundHash, jpPlayerRandom, jpValueRandom, crash, roundSeed};
}
|
Antes de ser usado para calcular o resultado correspondente, cada hash de jogo é salgado com a representação em minúsculas, hexadecimais de corda do hash de um bloco de bitcoin. O número do bloco a usar foi publicado no fórum Bitcointalk (URL https://bitcointalk.org/index.php?topic=5178349) antes de ser minado, provando que não escolhemos deliberadamente uma corrente que seja desfavorável para os jogadores. Este bloco é Pode-se verificar que publicamos o número do bloco a ser usado antes de ser minado nas seguintes fotos do evento de semeadura de bitcointalk post: https://archive.is/Mwq4s , http://loyce.club/archive/posts/5224/52246534.html e https://archive.is/r8zCU (obrigado LoyceV por raspar e arquivar o post!) |
SELEÇÃO DO JOGADOR DO JACKPOT E POSIÇÕES DAS RODASOs resultados da roda do jackpot podem ser verificados com o seguinte código:https://jsfiddle.net/7uackeqo/ Etapas de preparação:
Comentário:O processo de gerar um inteiro a partir do hash é semelhante a qualquer jogo de "crash", nós apenas geramos 3 inteiros em vez de 1. Etapas de seleção do jogador:
Comentário:Uma forma intuitiva de explicar o processo de selecção do jogador é que cada jogador recebe 1 bilhete por cada satoshi da aposta. E então um bilhete é escolhido com base no valor da cadeia de hash. Dada a lista de jogadores (que consiste de nomes de jogadores e suas apostas) e hash redondo, qualquer um pode verificar o resultado da seleção do jogador. Uma vez que todas as apostas são comprometidas, não há como o operador manipular a seleção do jogador. Passos para rodar a roda:
Comentário:Dada a configuração da roda (índices de setor e seus valores) e hash redondo, qualquer um pode verificar o resultado do giro da roda e não há maneira de manipular o resultado do giro após a ocorrência do evento da semente. Este texto foi editado no dia 24 de Setembro de 2019. |