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. |