Graines, hachages et un nonce
Vérification provably fair : recalculer un tour soi-même, étape par étape
Un tour provably fair se reconstruit à partir de trois entrées et d'une fonction de hachage. Voici la procédure à la main, un exemple calculé avec de vrais nombres, et ce qu'une concordance prouve ou ne prouve pas.
Une vérification provably fair vous permet de confirmer que le résultat d'un tour était fixé avant votre pari et n'a pas été modifié ensuite. Vous n'avez pas à croire un badge qui l'affirme. Il vous faut trois entrées, un outil de hachage et un peu de patience, et le résultat concorde ou non.
La procédure ci-dessous est générique, bâtie sur HMAC-SHA256. Chaque jeu décrit sa propre formule sur sa page d'équité, et rien ici ne dit qu'un casino nommé emploie exactement ce schéma. Prenez-la comme un moyen de comprendre l'idée, puis suivez la formule imprimée pour le jeu auquel vous jouez.
La méthode est la plus facile à suivre dans les jeux à un seul tirage par tour, comme les dés ou le pile ou face. Les jeux qui distribuent plusieurs cartes ou posent plusieurs cases utilisent les mêmes graines mais lisent davantage de la sortie : leurs formules sont donc plus longues. Le principe, s'engager d'abord et révéler ensuite, reste le même.
- 1 une clause de vérification d'identité figure dans les conditions 9 sur 12
- 2 cette clause nomme le moment où la vérification commence 6 sur 12
- 3 un montant est inscrit dans la clause 2 sur 12
- 4 un délai d'envoi des documents figure dans les conditions 4 sur 12
- 5 le registre des licences montre la licence en regard du domaine propre du casino 7 sur 12
Les trois entrées
La graine serveur et son hachage
La graine serveur est une chaîne aléatoire que le jeu choisit avant que vous jouiez. Elle reste secrète tant qu'elle sert, mais son hachage SHA-256 vous est montré à l'avance. Un hachage ne va que dans un sens : chacun peut transformer la graine en hachage, personne ne peut remonter du hachage à la graine. Montrer le hachage d'abord est un engagement, puisque la graine révélée plus tard doit produire exactement ce hachage.
La graine client
La graine client est votre apport. Beaucoup de panneaux d'équité vous laissent taper la vôtre ou en accepter une aléatoire. Comme elle entre dans chaque résultat, le jeu ne peut pas avoir choisi des résultats qui l'arrangent sans connaître votre graine, et c'est pourquoi en poser une nouvelle vaut les quelques frappes.
Le nonce
Le nonce est un compteur. Il monte d'une unité à chaque pari placé sur la même paire de graines : chaque tour reçoit donc une entrée différente alors que les graines ne changent pas. Certains jeux comptent à partir de 0 et d'autres de 1, un détail qui compte quand on recalcule un tour.
Une vérification provably fair, étape par étape
- Avant votre premier pari, copiez le hachage de la graine serveur affiché dans le panneau d'équité et gardez-le hors du jeu.
- Posez ou notez votre graine client.
- Jouez, et notez le nonce de tout tour que vous voulez vérifier.
- Faites tourner les graines une fois terminé. Le jeu révèle alors la graine serveur utilisée et s'engage sur une nouvelle.
- Hachez la graine serveur révélée avec SHA-256 et vérifiez que chaque caractère concorde avec la chaîne gardée à l'étape 1.
- Calculez HMAC-SHA256 avec la graine serveur comme clé et votre graine client, deux points et le nonce comme message.
- Transformez la sortie en résultat avec la formule qu'imprime le jeu, et comparez-le au tour de votre historique.
N'importe quel calculateur HMAC-SHA256 fera l'affaire, de même que la bibliothèque de hachage d'un langage de script que vous avez déjà. Collez les valeurs plutôt que de les retaper, car un seul caractère erroné suffit à casser la comparaison, et gardez graines, nonce et résultat dans une même note pour pouvoir revérifier le tour plus tard.
Un exemple calculé avec de vrais nombres
La graine ci-dessous est courte pour rester lisible ; les vraies graines serveur sont plus longues.
- Graine serveur : 5e2b9c14a7d03f68. Son hachage SHA-256 commence par 914e17f2c81eee7a, et c'est la chaîne que vous auriez sauvegardée avant de jouer.
- Graine client : reader-seed-42.
- Nonce : 1, ce qui donne le message reader-seed-42:1.
- La sortie HMAC-SHA256 commence par f9059c41.
Une façon courante d'obtenir un résultat de dé de 0 à 99,99 prend les huit premiers caractères hexadécimaux, les lit comme un nombre, divise par 4 294 967 296 (deux puissance 32), multiplie par 100 et garde deux décimales. Ici f9059c41 vaut 4 177 894 465 ; divisé par 4 294 967 296, cela fait 0,97274 et un peu plus, le jet est donc 97,27.
Avec le nonce à 2, le message devient reader-seed-42:2. La sortie commence par b6589656, soit 3 059 258 966, et le jet est 71,22. Deux tours, deux résultats différents, tous deux fixés au moment où la graine serveur a été engagée et la graine client posée.
Quand vos nombres ne concordent pas
Avant de conclure quoi que ce soit, écartez les méprises habituelles. La clé et le message peuvent être intervertis. Le séparateur peut être un tiret plutôt que deux points, ou le nonce peut partir de 0. Un espace parasite copié avec la graine change chaque caractère de la sortie, et certains outils attendent de l'hexadécimal en majuscules. Ce n'est que lorsque la formule propre au jeu, appliquée avec soin, donne encore un autre résultat que vous avez un vrai écart à signaler.
Ce que prouve une concordance, et ce qu'elle laisse de côté
Une concordance prouve une chose étroite : le résultat de ce tour découlait d'une graine serveur engagée avant votre pari et d'une graine client que vous contrôliez. Le jeu n'a pas pu choisir le résultat après avoir vu votre mise.
Elle ne prouve rien sur l'avantage intégré à la formule. La façon dont les résultats deviennent des gains est l'endroit où vit le retour d'un jeu, et l'arithmétique du retour et de l'avantage fonctionne pareil, qu'un tour soit vérifiable ou non.
Elle ne dit rien non plus du retrait de l'argent. Un casino dont chaque tour se vérifie peut toujours fixer un minimum par demande, réclamer des documents à partir d'un certain montant, plafonner ce qui sort par semaine ou payer une grosse somme en parts. Ces règles viennent de ses conditions, et l'échelle des montants de la page d'accueil les suit étage par étage. Il en va de même des licences : un hachage vérifié n'est pas une inscription de licence au registre, et la façon dont le classement est noté repose sur les conditions et les registres, non sur des panneaux d'équité.
Des habitudes qui gardent la vérification utile
- Posez votre propre graine client avant une session plutôt que d'en accepter une que vous n'avez jamais regardée.
- Sauvegardez d'abord le hachage de la graine serveur, hors du jeu, pour qu'une graine révélée puisse être comparée à quelque chose que le jeu ne pouvait pas modifier.
- Faites tourner les graines après une session et vérifiez un échantillon de tours, y compris tout gain ou toute perte inhabituellement grands.
- Notez le nonce des tours qui comptent tant qu'ils sont frais ; les longs historiques sont difficiles à fouiller plus tard.
La même modestie vaut pour ce site : sa rédaction et ses sources décrivent des règles tirées de conditions, et aucune page ne prétend qu'un jeu vérifiable change ces règles.
Il y a aussi une limite à ce qu'une personne peut vérifier. Vérifier une poignée de tours montre que ces tours étaient engagés à l'avance ; cela ne peut rien montrer des tours que vous n'avez pas recalculés. L'engagement fonctionne pourtant de la même façon pour chaque tour : un jeu qui altérerait des résultats pourrait donc être pris sur le tour qu'un joueur a choisi par hasard.
Une vérification faite de temps à autre garde sa valeur. Une paire de graines qu'on ne fait jamais tourner ne révèle jamais sa graine serveur, et alors plus rien ne peut être vérifié.
Les questions que les gens tapent vraiment
Faut-il un logiciel particulier pour une vérification provably fair ?
Un tour vérifié signifie-t-il que le jeu a un bon retour ?
Une vérification provably fair dit-elle quelque chose des retraits ?