Transparencia
Nadie puede acomodar los números
Compromiso publicado antes de vender
SHA-256 de la semilla secreta del servidor. Se fijó antes de vender el primer boleto.
93ba02b33a851797f54d18d2e18a1be0deddd0de6033da323d043d80997b49afSemilla del servidor
Aún es secreta. Se publica aquí al cerrar la venta; mientras tanto, el compromiso garantiza que no puede cambiar.
Bitácora encadenada
- Renglones
- 11
- Última posición
- #11
- Último corte
- 2 de octubre de 2026 a las 2:00 a.m.
- Cadena íntegra
- Sí, verificada
Huella del último renglón
67f0531863b7403cdbd53b9127e631847668aca4d7e0e2b08cdbd48e3297f4e0Estado de la rifa
- Estado
- Venta abierta
- Boletos emitidos
- 2,000
- Asignados
- 18
- Disponibles
- 1,982
¿Cómo garantizamos que es justo?
1.Tu número lo escoge el azar, no una persona.
Cuando compras, nuestro sistema toma tus boletos al azar de los que quedan. Ninguna persona de la comunidad interviene ni puede ver “qué va a salir”.
2.Nos comprometimos antes de vender.
El día que abrió la venta publicamos un “sello” (la huella digital de un número secreto). Ese secreto es parte de la receta con la que se calcula cada número. Como el sello ya está publicado, no podemos cambiar la receta a medio camino. Al cerrar la venta publicamos el secreto para que cualquiera pueda rehacer las cuentas.
3.Tú también pones tu granito de azar.
Tu navegador genera una pequeña “semilla” que se mezcla con nuestra receta. Así, ni siquiera nosotros podemos saber tu número antes de que compres.
4.Todo queda anotado en un registro encadenado.
Cada compra se anota en una lista donde cada renglón lleva la huella del renglón anterior, como eslabones de una cadena. Si alguien cambiara, borrara o metiera un renglón, la cadena se rompería y se notaría.
5.El ganador lo decide la mecánica autorizada en el permiso.
El sorteo del premio se realiza con la mecánica indicada en las bases y en presencia de la autoridad. Nadie de la comunidad puede influir en ese resultado.
¿Quieres comprobarlo tú mismo?
- Busca tu folio en Verificar mi folio.
- Mira el tablero de números en Boletos.
- Si sabes programar, revisa la bitácora y el algoritmo en Transparencia y rehaz las cuentas.
Para curiosos: usamos SHA-256, HMAC-SHA256 y muestreo por rechazo; la especificación está en la página de transparencia.
Bloque técnico: el algoritmo
Antes de vender, el servidor generó una semilla secreta de 32 bytes con un generador criptográfico (CSPRNG) y publicó su compromiso sha256(semilla). En cada compra, para el boleto i se calcula HMAC-SHA256(semilla, "folio:semillaCliente:i:contador") y se leen bloques de 4 bytes como enteros sin signo; se aplica rejection sampling (se descartan valores que causarían sesgo de módulo) y el índice resultante (u mod m) apunta a la lista ORDENADA de números disponibles en ese instante; el elegido sale del pool antes de elegir el siguiente. Cada compra queda en una bitácora encadenada por hash (hash = sha256("v1|posición|tipo|folio|detalles canónicos|fecha ISO|hash anterior")). Al cerrar la rifa se revela la semilla y cualquiera puede recomputar cada asignación reconstruyendo los disponibles desde la bitácora y volviendo a correr el mismo algoritmo (src/lib/raffle/select-tickets.ts y src/lib/verify/recompute.ts).Resumen: la semilla del servidor se generó con un generador criptográfico (CSPRNG) y se publicó su SHA-256. Para cada boleto se calcula HMAC-SHA256(semilla, "folio:semillaCliente:i:contador"), se leen bloques de 4 bytes con muestreo por rechazo (sin sesgo de módulo) y el índice apunta a la lista ordenada de boletos disponibles en ese instante, sin reemplazo. Cada renglón de la bitácora incluye la huella del anterior. Nunca se usa Math.random().
