Compromiso
Antes de jugar, el servidor publica una huella SHA-256 de su semilla oculta.
JUGADORES EN LÍNEA
Roat Pkz se compromete con una entrada oculta del servidor antes de jugar, la revela después y publica implementaciones deterministas de los verificadores para que el resultado registrado pueda reproducirse de forma independiente.
Cada fase conserva las pruebas necesarias para auditar el resultado final.
Antes de jugar, el servidor publica una huella SHA-256 de su semilla oculta.
La apuesta y las semillas controladas por el jugador se fijan antes de generar el resultado.
Después de la sesión o ronda, se revela la semilla original del servidor para que pueda verificarse de forma independiente.
El verificador correspondiente vuelve a calcular el resultado determinista a partir de las entradas registradas.
Todos los juegos utilizan SHA-256, pero el orden exacto de las entradas, las reglas de los contadores y la conversión del resultado los define el verificador de cada juego. Utiliza siempre la implementación correspondiente.
Un compromiso coincidente confirma que la semilla revelada no fue sustituida. Una reproducción coincidente confirma que las entradas reveladas generan el resultado registrado.
committedHash = SHA-256(serverSeed)
assert SHA-256(revealedSeed)
== committedHash
gameInput = gameSpecificMaterial(...)
outcome = map(SHA-256(gameInput), rules)
Cada verificador es una herramienta autónoma para el navegador que puede guardarse para revisarla sin conexión.
ProvablyFairBlackjackclientSeed · serverSeed · nonce
hash = SHA256(clientSeed + ":" + serverSeed + ":" + nonce + ":" + counter);
j = unsigned64(hash[0..7]) % (i + 1); swap(deck[i], deck[j]);
ProvablyFairDiceclientSeed · serverSeed · nonce
hash = SHA256(clientSeed + ":" + serverSeed + ":" + nonce);
roll = (unsigned32(hash[0..3]) % 10_001) / 100.0;
ProvablyFairMinesclientSeed · serverSeed · nonce · mineCount
hash = SHA256(clientSeed + ":" + serverSeed + ":" + nonce + ":" + counter++);
index = unsigned64(hash[0..7]) % remaining;
mine = bag[index]; bag[index] = bag[--remaining];
ProvablyFairFlowerPokerplayer1Seed · player2Seed · serverSeed
hash = SHA256(player1Seed + ":" + player2Seed + ":" + serverSeed + ":" + index);
value = unsigned64(hash[0..7]) & 0x7FFF_FFFF_FFFF_FFFF;
roll = (value % 500) + 1; flower = roll == 1 ? BLACK : roll == 2 ? WHITE : common[(roll - 3) % 7];
ProvablyFairBoxingplayer1Seed · player2Seed · serverSeed · hit counter
hash = SHA256(player1Seed + ":" + player2Seed + ":" + serverSeed + ":" + hitNo);
hit = unsigned64(hash[0..7]) % 17;
Copia los valores exactamente como aparecen en el juego. Las semillas distinguen entre mayúsculas y minúsculas.
Selecciona el mismo juego e introduce todas las semillas, nonces, contadores o parámetros necesarios.
Genera el resultado y compara la salida completa con el resultado registrado de la partida.
No. Antes de jugar, Roat Pkz se compromete con una semilla oculta del servidor mediante la publicación de su hash SHA-256. Después, la semilla se revela y el verificador publicado puede reproducir el resultado a partir de las entradas registradas. Una semilla sustituida o un resultado alterado producirían una discrepancia.
Sí. Las implementaciones de apuestas verificablemente justas y los verificadores para el navegador están publicados en GitHub bajo la licencia MIT. Esto permite que cualquier persona examine el manejo exacto de las semillas, el hashing y la lógica que convierte cada resultado, reproduzca de forma independiente los resultados registrados y audite el funcionamiento de cada juego compatible.
Confirma que la semilla revelada del servidor coincide con el compromiso anterior y que las entradas publicadas reproducen el resultado registrado mediante el algoritmo publicado de ese juego.
Publicar antes de tiempo la semilla original del servidor revelaría material secreto de entrada. Su hash SHA-256 compromete al servidor con esa semilla sin exponerla hasta que finaliza la partida.
Un nonce o contador proporciona a cada resultado una entrada determinista distinta mientras sigue activo el mismo par de semillas. Utiliza el valor exacto registrado para el resultado que verificas.
Sí. Utiliza el control de semilla de la interfaz de apuestas antes de realizar tu apuesta. La entrada controlada por el jugador impide que el servidor elija por sí solo todas las entradas.
No. La semilla del servidor y, cuando corresponda, el nonce o contador también forman parte de la entrada. Para reproducir un resultado debe coincidir el conjunto completo de entradas.
No modifiques los valores registrados. Guarda la semilla del cliente o las semillas de los jugadores, la semilla revelada del servidor, el nonce o contador, los datos de la apuesta y el resultado observado; después envía el registro completo a soporte.