Curseur (ronde)
Un compteur qui passe à une nouvelle sortie HMAC quand un jeu a besoin de plus d'octets aléatoires qu'un seul hachage de 32 octets n'en fournit.
Une sortie HMAC-SHA256 fait 32 octets, ce qui donne 8 nombres à virgule flottante de 4 octets chacun. Des jeux comme le dice et le limbo n'ont besoin que d'un seul nombre. D'autres, comme le plinko à 16 rangées, les mines avec beaucoup de mines ou les jeux de cartes, en ont besoin de plus.
Comment fonctionne le curseur
Dans le système courant, le message comprend un numéro de ronde : clientSeed:nonce:round. Les 32 premiers octets proviennent de la ronde 0. Quand ils sont épuisés, le générateur calcule un nouveau HMAC avec la ronde 1, puis la ronde 2, et ainsi de suite. Le curseur suit la position dans ce flux d'octets. Certaines documentations l'appellent le curseur, d'autres la ronde ou la ronde en cours.
Pourquoi c'est important
Si vous vérifiez une descente de plinko à 16 rangées avec un seul HMAC, vous obtiendrez les 8 premières rangées correctement et le reste incorrectement. Un bon outil de vérification gère le curseur automatiquement.
Exemple concret
Une mise aux mines a besoin de 24 nombres à virgule flottante. Ça représente 96 octets, donc l'outil de vérification calcule les rondes 0, 1 et 2 (32 octets chacune) et lit les nombres dans l'ordre d'une ronde à l'autre.