Juego justo
Ningún resultado sale de un dado que sólo ve el casino. Todo lo que jugás acá se puede recalcular y verificar con una calculadora: ni nosotros podemos cambiar un resultado después de tirarlo.
Cómo funciona
- El servidor elige una semilla secreta y te muestra su hash (SHA-256) antes de que juegues una sola ficha: así no la puede cambiar después de ver cómo te fue.
- Vos tenés tu propia semilla de cliente (te generamos una al azar, y la podés cambiar cuando quieras).
- Cada jugada usa un nonce (un contador que suma de a uno).
- El resultado sale de
HMAC-SHA256(semilla_servidor, "cliente:nonce:cursor"): se toman 4 bytes del hash para cada número al azar que necesita la jugada. - Cuando rotás tu semilla, la vieja queda revelada abajo: ahí podés recalcular cualquier jugada que hiciste con ella y comprobar dos cosas — que
sha256(semilla_servidor)da el hash que te mostramos antes de jugar, y que el resultado que salió es el que da la fórmula.
Ver el algoritmo exacto, para verificar vos mismo (Python)
import hashlib
import hmac
def flotantes(servidor: str, cliente: str, nonce: int, cantidad: int) -> list[float]:
"""Reproduce AleatorioHmac::float(): devuelve `cantidad` números en [0, 1)."""
salida: list[float] = []
cursor, bloque, offset = 0, b"", 0
for _ in range(cantidad):
if offset + 4 > 32 or not bloque:
mensaje = f"{cliente}:{nonce}:{cursor}".encode()
bloque = hmac.new(servidor.encode(), mensaje, hashlib.sha256).digest()
cursor += 1
offset = 0
b0, b1, b2, b3 = bloque[offset:offset + 4]
offset += 4
salida.append(b0 / 256 + b1 / 65536 + b2 / 16777216 + b3 / 4294967296)
return salida
def entero(flotante: float, minimo: int, maximo: int) -> int:
"""Reproduce AleatorioHmac::entero(): un entero en [minimo, maximo]."""
return minimo + int(flotante * (maximo - minimo + 1))
# 1) Verificar el hash publicado ANTES de jugar:
# hashlib.sha256(servidor.encode()).hexdigest() == servidor_hash
#
# 2) Con la semilla revelada, recalcular la jugada con el mismo nonce
# y comparar contra lo que se vio en pantalla.
Iniciá sesión para ver tu semilla activa y poder rotarla.