Le terme revient partout dans l’univers des casinos en cryptomonnaies. Provably fair, que l’on peut traduire par équité vérifiable, promet de remplacer une partie de la confiance accordée à l’opérateur par des calculs que le joueur peut reproduire.
La promesse est réelle. Elle est aussi beaucoup plus étroite que ce que certains discours commerciaux laissent entendre.
Le mécanisme ne nécessite d’ailleurs pas de blockchain. Il repose avant tout sur des fonctions cryptographiques, un engagement publié avant la mise et une méthode de calcul accessible au joueur.
Comprendre ce qu’il permet de vérifier, mais aussi ce qu’il laisse dans l’ombre, constitue un bon exercice de cryptographie appliquée.

Sommaire
Un engagement côté serveur, une contribution côté client et un compteur
La mise en œuvre varie selon les plateformes. Une architecture courante repose néanmoins sur trois valeurs principales.
La première est la seed du serveur, une chaîne générée par l’opérateur. Avant que le joueur ne mise, la plateforme publie le hachage de cette graine, souvent calculé avec SHA-256. La graine elle-même reste secrète jusqu’à sa rotation.
La deuxième est la seed client. Elle peut être générée par le navigateur ou choisie par le joueur. L’opérateur la connaîtra généralement avant le calcul du résultat. Le point essentiel est qu’il se soit déjà engagé sur sa propre graine en publiant son hachage.
Pour renforcer cette séparation, le joueur peut modifier sa client seed après la publication de cet engagement.
La troisième valeur est le nonce, un compteur qui augmente à chaque mise effectuée avec la même paire de graines. Il fournit une entrée différente à chaque tour.
Cela ne signifie pas que le même résultat de jeu ne peut jamais apparaître deux fois. Deux nonces différentes peuvent parfaitement produire, après conversion, le même résultat à un jeu de dés ou à une roulette. Le compteur sert à générer une nouvelle séquence de données, pas à interdire les répétitions.
Certaines plateformes ajoutent également un curseur, un numéro de tour ou d’autres paramètres. Il n’existe donc pas de formule universelle valable pour tous les jeux dits provably fair.
Le calcul dépend de l’implémentation
Dans une configuration courante, la server seed sert de clé à une fonction HMAC-SHA256. La client seed, le nonce et parfois d’autres compteurs composent le message traité par cette fonction.
Une représentation simplifiée pourrait ressembler à ceci :
HMAC-SHA256(server_seed, client_seed + nonce)
Le format exact des séparateurs, l’ordre des paramètres et l’ajout éventuel d’autres valeurs dépendent toutefois du jeu.
HMAC-SHA256 produit 256 bits de données, souvent représentés par une chaîne de 64 caractères hexadécimaux. Une formule publiée par la plateforme transforme ensuite une partie de ces données en résultat de jeu.
Cette étape de conversion est essentielle. L’HMAC ne produit pas directement un lancer de dés, un multiplicateur ou la position d’une mine. Il produit des données cryptographiques que le logiciel convertit selon ses propres règles.
Pour vérifier correctement un jeu, il faut donc connaître non seulement les graines et le nonce, mais aussi la méthode exacte utilisée pour transformer le résultat cryptographique en résultat visible.
L’engagement est au cœur du système
L’opérateur publie le hachage de sa seed avant la mise. Il s’engage ainsi sur une valeur qu’il ne devrait plus pouvoir remplacer après avoir pris connaissance de la contribution du joueur.
Une fois la graine révélée, le joueur peut la hacher à son tour et vérifier que le résultat correspond bien à l’engagement publié auparavant.
La solidité de cette étape ne repose pas seulement sur l’effet d’avalanche de SHA-256, selon lequel une petite modification de l’entrée change fortement le hachage. Elle dépend surtout de la résistance de la fonction aux préimages et aux secondes préimages.
En pratique, l’opérateur ne devrait pas pouvoir partir du hachage pour retrouver facilement la graine. Il ne devrait pas non plus pouvoir révéler une autre graine produisant le même engagement.
Cette protection suppose néanmoins que la graine ait été générée avec suffisamment d’entropie. Une valeur courte, prévisible ou issue d’une mauvaise source aléatoire pourrait être retrouvée par recherche exhaustive sans qu’il soit nécessaire de casser SHA-256.
Tant que la seed du serveur reste secrète, le joueur ne peut normalement pas calculer le prochain résultat. Une fois engagé, l’opérateur ne peut normalement pas remplacer cette graine après la mise.
Le protocole verrouille donc un point précis. Il ne garantit pas pour autant l’intégrité de tout ce qui se passe autour de lui.
La vérification, étape par étape
La procédure peut être effectuée sans connaissances avancées en programmation, à condition que la plateforme fournisse toutes les données nécessaires.
Avant de jouer, il faut conserver le hachage de la server seed. Il est également nécessaire de noter la seed du client, le nonce de la partie concernée et les éventuels paramètres supplémentaires utilisés par l’algorithme.
Après la rotation des graines, l’ancienne server seed est révélée.
La première vérification consiste à calculer son hachage SHA-256. Celui-ci doit correspondre exactement à la valeur publiée avant les mises.
La deuxième consiste à recalculer l’HMAC avec la server seed révélée, la client seed, le nonce et les autres paramètres requis. Il faut ensuite appliquer la formule de conversion publiée par le jeu.
Si le résultat obtenu correspond à celui qui avait été affiché, le joueur a confirmé deux éléments : la graine révélée correspond à l’engagement initial, et le résultat peut être reproduit à partir des données annoncées et de la méthode publiée.
Cela ne suffit pas à conclure que toute la plateforme était honnête.
La correspondance entre la graine révélée et son hachage valide l’engagement utilisé pour une série de parties. Chaque mise possède néanmoins son propre nonce. Pour contrôler tous les résultats de la session, il faut donc recalculer chaque tour que l’on souhaite vérifier.
Ce que le mécanisme ne prouve pas
L’équité vérifiable ne prouve pas abstraitement qu’un jeu est juste. Elle permet de vérifier qu’un résultat déclaré correspond à des données engagées à l’avance et à un algorithme publié.
Elle ne démontre pas la solvabilité de l’opérateur. Elle ne garantit pas que les retraits seront honorés. Elle ne prouve pas que la plateforme possède une autorisation valable dans le pays du joueur.
Elle ne garantit pas non plus que le taux de redistribution soit favorable.
Un jeu peut être parfaitement vérifiable tout en conservant un avantage mathématique important pour la maison. Le système peut confirmer que le résultat a été calculé correctement sans dire si les probabilités ou les gains proposés sont intéressants pour le joueur.
Il ne prouve pas davantage que le code réellement exécuté au moment de la mise était identique à celui présenté dans la documentation. Une plateforme pourrait aussi utiliser une formule de conversion défavorable, afficher un nonce incorrect, omettre certaines parties ou refuser certains résultats.
Le protocole réduit donc une forme de manipulation. Il n’élimine pas tous les comportements possibles d’un opérateur malveillant.
Une technologie qui ne se limite pas aux jeux internes
Le mécanisme est particulièrement fréquent dans les jeux de type Dice, Crash ou Mines. Ces formats utilisent des résultats relativement simples à reproduire à partir de données cryptographiques.
Il n’est toutefois pas réservé aux jeux développés directement par l’opérateur. Un studio tiers peut intégrer sa propre méthode vérifiable et fournir au joueur les graines, compteurs et algorithmes nécessaires.
De nombreux jeux de fournisseurs externes ne proposent cependant pas ce niveau de vérification directe. Dans les marchés réglementés, leurs générateurs aléatoires, règles et systèmes peuvent alors être testés ou certifiés selon les exigences de la juridiction concernée.
Les modalités varient selon le jeu, sa version, le laboratoire et le marché dans lequel il est proposé. Il serait donc excessif d’affirmer que tous les titres d’un studio sont contrôlés de manière identique par un laboratoire particulier.
Les jeux avec croupier en direct relèvent encore d’une autre logique. Une partie du résultat provient d’un jeu physique filmé dans un studio ou un casino, et non d’un simple générateur de nombres aléatoires.
Le paradoxe du vérificateur
De nombreuses plateformes mettent à disposition leur propre outil de vérification. La solution est pratique, mais elle pose une question évidente : le joueur utilise le code de l’opérateur pour vérifier le comportement de ce même opérateur.
Une meilleure pratique consiste à employer une implémentation indépendante dont le code peut être examiné, puis à l’exécuter localement ou dans un environnement contrôlé.
La simple présence d’un dépôt open source ne constitue toutefois pas une garantie absolue. Il faut encore que le code réellement exécuté corresponde à celui qui a été publié.
Un vérificateur légitime n’a jamais besoin du mot de passe du compte, d’une clé privée ou de la phrase de récupération d’un portefeuille. Ces informations ne doivent être saisies dans aucun outil de contrôle.
Les données nécessaires devraient se limiter aux graines concernées, au nonce, au résultat et aux paramètres publics de l’algorithme.
Vérifier le jeu ne dispense pas de vérifier l’opérateur
Un tirage reproductible ne donne aucune réponse sur la légitimité juridique de la plateforme qui l’héberge.
En France, seuls les paris sportifs, les paris hippiques et le poker en ligne peuvent faire l’objet d’un agrément délivré à des opérateurs privés par l’Autorité nationale des jeux.
Les jeux de casino en ligne restent interdits. Les loteries proposées sur internet relèvent pour leur part des droits exclusifs accordés à la Française des Jeux.
D’autres juridictions ont fait un choix différent.
En Ontario, un marché réglementé accueillant des opérateurs privés de casino en ligne fonctionne depuis le 4 avril 2022. Les opérateurs doivent être enregistrés auprès de la Commission des alcools et des jeux de l’Ontario et exercer dans le cadre du marché géré par iGaming Ontario.
La technologie cryptographique peut être identique dans les deux cas. Le statut juridique de l’opérateur, lui, ne l’est pas.
Une réponse précise à une question précise
Le provably fair est un outil cryptographique élégant. Il permet de vérifier si un résultat déclaré correspond à une graine engagée avant la mise, à la contribution du joueur et à l’algorithme publié.
Il ne permet pas, à lui seul, d’exclure toute manipulation possible de la plateforme.
Il ne répond pas aux questions de régulation, de solvabilité, de paiement des retraits ou de risque financier. Il ne transforme pas non plus un jeu à espérance négative en investissement favorable.
L’erreur la plus courante consiste à étendre une preuve limitée bien au-delà de son domaine réel.
C’est finalement une bonne leçon de cryptographie appliquée. Une preuve mathématique peut être très puissante là où elle s’applique, et parfaitement silencieuse partout ailleurs.
Crédit photo: Markus Spiske (Unsplash Free)
