Blog de Playgridia

¿Son justos los dados en backgammon online? Verifica tú mismo

¿Son injustos los dados en backgammon online? La respuesta honesta es que normalmente no puedes saberlo, porque quien lanza los dados es el mismo que produce el resultado y simplemente te dice "confía en mí". En este tablero las cosas son distintas — los dados se generan mediante un método llamado compromiso–revelación (commit–reveal) y después de que el juego termina, tú mismo puedes recalcular y verificar cada tirada de forma independiente.

"Me parece que son injustos" no es una prueba

Es realmente frustrante sacar dos seises seguidos o que justo cuando lo necesitas no salga el número que quieres — pero nuestra memoria es un mal testigo respecto a los dados. Que suceda un resultado de probabilidad 1 en 36 es algo normal que ocurra una vez cada 36 tiradas; que te golpeen tres veces seguidas también. El cerebro recuerda las tiradas malas y olvida cincuenta tiradas normales. Esto no invalida tu sospecha — solo que "me parece" y "probé" son cosas distintas, y el método que viene a continuación te da lo segundo.

El método: Compromiso–Revelación (Commit–Reveal)

Antes de que se lance el primer dado de una partida, el servidor genera un número secreto de 32 bytes (serverSeed) y publica solo su huella SHA-256 (el compromiso) — no el número secreto en sí. El orden es crítico aquí: el compromiso se hace público antes de que nadie conozca la semilla de nadie y antes de que se lance un solo dado, por lo que el servidor no puede más adelante inventar "en realidad la semilla secreta fue esta" porque la huella ya no coincidirá.

Después cada jugador añade su propia semilla (client seed) — texto libre que quieras, hasta 40 caracteres; si no introduces nada se genera automáticamente una semilla aleatoria de 8 bytes. Tu semilla entra en el cálculo de cada dado, así que el servidor no puede predecir la semilla que añadirás más tarde y elegir una semilla secreta que le convenga.

Cada tirada de dados se calcula con la fórmula HMAC-SHA256(serverSeed, "semillaBlancas:semillaNegras:nonce"); el nonce es el número de orden de esa tirada dentro del juego. Los dos dados se derivan de los primeros dos bytes de la salida HMAC — pero no cualquier byte, solo los bytes por debajo de 252. La razón es matemática pura: si divides directamente un byte por 6 y tomas el resto (byte % 6), verías los números bajos aproximadamente el 1,6% más a menudo, porque 256 no se divide exactamente entre 6. Pero 252 es exactamente 6×42, por lo que cada byte por debajo de ese umbral representa los seis números con probabilidad exactamente igual. Este detalle prueba que alguien realmente se preocupó por hacer esto bien.

Cuando el juego termina, se revela la semilla secreta (serverSeed). Después de eso, no solo los dos jugadores sino cualquiera puede recalcular cada dado del juego y compararlo con la huella publicada.

FaseQué ocurreQuién puede verificar
1. CompromisoEl servidor genera una semilla secreta de 32 bytes, publica solo su huella SHA-256Todos — la huella es pública antes del primer dado
2. SemillaCada jugador añade su propia semilla de hasta 40 caracteresLos jugadores — conocen sus propias semillas
3. TiradaCada dado se genera desde HMAC-SHA256(semilla secreta, semillas:nonce), usando solo bytes por debajo de 252Nadie por adelantado — solo después de la revelación
4. RevelaciónCuando termina el juego, se publica la semilla secretaTodos — ahora tienes la fórmula
5. VerificaciónSe recalcula cada tirada y se compara con la huellaTodos — en el navegador, sin confiar en el servidor

Cómo verificas esto tú mismo

En el tablero hay un panel de equidad: muestra el compromiso (la huella) y marca la clave como "sellada" mientras la semilla secreta aún no se ha revelado. Después de que termina el juego, una página de Revisión vuelve a ejecutar toda la verificación para ti. Hay un detalle importante aquí: el código verificador en el navegador no importa el código del servidor — está escrito de forma independiente con la criptografía Web nativa del navegador. Así que la prueba no depende de que confíes en la implementación del servidor; es tu propio navegador el que hace su propio cálculo. Además, un extremo del servidor devuelve el resultado junto con el nombre del algoritmo usado — una comodidad de acuerdo con su propia definición en el código fuente, no la prueba en sí. Los juegos terminados se conservan con sus registros de dados revelados durante 400 días, así que incluso puedes verificar una partida de la temporada pasada de la que desconfía.

En el tablero de backgammon se han lanzado dos dados (4 y 1), con un recuento de pips de 153 para GrandDuke210 y 136 para el bot rival AnchorAda, fichas dispersas en contacto.
La tirada de dados se lee en el mismo tablero — el recuento de pips se muestra en vivo junto al nombre de cada jugador.

El tema del tablero no puede cambiar los dados

Estructuralmente, la función que contiene la lógica de los dados nunca toma tablero o parámetros de tema — así que el tema de tablero que uses, el color que elijas, no afecta de ninguna manera qué dado va a salir. Elijas el aspecto visual que elijas entre los cuatro disponibles, el código que calcula los dados permanece idéntico.

Incluso quién comienza lo determina el mismo sistema

La tirada de apertura que determina quién juega primero es también parte de la misma cadena verificable. Los dos bandos se tratan como si cada uno tuviera un dado de la tirada combinada única — uno es el dado de las blancas, otro el de las negras; el que salga más alto comienza y juega ambos dados en su primer turno. Si los dados salen iguales es un empate y se relanza — pero incluso este relanzamiento es parte de la cadena, porque el número de orden (nonce) avanza y se registra. Cuántos empates ocurrieron antes de la tirada real también se envía por separado al cliente, así que ni siquiera este número se te oculta.

En el tablero de backgammon se han lanzado dados 1 y 3; la mayoría de las fichas blancas están apiñadas en el punto 1 en una pila de 12, el rival negro de la derecha ha comenzado a recoger fichas en su bandeja. Los recuentos de pips muestran 52 a 7, el cubo de dobles en el centro muestra 2, la puntuación es 0-0/5.
Una mano en la fase de sacar fichas: la diferencia de pips (52 a 7) dice que la partida ya está decidida. El que los dados sean verificables no convierte tu pérdida en victoria — solo hace que la razón sea indiscutible.

Lo que este método no prueba

Para ser honesto: compromiso–revelación prueba que los dados no fueron cambiados después de la emisión del compromiso y que todos pueden recalcular los dados. No puedes saber por adelantado qué semilla secreta el servidor eligió antes de publicar el compromiso — pero eso no importa, porque tu semilla también entra en el cálculo, así que el servidor no puede ver tu contribución y elegir un resultado en función de ella. Eso es lo que el método afirma, ni más ni menos; no promete nada exagerado como "todo está probado".

También puedes medir tu suerte

La revisión después del partido calcula la suerte de cada tirada según la posición en la que realmente estabas en ese momento — así que "perdí contra los dados" es aquí un número que el juego mismo te produce, no una afirmación. Si quieres distinguir entre si tu mala suerte fue real o si fue tu juego el que te falló, primero puedes refrescar las reglas en cómo jugar backgammon, luego mejora tu estrategia en la guía de estrategia de backgammon. Si buscas otro rival de dos jugadores, la lista de juegos online de 2 jugadores es un buen punto de partida.

En resumen: tu sospecha es legítima, pero ahora tiene respuesta. Cuando desconfíes de una partida, revisa la clave sellada en el panel de equidad, verifica el cálculo en la página de Revisión después de que termine; si quieres, haz tu propio cálculo también. El dado deja de ser discutible, y lo único que queda para discutir es la calidad de tu juego.

Preguntas frecuentes

¿Son realmente injustos los dados de backgammon online?

En este tablero los dados se generan mediante el método compromiso–revelación: el servidor publica la huella SHA-256 de un número secreto antes del primer dado, revela la semilla secreta cuando termina el juego, y todos pueden recalcular cada tirada y compararla con la huella. El servidor no puede cambiar el resultado después de publicar el compromiso, porque la huella ya no coincidiría.

¿Cómo sé que los dados usan compromiso–revelación?

En el panel de equidad del tablero ves el compromiso (la huella) y la clave se marca como "sellada" mientras la semilla secreta aún no se ha revelado. Después de que termina el juego, la página de Revisión recalcula todos los dados y verifica; esta verificación funciona con una comprobación independiente escrita en el navegador, no usando código del servidor.

¿Puedo elegir mi propia semilla de dados?

Sí, entre partidas puedes establecer cualquier texto libre como tu semilla (client seed), hasta 40 caracteres. Si no estableces nada se genera una semilla aleatoria de 8 bytes; en cualquier caso tu semilla entra en el cálculo de cada dado.

¿El tema o color del tablero afecta los dados?

No. El código que calcula los dados nunca toma información del tablero o del tema, así que el aspecto visual que elijas no puede afectar de ninguna manera qué dados van a salir.

¿Puedo verificar las tiradas de partidas antiguas?

Sí, los juegos terminados se conservan con sus registros de dados revelados durante 400 días. Durante ese tiempo puedes abrir la página de Revisión de cualquier partida antigua y verificar cada tirada nuevamente.

¿Cómo sé si mi mala suerte fue real o si fue mi juego?

La revisión después de cada partida calcula la suerte de cada tirada según la posición donde realmente estabas en ese momento, no basándose en el resultado final — te da un número concreto para medir si los dados o tu jugabilidad fueron determinantes.

Backgammon

Artículos relacionados