¿Cómo se hacen las propuestas de bloque en Casper?

Una publicación de blog dice esto sobre las propuestas de bloque en Casper:

Se utiliza un generador de números aleatorios al estilo NXT para determinar quién puede generar un bloque en cada altura; esencialmente, esto implica tomar a los proponentes de bloques faltantes como una fuente de entropía.

La creación de bloques es un proceso que tiene lugar independientemente de todo lo demás: los validadores recopilan transacciones y, cuando llega el momento de crear un bloque, lo producen, lo firman y lo envían a la red.*

¿Cuántos de los (hasta 256) validadores tienen derecho a hacer una propuesta de bloque a una altura determinada?

Si mi entendimiento es correcto, durante la propuesta de bloque, puede haber bloques paralelos que compiten en la altura actual porque el proceso de consenso por apuesta aún no ha convergido por completo. ¿Puede un validador colocar su propuesta de bloque encima de cualquiera de estos bloques de nivel superior? Al hacerlo, ¿podría elegir uno o varios de los bloques de nivel superior restantes como tío(s)?

Respuestas (1)

Hay precisamente un validador con derecho a crear un bloque a cualquier altura dada, elegido al azar (pero de forma determinista) entre los validadores, ponderado por sus apuestas. Si ese validador no lo hace, o su bloque es rechazado por el resto de la red, entonces solo hay un "agujero" en la cadena donde habría estado ese bloque.

Esto puede suceder porque CASPER funciona de manera diferente a la mayoría de los otros algoritmos en el sentido de que el consenso es por bloque , no por cadena. Los bloques no se construyen "sobre" otros bloques, solo existen a una altura determinada, y solo un bloque puede estar a una altura determinada en la cadena canónica. No hay enlace al bloque anterior.

Cada vez que cambia el candidato más probable para una altura (posiblemente hacia o desde "sin bloque"), el estado final de la cadena de bloques se vuelve a calcular mediante la ejecución de transacciones en bloques aceptados. Esto, a su vez, funciona porque cualquier transacción con el formato adecuado es una transacción válida. Si una transacción ocurre en dos bloques, lo más probable es que no haga nada la segunda vez.

¿Cuál es la fuente de entropía para la elección?
Esta es en realidad una descripción de una versión antigua de Casper. Han pasado años, y no recuerdo si alguna vez hubo una fuente de entropía acordada en esta versión.
Este es uno de los temas más importantes en los algoritmos de consenso no PoW. ¿Sabes cómo se implementa en la testnet? El documento de github no dice nada específico.
La forma CFFG actual de Casper es un híbrido de PoW-PoS. El Ethash PoW estándar crea bloques y el contrato de Casper los finaliza. Todavía no ha habido consenso sobre un mecanismo de propuesta de PoS puro.
Sí, pero de alguna manera un bloque debe ser seleccionado a cierta altura.
Creo que en este punto es simplemente la elección de un validador por qué bloque votar, cada 100 bloques más o menos. Dado que es una opción, incluso podría diferir según la implementación.
Pero debe haber un acuerdo cuyo validador tiene derecho a hacer la propuesta y debe ser justo vía entropía.
Ah, creo que veo la fuente de la confusión. No hay "propuestas". Según tengo entendido, los validadores votan de forma asíncrona en cualquier bloque que les plazca, y si algún bloque acumula suficientes votos, se finaliza. (El mecanismo real es más complejo que eso, por supuesto). No hay una selección intermedia de un candidato por parte de un validador específico.
¿Cómo funcionará en la implementación completa de PoS (sin PoW)?
Hasta donde yo sé, eso aún está por determinarse.