CSRAGE

Provably Fair CS2

Cada resultado es verificable criptográficamente. Ni los jugadores ni la casa pueden manipular el sorteo — y puedes demostrarlo tú mismo.

Cómo funciona

1

Compromiso

Antes de jugar, generamos un server seed aleatorio y te mostramos su SHA-256 hash. Así fijamos el compromiso: ya no podemos cambiarlo.

SHA256(server_seed) → a3f8c1d…
2

Jugar

Tu client seed y un nonce creciente se combinan con el server seed mediante HMAC-SHA256 para producir el resultado.

HMAC(server, client:nonce:0) → result
3

Verificar

Cuando rotas seeds, el server seed anterior queda revelado. Comprueba que su hash coincide con el compromiso original y reproduce el resultado tú mismo.

✓ Hash matches → outcome is authentic

Verificación de juegos

Cada apertura de caja usa HMAC-SHA256 para obtener un float aleatorio a partir del server seed (clave) y el mensaje .

Ese float se convierte en un ticket entre 1 y 100.000. Cada ítem de la caja ocupa un rango de tickets contiguo; todos suman exactamente 100.000. El ítem cuyo rango contiene tu ticket es el resultado.

verify-case.js
1const crypto = require('crypto');
2
3function verifyCaseRoll(serverSeed, clientSeed, nonce) {
4  const hmac = crypto.createHmac('sha256', serverSeed);
5  hmac.update(`${clientSeed}:${nonce}:0`);
6  const buf = hmac.digest();
7
8  const float =
9    buf[0] / 256 +
10    buf[1] / 65536 +
11    buf[2] / 16777216 +
12    buf[3] / 4294967296;
13
14  const ticket = Math.floor(float * 100000) + 1;
15  return { ticket, float };
16}
17
18// Verify the server seed commitment
19function verifyHash(serverSeed, expectedHash) {
20  const hash = crypto.createHash('sha256')
21    .update(serverSeed).digest('hex');
22  return hash === expectedHash;
23}
24
25// Each case item owns a ticket range.
26// All ranges sum to 100,000.
27// The item whose range contains your ticket wins.

Verificar un roll de caja

Tus seeds

Consulta tu par de seeds activo, cambia tu client seed o rota para revelar el server seed actual.

Historial de seeds

Pares de seeds anteriores con server seeds revelados. Úsalos para verificar cualquier partida previa.

About this page

¿La casa puede manipular resultados?

No. Antes de cada ronda publicamos un hash SHA-256 del server seed activo. El seed sigue secreto en juego pero el hash es fijo — cambiarlo para otro resultado daría otro hash detectado al rotar. Con tu client seed y el nonce por juego, cada roll queda comprometido de antemano y es reproducible — sin «reintentos» del servidor.

¿Qué es server seed, client seed y nonce?

Server seed: valor aleatorio largo del backend, secreto en uso; solo su hash SHA-256 es público. Client seed: tu valor — generado por defecto o elegido en Ajustes. Nonce: contador +1 por juego en la pareja de seeds activa. Juntos → HMAC-SHA256: mismas entradas = misma salida, reproducible byte a byte.

¿Por qué hay que rotar seeds para verificar?

La verificación exige el server seed en claro; revelarlo en partida permitiría predecir lo siguiente. La rotación retira el seed actual (revelado), compromete uno nuevo (nuevo hash) y reinicia el nonce a cero. Verificas todo lo jugado con el seed retirado; lo siguiente queda bajo el nuevo.

¿Puedo definir mi propio client seed, y debería?

Sí. Ajustes → Provably Fair o «Tus seeds» aquí: escribe lo que quieras y Rota. Cada resultado se mezcla con tu seed — la casa no pudo predecirlo. Vacío = aleatorio fuerte generado para ti. Ambos son Provably Fair; un seed propio da tranquilidad y facilita auditar con amigos.

¿Cómo roto mis seeds?

Ajustes → Provably Fair o panel «Tus seeds», «Rotar seeds». Revela el server seed actual para verificar partidas pasadas, nuevo server seed + hash, client seed elegido o aleatorio, nonce a cero. Sin cooldown.

¿Qué es el nonce y por qué importa?

Contador por ronda en la pareja de seeds activa — hace único cada juego aunque la pareja sea la misma. Nonce incorrecto en el verificador = resultado incorrecto. Usa siempre el nonce exacto de la ronda.

¿Cómo difiere la equidad en batallas de cajas?

Un server seed compartido por todo el lobby; cada plaza necesita un roll independiente en la misma caja. La entrada HMAC mezcla server seed compartido, nonce de ronda e ID de usuario de la plaza. Rolls únicos y verificables; server seed revelado al terminar para reproducir cualquier giro.

¿Cómo verifico una ronda de ruleta, mines, blackjack o caja?

Verificador aquí, juego correspondiente: server seed revelado (rota si hace falta), client seed en el momento de la ronda, nonce — más entrada específica (número de minas, ID de caja, ID de usuario de plaza en Batallas). Debe coincidir con pantalla; si no, guarda seeds y contacta soporte.

¿Y si pierdo mi client seed o no guardo nonces?

La pareja activa y el nonce de cada ronda liquidada se guardan — Ajustes → Provably Fair e historiales en juego. Rotar sin anotar: la pareja anterior sigue archivada para verificar sus rondas cuando quieras.

¿Provably Fair equivale a auditoría regulatoria?

No — es importante. Provably Fair garantiza que cada ronda viene de entradas comprometidas antes — sin elegir resultado después. No certifica por sí solo el margen a largo plazo, integridad de pagos ni cumplimiento legal. CSRAGE combina Provably Fair, controles internos y, si aplica, revisión de terceros — complementarios, no intercambiables.

¿Puedo programar mi propio verificador?

Sí. Algoritmos documentados aquí en JavaScript claro. SHA-256 para hash de compromiso, HMAC-SHA256 para el sorteo — bibliotecas estándar en cualquier lenguaje. Si tu script difiere de pantalla, guarda entradas y contáctanos para comparar implementaciones.

¿Jugar más cambia las probabilidades a mi favor o en contra?

No. Cada ronda depende solo de la pareja de seeds y el nonce de esa ronda — no del historial, nivel, racha ni saldo. Sesiones largas «se sienten» distintas porque la varianza se suaviza, no porque cambien las probabilidades. El verificador lo demuestra: reproduce una ronda aislada sin nada externo.