Comment vérifier le résultat d'une ouverture de caisse
Vérifier une ouverture de caisse demande cinq données et environ deux minutes. Il vous faut la seed serveur hachée vue avant l'ouverture, la seed serveur révélée, votre seed client (ou, pour les batailles, un hash de bloc), le nonce et les plages de billets de la boîte. Ce guide prend la méthode publiée de Packdraw comme exemple, parce que sa page d'équité montre le code au complet, puis explique en quoi CSGORoll et Skinrave diffèrent.
Étape 1 : noter l'engagement avant d'ouvrir
Avant d'ouvrir quoi que ce soit, notez la seed serveur hachée. Packdraw l'affiche dans votre profil et dit qu'il s'agit du hash SHA-512 de la seed serveur. Skinrave affiche la seed active en rouge tant qu'elle est encore hachée. Copiez le hash hors du site, avec la date. C'est l'étape que les gens sautent, et c'est celle qui donne un sens à tout le reste.
Notez aussi votre seed client. Sur Packdraw et CSGORoll, vous pouvez la choisir vous-même. Prenez une valeur de votre choix, pas celle par défaut.
Étape 2 : ouvrir, puis révéler la seed
Ouvrez votre boîte ou votre caisse. Pour vérifier, le site doit révéler la seed serveur. Packdraw dit dévoiler la seed non hachée après l'achat. Sur Skinrave et sur le jeu Roll de CSGORoll, la seed est révélée quand vous changez votre seed client, ce qui lance une nouvelle paire de seeds.
Trouvez l'ouverture dans votre historique. Il vous faut la seed serveur, la seed client et le nonce de cette ouverture précise. Le nonce est un compteur qui commence à 0 et augmente de 1 à chaque ouverture sur la même paire de seeds, donc une ouverture multiple de cinq boîtes utilise cinq nonces.
Étape 3 : vérifier que le hash correspond
Hachez la seed serveur révélée et comparez le résultat avec ce que vous avez noté à l'étape 1. Packdraw utilise SHA-512 pour cela. Si les deux ne correspondent pas, arrêtez : le résultat n'est pas fiable, gardez vos notes et communiquez avec le soutien.
Notre générateur de hash SHA-256 couvre les sites qui utilisent SHA-256. Pour SHA-512, utilisez l'extrait Node.js ci-dessous ou un outil local.
Étape 4 : recalculer le billet
La page d'équité de Packdraw publie cette fonction. Elle joint la seed client, la seed serveur et le nonce avec des deux-points, calcule le SHA-512 de cette chaîne, lit l'hexadécimal comme un seul grand entier et garde le reste de la division par 1 000 000. En ajoutant 1, on obtient un billet de 1 à 1 000 000.
const crypto = require('crypto');
const sha512 = (v) => crypto.createHash('sha512').update(v).digest('hex');
function ticket(clientSeed, serverSeed, nonce) {
const hash = sha512(`${clientSeed}:${serverSeed}:${nonce}`);
return Number((BigInt('0x' + hash) % 1000000n) + 1n);
}
const serverSeed = '4f1c9a7e2b6d8035c1e9f7a4b2d6083e5c7a9f1b3d5e7092c4a6b8d0e2f41357';
console.log(sha512(serverSeed).slice(0, 16)); // comparez avec le hash noté
for (let n = 0; n < 3; n++) console.log(n, ticket('maple-leaf-77', serverSeed, n));
Nous l'avons exécuté avec ces seeds d'exemple. Le hash commence par 39b562dbe6b54d6b, et les trois billets sont :
| Nonce | Billet |
|---|---|
| 0 | 674 184 |
| 1 | 910 929 |
| 2 | 231 914 |
Remplacez les seeds et le nonce par les vôtres et exécutez le code avec Node.js. Chaque exécution donne le même résultat pour les mêmes données, et c'est justement le but.
Étape 5 : faire correspondre le billet à l'article
Chaque article d'une boîte possède une plage de billets qui correspond à ses probabilités. Packdraw dit que les plages sont visibles dans le détail des paquets. Prenons une boîte d'exemple à 25 $ :
| Valeur de l'article | Probabilité | Billets |
|---|---|---|
| 1 000 $ | 0,4 % | 1 à 4 000 |
| 100 $ | 5 % | 4 001 à 54 000 |
| 30 $ | 20 % | 54 001 à 254 000 |
| 12 $ | 35 % | 254 001 à 604 000 |
| 5 $ | 39,6 % | 604 001 à 1 000 000 |
Le billet 674 184 tombe dans la plage à 5 $, le billet 910 929 aussi, et le billet 231 914 tombe dans la plage à 30 $. Si le site vous a montré un autre article pour l'une de ces ouvertures, le résultat ne correspond pas à la méthode publiée.
Pendant que le tableau est ouvert, vérifiez deux autres choses. Les plages doivent couvrir exactement 1 à 1 000 000, sans trou ni chevauchement. Et l'espérance se calcule facilement : 1 000 x 0,004 + 100 x 0,05 + 30 x 0,20 + 12 x 0,35 + 5 x 0,396 = 21,18 $, donc cette boîte rend en moyenne environ 84,7 % de son prix.
Batailles : vérifier avec un hash de bloc
Dans les batailles, Packdraw remplace votre seed client par le hash d'un bloc futur de la blockchain EOS, choisi au début de la bataille. Skinrave et CSGORoll font de même. Pour vérifier, il vous faut le numéro de bloc sur lequel le site s'est engagé, puis le hash de ce bloc dans un explorateur public de la blockchain EOS. Utilisez ce hash à la place de la seed client et recalculez.
Les batailles jackpot de Packdraw fonctionnent autrement. Chaque joueur reçoit une plage de billets de tirage proportionnelle à sa part de la cagnotte. Le billet gagnant est le SHA-256 du hash du bloc, lu comme un entier, modulo le nombre total de billets, plus 1. Le joueur dont la plage contient ce billet gagne.
Vérifiez que le bloc était bien dans le futur au moment de la création de la bataille. Si le numéro de bloc a été choisi après que le bloc existait, le résultat pouvait être connu d'avance.
En quoi les autres sites diffèrent
CSGORoll. Pour ses parties récentes, CSGORoll génère une seed serveur par partie, publie son hash SHA-256 et s'engage sur un numéro de bloc EOS futur avant le début de la partie. Il donne un lien vers un vérificateur à exécuter dans le navigateur. Pour son jeu Roll, il calcule le SHA-512 des seeds et du nonce, lit les cinq premiers caractères hex comme un nombre, passe aux cinq suivants si la valeur dépasse 10 000, puis divise par 100 pour obtenir un tirage de 0 à 99,99. Les anciennes parties utilisaient une chaîne de 10 millions de hash SHA-256 et d'anciennes versions du RNG, et la page indique quels nonces chaque version couvre.
Skinrave. Skinrave publie du code pour chaque jeu. Les batailles tirent des billets de 0 à 9 999 à partir de la seed serveur, de l'id d'un bloc EOS futur, du numéro de place et du numéro de manche. Pour les jeux en solo, changez votre seed client pour révéler l'ancienne seed serveur, puis vérifiez avec les seeds et le nonce de votre historique.
Pourquoi une vérification échoue
- Mauvais nonce. Les ouvertures multiples utilisent plusieurs nonces. Comptez à partir de la première ouverture sur cette paire de seeds.
- Mauvais ordre des données. La chaîne de Packdraw est seed client, puis seed serveur, puis nonce. Les inverser change tout.
- Une seed renouvelée. Si vous avez changé de seed client entre des ouvertures, chaque groupe utilise une seed serveur différente.
- Des plages modifiées. Le contenu et les probabilités des boîtes peuvent être mis à jour. Faites une capture d'écran de la page de la boîte au moment d'ouvrir.
- Une vraie incohérence. Si rien de ce qui précède ne l'explique, gardez le hash noté, la seed révélée et vos captures d'écran, et soulevez la question auprès du site.
Pour la méthode générale dans les jeux de casino, voyez notre guide pour vérifier une mise prouvablement équitable.
Pour voir quels sites publient une méthode vérifiable de cette façon, lisez les sites de boîtes mystère et de caisses prouvablement équitables.
Sources
- Page d'équité de Packdraw : https://packdraw.com/fairness
- Page provably fair de CSGORoll : https://www.csgoroll.com/info/provably-fair/
- Page d'équité de Skinrave : https://skinrave.gg/en/fairness
- NIST FIPS 180-4, Secure Hash Standard : https://csrc.nist.gov/pubs/fips/180-4/upd1/final
- Documentation crypto de Node.js : https://nodejs.org/api/crypto.html
Conditions clés
- Provably fair
- Une méthode cryptographique qui vous permet de confirmer qu'un résultat de jeu a été fixé avant votre pari et n'a pas été modifié ensuite.
- Seed serveur
- La valeur aléatoire secrète du casino qui, avec votre seed client et le nonce, détermine le résultat de chaque pari.
- Seed serveur hachée
- Le condensé SHA-256 de la seed serveur secrète du casino, publié avant tout pari comme preuve que la seed est figée.
- Seed client
- La contribution du joueur à chaque résultat provably fair, définie ou modifiée par vous pour que le casino ne puisse pas calculer les résultats à l'avance.
- Nonce
- Un compteur de paris qui augmente d'une unité à chaque mise sur la même paire de seeds, pour que deux paris ne partagent jamais le même résultat.
- Rotation des seeds
- Remplacer la seed serveur active par une nouvelle, ce qui dévoile l'ancienne seed pour que vous puissiez vérifier ses paris.
- SHA-256
- Un hash cryptographique qui transforme n'importe quelle entrée en un condensé fixe de 256 bits; les casinos l'utilisent pour s'engager sur les seeds serveur.
- Boîte mystère
- Une boîte vendue à prix fixe qui révèle un article au hasard parmi une liste publiée d'articles et de probabilités.
- Bataille de caisses
- Un mode où plusieurs joueurs ouvrent les mêmes caisses ou boîtes et où la plus grosse valeur totale remporte habituellement tous les articles.