Anoche volví a revisar la documentación de Dusk, en particular las secciones sobre el algoritmo DS y cómo se seleccionan los provisioners para el consenso.
Comencé intentando plasmar las reglas de elegibilidad del stake. El stake de un provisioner, S, se considera elegible solo si la cantidad es al menos el mínimo (establecido en 1000 DUSK) y su antigüedad/duración se encuentra entre 0 y M. El proceso DS luego clasifica esos stakes elegibles mediante una puntuación que combina el tamaño del stake con una función determinista del hash del bloque anterior y la clave pública del provisioner. El provisioner con la puntuación más alta es el que puede proponer el siguiente bloque.
Leyendo más adelante, el flujo se volvió más claro: el provisioner seleccionado transmite un bloque candidato, un comité de otros provisioners ejecuta la validación y, si aparece una mayoría simple (½ + 1) de mensajes ValidBk, el bloque pasa a la ratificación. La ratificación, a su vez, requiere un umbral más fuerte ⅔ + 1 para que el bloque se considere finalizado y el nuevo conjunto de provisioners quede fijado. Los comités de atestación y votación se forman de la misma manera determinista, solo que con semillas diferentes.
Lo que todavía me parece no resuelto es qué tan sensible es toda la cadena al valor exacto de M y al umbral mínimo de 1000 DUSK. Si esos parámetros cambian, ¿la descentralización efectiva del conjunto de provisioners se altera de formas difíciles de ver desde fuera? ¿Y una vez que un bloque está atestado, qué margen de acción práctico existe si una auditoría posterior muestra que el ranking DS fue manipulado?
Me da curiosidad cómo otras personas que han profundizado en las mismas páginas leen los márgenes de seguridad en torno a esos umbrales de mayoría.
#dusk $DUSK @Dusk
Comencé intentando plasmar las reglas de elegibilidad del stake. El stake de un provisioner, S, se considera elegible solo si la cantidad es al menos el mínimo (establecido en 1000 DUSK) y su antigüedad/duración se encuentra entre 0 y M. El proceso DS luego clasifica esos stakes elegibles mediante una puntuación que combina el tamaño del stake con una función determinista del hash del bloque anterior y la clave pública del provisioner. El provisioner con la puntuación más alta es el que puede proponer el siguiente bloque.
Leyendo más adelante, el flujo se volvió más claro: el provisioner seleccionado transmite un bloque candidato, un comité de otros provisioners ejecuta la validación y, si aparece una mayoría simple (½ + 1) de mensajes ValidBk, el bloque pasa a la ratificación. La ratificación, a su vez, requiere un umbral más fuerte ⅔ + 1 para que el bloque se considere finalizado y el nuevo conjunto de provisioners quede fijado. Los comités de atestación y votación se forman de la misma manera determinista, solo que con semillas diferentes.
Lo que todavía me parece no resuelto es qué tan sensible es toda la cadena al valor exacto de M y al umbral mínimo de 1000 DUSK. Si esos parámetros cambian, ¿la descentralización efectiva del conjunto de provisioners se altera de formas difíciles de ver desde fuera? ¿Y una vez que un bloque está atestado, qué margen de acción práctico existe si una auditoría posterior muestra que el ranking DS fue manipulado?
Me da curiosidad cómo otras personas que han profundizado en las mismas páginas leen los márgenes de seguridad en torno a esos umbrales de mayoría.
#dusk $DUSK @Dusk
