Ir al contenido
Ner HamaaravíRifa · Tu número es tu precio

Transparencia

Nadie puede acomodar los números

Publicamos un compromiso antes de vender, anotamos cada compra en una bitácora encadenada y, al cerrar, revelamos la semilla para que cualquiera pueda recomputar todas las asignaciones.

Compromiso publicado antes de vender

SHA-256 de la semilla secreta del servidor. Se fijó antes de vender el primer boleto.

93ba02b33a851797f54d18d2e18a1be0deddd0de6033da323d043d80997b49af

Semilla 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

67f0531863b7403cdbd53b9127e631847668aca4d7e0e2b08cdbd48e3297f4e0

Estado de la rifa

Estado
Venta abierta
Boletos emitidos
2,000
Asignados
18
Disponibles
1,982

¿Cómo garantizamos que es justo?

  1. 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. 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. 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. 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. 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?

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().