QU'EST-CE QUE L'ÉQUITÉ PROUVÉE ?Rocketpot utilise des algorithmes"Provably Fair". Vous pouvez vérifier le résultat du jeu à l'aide du code source fourni ci-dessous. Le système Provably Fair est une méthode mathématique utilisée pour garantir que personne, ni les joueurs ni l'opérateur du site, ne peut connaître le résultat du jeu avant qu'il ne commence et que personne ne peut altérer les nombres aléatoires du jeu. |
COMMENT CELA FONCTIONNE-T-IL ?Nous avons généré une chaîne de Le hachage du dernier élément de la chaîne est Chaque jeu correspond à un hachage dans la chaîne : Le |
COMMENT LE VÉRIFIER ?Pour vérifier qu'un hachage appartient à un jeu #n, il suffit de le hacher n fois et de comparer le résultat avec le hachage final. Pour calculer le résultat d'un jeu à partir de son hachage : |
const CryptoJS = require("crypto-js") ; function generateGameResultFromSeed(roundSeed, salt) { // Nombre de bits les plus significatifs à utiliser const nBitsToUse = 52 ; // Etape 1. HMAC_SHA256(message=seed, key=salt) const hmac = CryptoJS.HmacSHA256(roundSeed, salt) ; const roundHash = hmac.toString(CryptoJS.enc.Hex) ; // Etape 2. r = 52 bits les plus significatifs const roundRandSource = roundHash.slice(0, nBitsToUse / 4) ; const r = parseInt(roundRandSource, 16) ; // Etape 3. Calculer le crash = r / 2^52, uniformément distribué dans [0 ; 1) const twoPower52 = Math.pow(2, nBitsToUse) ; let crash = r / twoPower52 ; // Étape 4. Calcul du crash normalisé dans la plage 100 - 100B crash = Math.floor(97 / crash) ; crash = Math.min(crash, 100000000000) ; crash = Math.max(crash, 100) ; // Étape 5. Prenez les 52 bits suivants comme graines pour la sélection des joueurs dans le tour du Jackpot. const jpPlayerRandSource = roundHash.slice(nBitsToUse / 4, 2 * nBitsToUse / 4) ; const jpPlayerRandom = parseInt(jpPlayerRandSource, 16) ; // Etape 6. Prenez les 52 bits suivants comme graine pour choisir la valeur du Jackpot sur la roue const jpValueRandSource = roundHash.slice(2 * nBitsToUse / 4, 3 * nBitsToUse / 4) ; const jpValueRandom = parseInt(jpValueRandSource, 16) ; return {roundHash, jpPlayerRandom, jpValueRandom, crash, roundSeed} ;
}
Avant d'être utilisé pour calculer le résultat correspondant, chaque hachage de jeu est salé avec la représentation en chaîne hexadécimale minuscule du hachage d'un bloc de bitcoins. Le numéro du bloc à utiliser a été publié sur le forum Bitcointalk (URL https://bitcointalk.org/index.php?topic=5178349) avant qu'il ne soit miné, ce qui prouve que nous n'avons pas délibérément choisi une chaîne défavorable aux joueurs. Ce bloc est le Il est possible de vérifier que nous avons affiché le numéro du bloc à utiliser avant qu'il ne soit miné dans les instantanés suivants du post de l'événement d'ensemencement de bitcointalk : https://archive.is/Mwq4s , http://loyce.club/archive/posts/5224/52246534.html et https://archive.is/r8zCU (merci à LoyceV d'avoir récupéré et archivé le post !) |
SÉLECTION DES JOUEURS DU JACKPOT ET POSITIONS DE LA ROUELes résultats de la roue du jackpot peuvent être vérifiés avec le code suivant: https://jsfiddle.net/7uackeqo/ Étapes de préparation :
Commentaire : Le processus de génération d'un nombre entier à partir du hachage est similaire à celui de n'importe quel jeu de hasard, nous générons simplement 3 nombres entiers au lieu de 1. Étapes de sélection du joueur :
Commentaire : Une façon intuitive d'expliquer le processus de sélection des joueurs est que chaque joueur reçoit 1 ticket pour chaque satoshi de la mise. Ensuite, un ticket est choisi en fonction de la valeur de la chaîne de hachage. Étant donné la liste des joueurs (qui se compose des noms des joueurs et de leurs paris) et le hash rond, n'importe qui peut vérifier le résultat de la sélection des joueurs. Une fois que tous les paris sont engagés, il n'y a aucun moyen pour l'opérateur de manipuler la sélection des joueurs. Étapes du tour de roue :
Commentaire : Compte tenu de la configuration de la roue (indices des secteurs et leurs valeurs) et du hachage du tour, n'importe qui peut vérifier le résultat de la rotation de la roue et il n'y a aucun moyen de manipuler le résultat de la rotation après que l'événement de semence se soit produit. Ce texte a été modifié le 24 septembre 2019. |