Política Provably Fair
Provably Fair: Transparencia en Spin
En Spin, tu confianza es primero. Usamos un sistema Provably Fair para probar matemáticamente que cada resultado en nuestras cajas y juegos es auténticamente aleatorio y no manipulable.
Aquí tienes una explicación completa de cómo funciona para que puedas verificar tus resultados.
Fundamentos: Seed Pair y Nonce
Cada ronda (ej. abrir una caja) se basa en una combinación única:
1.Server Seed
Un valor aleatorio generado por Spin.
2.Client Seed
Un valor generado por tu navegador (puedes cambiarlo cuando quieras).
3.Nonce
Un contador que inicia en 0 y aumenta con cada ronda de juego.
Estos tres valores crean una semilla combinada usada para generar el resultado. Esto garantiza un resultado único para cada ronda.
Cómo se genera el resultado
El sistema sigue un proceso preciso:
1. Generación del Server Seed
Spin genera una cadena secreta Server Seed. Antes del juego, mostramos el hash SHA-256 – esto prueba que no podemos cambiarla después.
2. Creación del Client Seed
Tu navegador genera el Client Seed. Puedes actualizarlo en cualquier momento para controlar la entrada de generación.
3. Contador Nonce
Para cada ronda, el nonce aumenta en uno. Esto garantiza unicidad incluso con las mismas semillas.
Detalles Técnicos: De Semilla a Resultado
Cómo convertimos datos en un resultado:
1. Combinación de Seeds y Nonce
Server Seed, Client Seed y Nonce se combinan en una cadena.
const combinedSeed = `${clientSeed}:${serverSeed}:${nonce}`;2. Hashing
Aplicamos el algoritmo SHA-512 a la cadena, creando un hash largo. Este hash determina el resultado.
const hash = sha512(combinedSeed);3. Obtener el número de ticket
Del hash, obtenemos un número de ticket de 0 a 99,999,999.
Cada ítem en la caja se asigna a un rango numérico. Si tu ticket cae en el rango, recibes el ítem.
private getTicketNumber(hash: max = 1e8) {
// Take the first 8 characters of the hash
const subHash = hash.slice(0,8);
// Parse the hex substring to a number
const valueFromHash = parseInt(subHash, 16);
// Calculate a value between 0 and 1 by dividing by 2^32
const e = Math.pow(2,32);
const normalizedValue = valueFromHash / e;
// Using Math.floor ensures we get integers from 0 to max-1
return Math.floor(normalizedValue * max);
}Ronda de Ejemplo
1. Abres una caja de botín.
2. El sistema toma:
- Server Seed Oculto
- Tu Client Seed
- Nonce Actual
3. Combina y aplica hash.
4. Genera número de ticket.
5. Número determina premio.
6. Tras cambiar semilla, se revela para verificación.
Verifícalo tú mismo
Creemos en la transparencia radical. Puedes verificar cualquier resultado pasado.
Usa la herramienta de verificación CodePen e ingresa:
1. Server Seed (revelado)
2. Hashed Server Seed (visible antes de jugar)
3. Tu Client Seed
4. Nonce de ronda
Podrás reproducir el número de ticket y asegurar que coincide.
¿Por qué es justo?
1. Fijamos el Server Seed por adelantado (vía hash).
2. Tú controlas el Client Seed.
3. Nonce garantiza unicidad.
4. SHA-512 hace imposible la predicción.
5. Puedes auditar cada ronda.
El sistema hace imposible la manipulación. Lo que ves es azar verificable.