Como Funciona
Todo lo que necesitas saber sobre la imparcialidad en Morra.
El Juego
Morra es uno de los juegos mas antiguos de la historia humana, con origenes en la antigua Roma y China.
Cada ronda, ambos jugadores simultaneamente:
- Eligen un numero del 0 al 5
- Adivinan la suma de ambos numeros (0 a 10)
Si tu apuesta es igual a la suma real, ganas la ronda. Si ambos aciertan (o ambos fallan), es empate.
Garantizando la Imparcialidad
Pruebalo Tu Mismo
Mira que pasa cuando alguien intenta manipular los valores revelados de la IA. Cambia el numero de abajo y observa como el hash no coincide:
Try It: Tamper Detection Demo
Change the AI's revealed number below to see how tampering is instantly detected.
Original Commitment
Reveal (try changing!)
¿Y si la IA hace trampas?
¿Puede la IA ver mi numero antes de elegir?
No. La IA compromete su eleccion (mediante un hash criptografico) antes de que juegues. Tu navegador verifica el momento. La IA necesitaria romper SHA-256 (computacionalmente imposible) para cambiar su eleccion despues de ver la tuya.
¿Puede la IA generar multiples opciones y elegir la ganadora?
No. Cada compromiso esta encadenado al anterior (como una blockchain). Tu navegador verifica esta cadena. La IA tendria que predecir tu jugada antes de comprometerse, que es exactamente de lo que trata el juego.
¿Puede la IA negarse a revelar cuando pierde?
Hay un tiempo limite de 30 segundos. Si la IA no revela a tiempo, tu ganas automaticamente esa ronda. Esto lo aplica tu navegador, no el servidor.
¿Puedo hacer ingenieria inversa a la IA para ganar siempre?
Aunque conozcas el algoritmo de prediccion de la IA, cada prediccion se mezcla con aleatoriedad criptografica (30% de inyeccion de entropia). Esta aleatoriedad se compromete y revela, demostrando que la IA realmente la uso. Puedes verificar que la IA no es completamente determinista, pero no puedes predecir el componente aleatorio.
¿Esto se ejecuta en el servidor o en mi navegador?
La IA se ejecuta en el servidor. Pero toda la verificacion se ejecuta en tu navegador. El servidor te envia el sobre sellado (hash), tu juegas, luego el servidor abre el sobre. Tu navegador comprueba las matematicas. Cero confianza en el servidor requerida.
Para Desarrolladores: Especificacion Completa del Protocolo
Formato de Compromiso
payload = session_id|round_num(8)|chain_prev|ai_number(2)|ai_guess(2)|entropy_seed|nonce commitment = SHA-256(payload).hex()
Cadena de Hashes
El chain_prev de cada ronda = hash del compromiso de la ronda anterior. La primera ronda usa "genesis".
Prediccion con Mezcla de Entropia
mixed = (1 - 0.3) * bayesian_probs + 0.3 * uniform(6) prediction = sample(mixed, seed = SHA-256(entropy_seed))
Seleccion de Numero de la IA
CSPRNG uniforme via crypto.randomInt(6). Sin sesgo.
Comprobaciones de Verificacion
- Recalcular que el hash SHA-256 coincide con el compromiso
- Numero de la IA en rango [0, 5]
- Apuesta de la IA en rango [0, 10]
- Chain prev coincide con el compromiso anterior
- Numero de ronda coincide con el esperado
El codigo fuente del verificador es abierto y se ejecuta completamente en el lado del cliente.
La implementacion de referencia en Python esta en game_crypto.py.