Mecánica
drand: por qué el azar de su sorteo no viene de nosotros
Un sorteo que sus participantes recalculan ellos mismos
Semilla publicada antes del sorteo, aleatoriedad pública drand, vídeo compartible. Gratis para los participantes.
Crear una cuentaVerificar un sorteo existenteA la pregunta «¿de dónde viene el azar?», la mayoría de herramientas responde «de nuestro generador». Es una respuesta que pide confianza, y se la pide a la persona peor situada para concederla: el participante que ha perdido.
En DrawSeal la respuesta es distinta: el azar no viene de nosotros.
El problema de un azar casero
Un generador interno, por excelente que sea, comparte un defecto con todos los demás: quien lo ejecuta decide cuándo ejecutarlo. Puede lanzarlo, mirar el resultado y repetir. El generador no guarda ningún rastro del número de llamadas.
No es una debilidad matemática, es una debilidad de posición. Ninguna calidad del generador la corrige, porque el problema no es el valor producido sino la autoridad de quien lo produce.
La única salida consiste en tomar el azar en otra parte, de alguien que no sabe para qué sirve.
Qué es drand
drand es una red de balizas aleatorias públicas. Organizaciones independientes producen conjuntamente, a intervalos regulares, un valor aleatorio que nadie controla en solitario. Cada valor lleva un número de ronda y una firma que cualquiera puede verificar contra la clave pública de la red.
Tres propiedades lo convierten en lo que necesitamos:
- público: el valor es legible por todos, en el mismo momento;
- imprevisible: nadie conoce el valor de la ronda 5 000 000 antes de que ocurra;
- verificable: la firma prueba que el valor procede efectivamente de la red y no ha sido inventado.
Cómo lo usamos
Al programar el sorteo, DrawSeal anuncia qué ronda se empleará: un número futuro, elegido a partir de la hora del sorteo. Es un compromiso, igual que la huella de la semilla.
Anunciar la ronda por adelantado cierra una puerta precisa. Sin ello, un organizador podría esperar, comparar varios valores sucesivos y quedarse con el que designa al ganador conveniente. Al nombrar la ronda, se prohíbe esa elección.
A la hora prevista, el valor aparece. Se combina con la semilla revelada y la lista sellada, y se calcula el ganador. Tres entradas, una sola salida posible.
El invariante de orden, en dos enteros
Lo que da fuerza al dispositivo es una comparación de números, verificable por cualquiera:
`rondaDelSello < rondaDelSorteo`
La lista se selló durante una ventana temporal anterior a la que produjo el azar empleado. Dicho de otro modo, cuando el conjunto quedó congelado, el azar no era conocible; ni siquiera por nosotros, que teníamos la semilla y la base de datos.
No es una promesa. Es un `<` entre dos enteros publicados.
Lo que cambia para un participante
Ya no tiene que creernos en dos puntos. Puede constatar que el valor empleado es el de la ronda anunciada, y que esa ronda es posterior al sellado de la lista. La firma de la red le garantiza lo primero; la comparación de los dos números le da lo segundo.
Queda un tercer punto —la lista misma— y de eso se ocupa el sello de Merkle.
Lo que hay que recordar
Un generador interno plantea un problema de posición, no de matemáticas: quien lo ejecuta elige cuándo. DrawSeal toma por tanto su azar de drand, una red pública cuyos valores están firmados, son imprevisibles y legibles por todos. La ronda empleada se anuncia por adelantado y es posterior al sellado de la lista, algo que se verifica comparando dos enteros publicados.
FAQ
¿Qué ocurre si drand no está disponible a la hora del sorteo?
El sorteo espera el valor: no recurre a una fuente de reserva, lo que equivaldría a emplear un azar que nadie ha anunciado. La indisponibilidad de drand genera una alerta de explotación, y el sorteo se ejecuta en cuanto el valor está disponible.
¿Por qué no usar la cotización de una acción o un sorteo de lotería?
Son fuentes públicas, lo cual ya es algo, pero no están firmadas ni diseñadas para este uso. drand aporta además una prueba criptográfica de origen: se verifica que el valor viene de la red, no solo que se mostró en alguna parte.
¿Debe un participante entender drand para verificar?
No. El verificador recupera el valor de la ronda, comprueba su firma y rehace el cálculo. Entender el funcionamiento interno de la red solo es útil a quien quiera auditar el propio verificador, lo cual es posible y es el objetivo.
¿No bastaría con la semilla?
No, y es donde muchos dispositivos se detienen demasiado pronto. Una semilla comprometida prohíbe cambiarla, pero viene de nosotros. Hace falta una segunda entrada que no controlemos; de lo contrario, todo el azar sigue siendo de origen interno.