Provably fair explicado: cómo verificar una apuesta en un casino
La respuesta corta
Provably fair (“demostrablemente justo”) es un sistema criptográfico de compromiso y revelación. Antes de que apuestes, el casino te muestra un hash SHA-256 de una semilla secreta del servidor; luego cada resultado se calcula a partir de esa semilla del servidor, una semilla del cliente que puedes elegir tú y un nonce (un contador de apuestas). Cuando se revela la semilla, puedes recalcular cada resultado por tu cuenta y confirmar que el casino no pudo cambiar el resultado después de tu apuesta.
Demuestra que los resultados individuales no fueron manipulados. No reduce la ventaja de la casa, y solo se aplica a los juegos propios del casino.
¿Por qué existe provably fair?
En un casino en línea tradicional confías en un generador de números aleatorios (RNG) que no puedes ver, más un certificado de un laboratorio de pruebas. Los casinos nacidos en el mundo cripto sumaron una segunda capa: una forma de que el jugador compruebe cada resultado con nada más que una función hash. La idea viene de una herramienta criptográfica estándar llamada esquema de compromiso, que permite a una parte comprometerse con un valor manteniéndolo oculto y revelarlo después. Un buen compromiso es “ocultante” (no puedes deducir el valor a partir del compromiso) y “vinculante” (quien se comprometió no puede cambiarlo después por otro valor).
Los tres ingredientes
| Ingrediente | Quién lo controla | Qué hace |
|---|---|---|
| Semilla del servidor | El casino | Valor aleatorio secreto. Solo ves su hash SHA-256 hasta que la cambias |
| Semilla del cliente | Tú (o un valor aleatorio por defecto) | Se mezcla en cada resultado para que el casino no pueda elegir de antemano tus resultados |
| Nonce | Un contador | Sube de a uno con cada apuesta sobre el mismo par de semillas, así cada apuesta recibe un resultado nuevo |
El hash de la semilla del servidor es el compromiso. Como SHA-256 es una función de un solo sentido, no puedes ir hacia atrás del hash a la semilla, y el casino no puede encontrar otra semilla que produzca el mismo hash. Así que, una vez que viste el hash, la semilla del servidor queda fijada.
Cómo se genera un resultado
La receta exacta cambia de un casino a otro, así que lee siempre la página de equidad del sitio que uses. Un patrón común es este:
- El casino calcula
HMAC-SHA256(key = server seed, message = client seed + ":" + nonce). - El resultado es una cadena hexadecimal de 64 caracteres.
- El casino toma una parte fija de esa cadena (por ejemplo los primeros bytes), la convierte en un número y la escala al juego. En un juego de dados eso podría ser un número de 0 a 99.99. En un juego de cartas, fragmentos sucesivos se asignan a cartas.
HMAC es una construcción estándar que combina una función hash con una clave secreta. HMAC-SHA256 simplemente significa HMAC usando SHA-256. Está disponible en todos los lenguajes de programación importantes.
Cómo verificar una apuesta tú mismo, paso a paso
- Antes de jugar, abre la configuración de equidad o de semillas y anota el hash de la semilla del servidor.
- Elige tu propia semilla del cliente. Escribe cualquier cosa aleatoria. Esto importa: si solo usas una semilla generada por el casino, estás confiando en que el casino la eligió de forma justa.
- Juega y anota el nonce de cualquier apuesta que quieras revisar (el historial de apuestas suele mostrarlo).
- Cambia el par de semillas. El casino ahora revela la semilla del servidor anterior en texto plano y muestra un hash nuevo para la siguiente ronda.
- Comprueba el compromiso. Calcula el hash SHA-256 de la semilla revelada con cualquier herramienta confiable. El resultado debe coincidir exactamente con el hash que anotaste en el paso 1. Si no coincide, deja de jugar ahí.
- Recalcula el resultado. Ejecuta el HMAC con la semilla del servidor revelada, tu semilla del cliente y el nonce, y luego aplica la fórmula de conversión documentada por el casino. Deberías obtener la misma tirada, el mismo punto de crash o la misma carta que en tu historial.
Aquí tienes un ejemplo mínimo en Python para los pasos 5 y 6. Cambia los valores por los tuyos y usa la regla de conversión del casino:
import hashlib, hmac
server_seed = "revealed-server-seed"
client_seed = "my-client-seed"
nonce = 42
# Paso 5: ¿la semilla revelada coincide con el hash que viste antes de jugar?
print(hashlib.sha256(server_seed.encode()).hexdigest())
# Paso 6: el resultado bruto de esta apuesta
digest = hmac.new(server_seed.encode(), f"{client_seed}:{nonce}".encode(), "sha256").hexdigest()
print(digest)
# Luego aplica la fórmula publicada por el casino para convertir el digest en un resultado del juego.
Muchos casinos también ofrecen un verificador propio. Es cómodo, pero para una comprobación real usa una herramienta independiente o tu propio código, porque un verificador alojado por el casino sigue siendo el casino.
Lo que provably fair no te dice
Provably fair es útil, pero cubre menos de lo que sugiere el marketing.
- Solo cubre los juegos propios. Las tragamonedas, las mesas en vivo y la mayoría de los otros juegos vienen de estudios externos que usan sus propios RNG. Esos juegos no son provably fair en este sentido, aunque el sitio anuncie provably fair.
- No cambia la ventaja de la casa. Un juego de dados con una ventaja del 1% sigue siendo un juego con 1% de ventaja. La verificación muestra que el casino no hizo trampa en una tirada. No hace que el juego te favorezca.
- No revisa la fórmula de conversión por ti. Si la fórmula publicada no es clara o la tabla de pagos es peor que la anunciada, la comprobación del hash igual pasa. Lee también las reglas del juego y su tabla de pagos.
- No garantiza el pago. Un juego de dados perfectamente justo no sirve de nada si el casino no procesa tu retiro. La licencia, los términos y el historial de quejas siguen importando (lee cómo elegir un casino cripto).
- Solo funciona si de verdad lo compruebas. La protección viene de la posibilidad de verificar. Una comprobación de muestra de vez en cuando, sobre todo después de una sesión que te pareció rara, alcanza para la mayoría de los jugadores.
Señales de alerta en una página de equidad
- No hay forma de elegir tu propia semilla del cliente.
- No se muestra el hash de la semilla del servidor antes de apostar.
- La semilla del servidor nunca se revela, o solo se revela si la pides al soporte.
- No hay una fórmula documentada para convertir el hash en un resultado.
- El verificador solo funciona en el sitio del propio casino.
Cualquiera de estas significa que el sistema no puede cumplir su función. En cada reseña anotamos cómo lo maneja el casino, como explicamos en nuestra página de metodología.
¿Provably fair significa que voy a ganar más?
No. A lo largo de muchas apuestas, la ventaja de la casa decide el resultado esperado, sea provably fair o no. Si quieres comparar juegos, compara la ventaja de la casa o el retorno al jugador (RTP), y si tomas un bono, haz las cuentas con nuestra guía de requisitos de apuesta.
Una nota sobre el juego responsable
Los juegos justos también cuestan dinero con el tiempo. El juego es solo para mayores de 18 años (18+). Fija límites de depósito y de pérdida antes de jugar, y visita nuestra página de juego responsable si deja de ser divertido. Gambling Therapy ofrece apoyo gratuito en español.
Fuentes
- Esquema de compromiso (definición, ocultante y vinculante): https://en.wikipedia.org/wiki/Commitment_scheme
- HMAC (definición y nombre HMAC-SHA256): https://en.wikipedia.org/wiki/HMAC
- NIST FIPS 180-4, Secure Hash Standard (SHA-256): https://csrc.nist.gov/pubs/fips/180-4/upd1/final
- Documentación de Python, módulo hmac: https://docs.python.org/3/library/hmac.html
- Wizard of Odds, definición de ventaja de la casa: https://wizardofodds.com/gambling/house-edge/