Dados justos y comprobables
Verifica cada tirada
Cómo funciona
- 1
El servidor fija una semilla
Antes de la primera tirada, el servidor elige una semilla aleatoria secreta y publica su huella SHA-256 (el compromiso). Una vez publicada, la semilla no puede cambiar sin que también cambie la huella.
- 2
Los dos jugadores añaden la suya
La app de cada jugador envía su propia semilla aleatoria cuando empieza la partida. Así, el servidor por sí solo no podría haber planeado los dados, aunque quisiera.
- 3
Cada tirada sale de las semillas
La tirada número k es el HMAC-SHA256 del id de la partida, las semillas de ambos jugadores y k, con la semilla del servidor como clave. Los bytes sesgados se descartan, así que cada cara tiene exactamente la misma probabilidad.
- 4
La semilla se revela al final
Cuando termina la partida, se publica la semilla del servidor. Cualquiera puede calcular su hash, compararlo con el compromiso y recalcular cada tirada, como hace esta página en tu navegador.
roll(k) = HMAC-SHA256(key = serverSeed, "matchId|seedA|seedB|k|c"); byte b < 252 → die = b mod 6 + 1
Comprueba cualquier conjunto de semillas
Pega los valores de cualquier partida. Los dados se calculan aquí, en tu navegador; no se envía nada a ningún lado.