Comprueba que un sorteo no está amañado.
No se requiere confianza ciega: puedes recalcular tú mismo cualquier sorteo de DrawSeal, en tu navegador, a partir de datos públicos.
Por qué este sorteo es fiable
Cada sorteo sigue la misma cronología verificable. Así es como ocurre, cada vez, en este orden.
- Antes de abrir cada sorteo, extraemos una semilla secreta y publicamos su huella, anunciando qué fuente pública de azar se utilizará. Quedamos comprometidos sin poder prever nada.
- Al cerrar las inscripciones, la lista de participantes queda fijada y su huella publicada. A partir de ahí nadie puede añadir ni retirar a nadie.
- Esa huella se envía de inmediato a los calendarios de OpenTimestamps, que la anclan en la blockchain de Bitcoin — un servicio independiente, fuera de nuestro control. Ya no podemos pretender haberla fijado en otro momento.
- Veinticuatro horas después, el azar se revela públicamente, producido por una red internacional independiente que nadie controla. El ganador se deriva de un cálculo que cualquiera puede rehacer.
En ningún momento tuvimos a la vez el poder de cambiar algo y el conocimiento de lo que ese cambio provocaría.
Las 3 pruebas que puedes controlar
El compromiso se publicó antes del sorteo
Una huella
sha256de la semilla y un número de ronda drand se publican antes del sorteo. Por tanto, el organizador no puede elegir la semilla tras haber visto a los participantes.El azar proviene de una fuente pública y firmada
DrawSeal utiliza drand, un faro de azar público cuyo valor está firmado en cada caso (BLS). La página de verificación controla esta firma.
El ganador se recalcula de forma idéntica
Con la semilla revelada + el azar de drand + la lista (seudónima) de participantes, tu navegador reproduce el sorteo. Si el ganador mostrado difiere, el fraude es visible.
Ningún dato personal (correo) se expone jamás: los participantes aparecen bajo un identificador seudónimo.
Verifica tú mismo, sin confiar en nosotros
- Antes del sorteo, publicamos un candado cerrado (una huella) y anunciamos que usaremos un número generado por una red pública independiente, en un instante preciso del futuro. Todavía no podemos abrirlo, pero ya está ahí, fijado.
- Después del sorteo, revelamos la llave que abre ese candado. Cualquiera puede comprobar que esa llave corresponde exactamente al candado publicado antes: es imposible que la hayamos cambiado tras ver quién participaba.
- El número aleatorio no viene de nosotros: lo proporciona drand, una red pública que nadie controla. Puedes ir a buscarlo tú mismo en un sitio que no sea el nuestro, para confirmar que no nos lo hemos inventado.
- Con la llave + ese número público, cualquiera puede rehacer exactamente el mismo cálculo que nosotros y obtener el mismo ganador: no tiene que creernos, puede comprobarlo.
Detalles técnicos (para desarrolladores / auditoría)
- Datos públicos. Servidos en JSON, sin autenticación, en la dirección
/api/public/giveaways/<identifiant-du-giveaway>/verification: huella de la semilla (serverSeedHash), ronda drand seleccionada y, después del sorteo, la semilla revelada, el beacon drand y el pool de participantes (identificadores seudónimos) con los ganadores anunciados. - Compromiso.
sha256(semilla) === serverSeedHash, publicado antes del sorteo. - Azar. Firma BLS del beacon drand verificada con la clave pública de la red (función
verifyBeacon). Comprobación independiente: consultar directamentehttps://api.drand.sh/52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971/public/<round>y compararrandomnesscon la del bundle. - Ganador del puesto r.
finalHash = sha256(semilla | drand | r | huella_del_pool), y luegoobjetivo = finalHash mod Σpesosdesigna el número de boleto ganador en el pool restante (puestos anteriores retirados).
Algoritmo completo publicado en el paquete de código abierto @drawseal/shared (verifyDraw, verifyBeacon, computeWinners) — reimplementable en cualquier lenguaje a partir únicamente de los datos públicos anteriores.