🔒 Un reparto que puedes comprobar

Pokerni: fichas sin valor monetario, no se compran, no se convierten ni se transfieren; adversarios IA señalados con una insignia. Como la casa pone los adversarios, te debemos una transparencia total sobre el reparto.

En cinco frases

  1. Antes de cada mano, el servidor baraja las cartas a partir de un número secreto, la semilla.
  2. Antes de repartir la primera carta, te envía la huella de esa semilla: un sello que fija toda la baraja sin revelar nada.
  3. Durante la mano, nadie puede cambiar las cartas, ni siquiera nosotros: el sello ya está en tus manos.
  4. Cuando termina la mano, el servidor revela la semilla.
  5. Entonces puedes comprobar aquí mismo, en tu navegador, que el sello publicado corresponde a la semilla revelada.
9f3a 7c 4e … e1 1. Antes de la mano huella publicada 4711 0938 … 271 2. Después de la mano semilla revelada 9f3a 7c 4e … e1 ✓ 3. Tú compruebas huella = SHA-256(semilla)

Comprobar mi última mano

El cálculo se hace por completo en tu navegador; no se envía nada al servidor. Este navegador guarda la huella recibida antes de la mano y la semilla recibida después; si has iniciado sesión, también se consulta tu historial. También puedes pegar los dos valores tú mismo: en la mesa, la huella aparece al pasar el cursor sobre la insignia «Reparto verificable».

Lo que demuestra esta comprobación: que la huella publicada antes de la primera carta es la de la semilla revelada después de la última. La baraja estaba fijada antes de que vieras una sola carta, y nadie pudo cambiarla durante la mano.

Lo que no demuestra: el orden exacto de las 52 cartas obtenido a partir de la semilla. Esa mezcla usa el generador de NumPy, que el navegador no puede reproducir; el script de Python de la versión técnica la reconstruye carta por carta.

Transparencia de la IA

Los adversarios IA llevan siempre la insignia IA en su asiento, con su nivel. Una IA recibe exactamente la misma información que un jugador humano sentado en su lugar: sus dos cartas, las cartas comunitarias y las jugadas públicas; nunca las cartas de los demás ni las cartas por venir. El código del reparto es verificable, como se explica arriba. El coach es un sistema automatizado: sus consejos los calcula un programa, nunca los da una persona, solo a partir de tus cartas y de las jugadas públicas.

Versión técnica

Cómo se barajan las cartas

Antes de cada mano, el servidor genera una semilla de 63 bits con el generador criptográfico del sistema (secrets.randbits(63) en Python, imprevisible, también para nosotros). Esa semilla alimenta una permutación determinista de las 52 cartas (numpy.random.default_rng(semilla).permutation(52)). Las dos cartas de cada jugador y luego las 5 cartas comunitarias se reparten en el orden de la baraja, sin quemar cartas.

Compromiso antes, revelación después (commit-reveal)

El servidor no puede cambiar las cartas durante la mano, y lo demuestra:

1. Antes de la mano, cada mensaje de estado contiene un compromiso: commit = SHA-256("selfpoker:" + semilla). La huella fija la baraja completa sin revelar nada.

2. Después de la mano, el mensaje final (hand_end) revela la semilla. Cualquiera puede entonces comprobar que la huella coincide y reconstruir la baraja entera, incluidas las cartas no repartidas.

Compruébalo tú mismo

import hashlib
import numpy as np

graine = 1234567890123456789   # campo "fairplay.seed" del hand_end
commit = "..."                  # campo "commit" de los mensajes de estado

assert hashlib.sha256(f"selfpoker:{graine}".encode()).hexdigest() == commit
paquet = list(np.random.default_rng(graine).permutation(52))
# n jugadores: cartas 0..2n-1 = manos (2 por jugador), 2n..2n+4 = cartas comunitarias
# rango = carta // 4 (0=2 … 12=as), palo = carta % 4 (♣♦♥♠)

Cada mano jugada se archiva con su semilla: el historial completo se puede reproducir de forma idéntica.

¿Preguntas? El código del servidor se puede inspeccionar en la máquina que lo aloja: es un sitio privado, entre gente de confianza.

Música de ambiente: Jason Shaw, audionautix.com, licencia Creative Commons BY 4.0 (« Big Swing Band », « Closer To Jazz », « Dirt Road Traveler », « Nice And Easy », « Acoustic Rock », « Feel Good Rock »).

← Volver a las mesas