Algoritmo determinístico verificable

¿Cómo funciona la transparencia?

En Cuki Sorteos el resultado es reproducible: con la semilla publicada y la lista canónica de participantes, cualquier persona puede recomputar los ganadores en su computadora y confirmar que coinciden. Sin eso, "transparencia" es solo una palabra.

Cómo funciona, paso a paso

01 · Lista visible y congelada

Lista visible y congelada

La lista de participantes se ingresa antes del sorteo y se exporta exactamente como llegó al motor. Una vez ejecutado, nadie puede agregarla, quitarla ni reordenarla sin que la verificación falle.

02 · Semilla pública

Semilla pública

Cada sorteo usa una semilla hexadecimal de 64 caracteres (256 bits). La podés generar el momento del sorteo o publicarla antes para comprometerla. Sin semilla no hay resultado.

03 · Algoritmo determinístico

Algoritmo determinístico

Usamos mulberry32 como generador pseudoaleatorio sembrado por la semilla, y Fisher-Yates para mezclar. La misma semilla con la misma lista produce siempre el mismo orden, byte por byte.

04 · Ejecución en tu dispositivo

Ejecución en tu dispositivo

Todo el sorteo corre en tu navegador, sin enviar la lista a ningún servidor. Aun así, el backend ofrece un endpoint público que recomputa el resultado para que puedas hacer cross-check.

05 · Evidencia descargable

Evidencia descargable

Al final del sorteo podés descargar un comprobante de ganadores con semilla y link verificable. En la evidencia pública también queda disponible la lista canónica para recomputar el resultado.

Sin manipulación posible
El resultado se calcula al apretar 'Iniciar sorteo'. La animación que ves después es decorativa: ya no puede cambiar el ganador. Si alguien sospecha del resultado, repite el cálculo con la semilla y la lista.

Sorteo aniversario

1.834 participantes · 3 ganadores

Semilla pública

9f2c46be7a01d3585ee1b02c47a9d6f31c8e5a2470b9d1e6f3a8c05b7d92e414
  1. 1º@tomi.128
  2. 2º@mati.765
  3. 3º@agus.249
Se calcula acá, en tu navegador.

Lo que nos hace distintos

¿Fue limpio? Comprobalo vos.

Cada sorteo sale de una semilla pública y de la lista exacta de participantes. Con esos dos datos, cualquiera puede repetir el sorteo y obtener los mismos ganadores. No hace falta confiar en nadie.

Preguntas frecuentes

¿Por qué la transparencia depende del algoritmo determinístico?

Porque si el sorteo usara Math.random() puro, nadie podría replicarlo después. Con mulberry32 + semilla pública, cualquier persona en cualquier lenguaje obtiene los mismos ganadores. Eso es la diferencia entre 'parece justo' y 'es verificable'.

¿Qué pasa si recargo la página antes de terminar?

Se pierde el sorteo en curso. Si querés conservar el resultado, descargá el comprobante de ganadores al final y guardá la semilla verificable.

¿Cómo sé que el código del navegador no me miente?

El snippet de verificación de abajo es el mismo algoritmo, en texto plano, sin minificar. Lo podés pegar en Node, en una consola del navegador o en cualquier intérprete de JS y obtener exactamente los mismos ganadores. También podés mandar los datos al endpoint /api/verify del backend para una segunda opinión independiente.

¿La animación afecta el resultado?

No. El motor calcula seed, fullOrder y winners en milisegundos cuando arranca el sorteo. La animación sirve para mostrar el reveal con drama, pero no toca el resultado.

¿Por qué la semilla son 64 caracteres hexadecimales?

Porque corresponde a 256 bits de entropía, generados con crypto.getRandomValues. Es suficiente para que sea computacionalmente imposible buscar una semilla que produzca un ganador específico.

¿Listo para hacer tu sorteo?

Ir al sorteo