Étape 1. Trouver les données du tour
Ouvrez le panneau d'équité dans le jeu. Il y a quatre valeurs : hash(serverSeed) — le hash prépublié de la graine serveur, clientSeed — votre graine client, nonce — le numéro du tour, et le serverSeed lui-même (il est révélé après la rotation de la graine).
Tant que la graine serveur est active, seul son hash est visible — cela sert de « engagement » : le serveur ne peut pas modifier la graine rétroactivement.
Étape 2. Attendez la révélation et vérifiez le hash
Changez le serverSeed (rotation) — l'ancien serverSeed sera révélé. Calculez le SHA-256 du seed révélé et comparez-le avec le hash publié avant la partie. S'ils correspondent, le seed n'a pas été modifié.
C'est le point clé : vous vérifiez que le serveur a joué avec exactement la graine qu'il s'était engagé à utiliser à l'avance.
Étape 3. Recalculer l'original
L'endpoint /api/fair/verify accepte serverSeed, clientSeed et nonce et recalcule indépendamment les positions des rouleaux. Le résultat doit correspondre à ce que vous avez vu dans le jeu.
Sous le capot — HMAC-SHA256 et rejection sampling (sans modulo-bias), afin que la distribution des symboles soit strictement uniforme. Le même mécanisme fonctionne dans les thèmes Megaways et cascade.