De entre las noticias más llamativas de estos días en el círculo, probablemente la más impactante sea que se vació una wallet de hardware ColdCard. Un conmutador de compilación enterrado desde hace cinco años se desactivó en silencio, apagando el generador de números aleatorios del hardware; la semilla se degradó directamente a un pseudoaleatorio que casi puede predecirse, y se esfumaron más de cientos de millones de dólares en Bitcoin en una sola bolsa.

Después de leerlo, solo tengo una reflexión: una vez que la aleatoriedad puede calcularse con antelación, deja de ser aleatoria.

Esto me recuerda a un detalle en el que @Dusk se fija una y otra vez dentro del consenso: ¿cómo se elige a la siguiente persona que propondrá un bloque?

Es posible que preguntes: ¿qué tan difícil puede ser esto? Para que sea justo, el resultado aleatorio debe poder verificarse por todos; y para que sea seguro, nadie debería poder adivinarlo antes. Estas dos exigencias chocan entre sí: es un nudo.

Dusk utiliza un sorteo determinista, abreviado como DS, que busca satisfacer ambas cosas a la vez.

No monta ninguna fuente de aleatoriedad extravagante. #dusk consiste simplemente en poner en fila a los delegadores elegibles, recorrerlos uno por uno usando la “puntuación” de la ronda actual: quien tenga suficiente peso, gana un cupo. ¿De dónde sale la puntuación? Se calcula aplicando SHA3 a la semilla del bloque de la ronda anterior, más la ronda y el paso, todo en conjunto. El resultado es único y reproducible: cualquiera puede recalcularlo y comprobarlo por su cuenta.

Los detalles están en la “semilla”. En cada bloque nuevo, el proponente debe volver a firmar la semilla del bloque anterior con su propia firma, para generar la semilla de la siguiente ronda. Es como una máquina de lotería: las reglas son públicas y todos pueden verificarlas; pero a quién le toca en la próxima extracción, nadie puede saberlo de antemano.

$DUSK aquí son los boletos de la ponderación del sorteo: cuanto más pones en garantía, mayor es tu peso y mayor es la probabilidad de que te seleccionen; pero cada vez que te seleccionan, tu peso disminuye en 1, evitando que los grandes se queden con todo el comité.

Pienso que este diseño es ingenioso justo porque no entrega la “aleatoriedad” a una máquina de sorteos centralizada, sino que combina reglas públicas verificables con una semilla que no se puede predecir, soldando la equidad y la seguridad. Por supuesto, todo depende de que la semilla sea realmente impredecible y que las garantías estén realmente repartidas; eso habrá que confirmarlo con los datos posteriores. Este DUSK, el trabajo hay que hacerlo uno mismo: no te quedes solo con lo que te digo yo.