- HotStuff: de cero a estado del arte
- Artículo 27 de 77
HotStuff: de cero a estado del arte
Artículo 27 de 77
35%
completado
HotStuff: QC, highQC y la regla de tres cadenas
El núcleo visual de HotStuff: cómo una propuesta se convierte en QC, por qué highQC guía al líder y cuándo una cadena certificada permite comprometer un bloque.
Prerequisitos recomendados
Si alguno de estos conceptos todavía está medio nebuloso, empieza por aquí. Te ahorra tropiezos y un par de cejas fruncidas.
Uno, dos y tres chains: la taxonomía de commit antes de HotStuff
Guía para entender commits de una, dos y tres cadenas, y cómo esa taxonomía prepara QC, highQC, multipipeline y Fast-HotStuff.
Blockchain11 min de lectura→Consenso BFT desde cero: réplicas, quórums y fallas bizantinas
Primer paso de la serie HotStuff: qué problema resuelve BFT, por qué aparece n >= 3f + 1 y cómo separar safety de liveness sin drama matemático.
Blockchain10 min de lectura→Sincronía parcial y quórums: la calma antes de HotStuff
Qué significa GST, por qué la red no necesita ser perfecta y cómo los quórums sostienen safety mientras liveness espera mejores condiciones.
Blockchain9 min de lectura→
Explica cómo votos condicionados forman un QC, cómo se selecciona highQC y por qué tres certificados consecutivos permiten commit.
- Taxonomía one/two/three-chain
- Consenso BFT y quórums
Continúa cuando puedas reconstruir la ruta propuesta → votos → QC → highQC → commit sin confundir bloque y certificado.
Ahora sí: HotStuff.
Si lo reduces demasiado, HotStuff es un protocolo donde los líderes proponen bloques y las réplicas votan. Si lo reduces bien, HotStuff es una máquina de mover evidencia segura de una vista a la siguiente. [1]
La moneda de esa evidencia es el QC.
QC: Quorum Certificate
Un Quorum Certificate es una prueba agregada de que 2f + 1 réplicas votaron por una propuesta en una vista. No es "me gustó el bloque". Es "suficiente gente lo vio, lo validó y dejó una firma verificable". [1]
El highQC no es un objeto mágico distinto. Es una selección: de todos los QCs conocidos, toma el de vista más alta. En una nueva vista, el líder debe proponer extendiendo ese punto, porque ahí está la evidencia más reciente de seguridad. [1]
Vistas y bloques
HotStuff divide el tiempo lógico en views. Cada view tiene un líder. El líder propone un bloque que apunta a un padre. Las réplicas verifican:
- que el bloque extiende una rama segura;
- que el QC incluido justifica esa extensión;
- que no están violando su regla de voto/lock.
Si suficientes réplicas votan, aparece un QC para ese bloque. Ese QC será combustible para la siguiente vista. [3] [1]
Flujo visual
Ciclo mínimo de una vista HotStuff
La regla de tres cadenas
En Chained HotStuff, los nombres de fases se pliegan dentro de una cadena de bloques certificados. En vez de pensar en prepare, pre-commit y commit como mensajes separados, piensa en una secuencia de bloques con QCs consecutivos. [1]
La intuición:
- si
B2certifica aB1; - y
B3certifica aB2; - entonces hay suficiente evidencia para comprometer un ancestro seguro.
Commit por tres cadenas
📖 Cómo leer esta figura (Detalle explicativo)
Sigue las flechas de padre entre b, b+1 y b+2. Cada enlace está justificado por un QC válido y highQC selecciona la punta certificada más alta. Al formarse el tercer enlace consecutivo, el protocolo compromete al abuelo b; el bloque más reciente todavía puede cambiar de punta sin revocar ese commit.
No te obsesiones todavía con cada nombre de fase. La idea fuerte es esta: HotStuff convierte la seguridad en estructura de cadena. Si la cadena tiene suficiente profundidad certificada, el sistema ya no necesita cargar un view-change enorme para recordar qué era seguro. [1] [2]
Por qué highQC importa tanto
Un líder bizantino puede proponer basura. Pero una réplica correcta no vota solo porque el líder suena convincente. Vota si la propuesta está justificada por evidencia segura.
highQC hace dos trabajos:
- ayuda al líder correcto a encontrar la rama segura;
- ayuda a las réplicas a rechazar propuestas que intentan saltarse locks anteriores.
Qué respalda cada afirmación sobre QC y highQC
- 01Confianza: alta
Un QC transporta evidencia de 2f + 1 votos y permite que una vista posterior extienda una rama justificada.
- [HotStuff (PODC 2019)]
Especifica las fases, certificados y regla de voto del protocolo.
Límite: La intuición visual omite detalles de criptografía umbral y autenticación, tratados por separado en la serie.
- [HotStuff (PODC 2019)]
- 02Confianza: alta
highQC resume la evidencia segura más avanzada que el nuevo líder debe considerar.
- [HotStuff (PODC 2019)]
Define la selección y el uso del QC de vista más alta.
- [Lessons from HotStuff (2023)]
Explica retrospectivamente por qué la linealidad del cambio de vista importa.
- [HotStuff (PODC 2019)]
- 03Confianza: media
La profundidad de una cadena certificada convierte evidencia local en una regla de commit fácil de seguir.
- [HotStuff (PODC 2019)]
Formaliza Chained HotStuff y su commit rule.
- [Streamlet (2020)]
Ofrece una presentación pedagógica afín basada en cadenas notarizadas.
Límite: Streamlet ayuda a construir intuición, pero no es una especificación intercambiable con HotStuff.
- [HotStuff (PODC 2019)]
Lectura rápida de una propuesta HotStuff
- La propuesta incluye un QC verificable.Completado
- El QC justifica extender la rama propuesta.Completado
- No contradice el lock local de la réplica.Completado
- La firma/vista/padre del bloque son consistentes.Completado
La chispa del diseño
HotStuff se siente elegante porque reduce un problema difícil a un patrón repetible:
proponer sobre evidencia segura, certificar con quórum, encadenar certificados, comprometer con profundidad.
En el siguiente post veremos qué ocurre cuando el líder no ayuda: view-change, pacemaker y cómo el nuevo líder recoge la evidencia sin convertir el protocolo en sopa de mensajes.
Profundización conceptual
Modelo mental: evidencia como carril, no como adorno
El QC no es una medalla que se cuelga al bloque después de ganar una votación. Es el carril por donde el protocolo puede seguir avanzando sin olvidar la seguridad acumulada. Una propuesta HotStuff saludable dice: "quiero construir aquí, y esta es la evidencia que hace razonable construir aquí". El highQC responde: "de todo lo que sabemos, esta es la punta certificada más avanzada". [2]
La regla de tres cadenas compra tiempo lógico. No finaliza el bloque apenas aparece un voto fuerte; espera a que haya profundidad certificada. Esa profundidad sirve porque los cambios de líder no ocurren en un universo limpio. Un líder puede fallar entre fases, una réplica puede estar atrasada y un nodo bizantino puede intentar revivir una rama vieja. Tres certificaciones consecutivas hacen que la memoria honesta tenga suficiente oportunidad de cruzar vistas. [1]
Si quieres una imagen simple: QC es una firma colectiva sobre una piedra del camino; highQC es la piedra más alta que todos deberían respetar; la regla de tres cadenas dice que cuando hay suficientes piedras encima, una de abajo ya no se mueve.
Invariante: votar solo si la propuesta respeta el lock
El invariante de seguridad alrededor de QC/highQC puede leerse así: una réplica correcta no debe ayudar a certificar una rama que contradice su evidencia segura previa. En HotStuff esa disciplina se expresa con reglas de voto y locks. El líder propone, pero la réplica decide si esa propuesta es segura.
La prueba mental usa dos ingredientes. Primero, cualquier QC válido contiene 2f + 1 votos. Segundo, dos QCs válidos dentro de 3f + 1 réplicas comparten al menos una réplica correcta. Si una rama ya avanzó lo suficiente para comprometer un ancestro, una rama incompatible necesitaría convencer a réplicas correctas de votar contra su lock o de aceptar evidencia más baja. La regla de voto bloquea ese salto.
Por eso highQC importa: no es solo "el QC más reciente que encontró el líder"; es la señal de qué evidencia debe ser extendida para no romper los locks que podrían existir en réplicas correctas.
Escenario adversarial: la rama tentadora
Imagina que el líder de una nueva vista es bizantino. Sabe que hay un QC alto sobre la rama A, pero propone una rama B porque le conviene fabricar un fork. Para hacerlo ver legítimo, incluye un QC antiguo o incompleto y mete prisa: "voten rápido, la red está lenta".
Una réplica correcta no debería razonar con entusiasmo social. Debe preguntar: ¿esta propuesta extiende mi lock?, ¿el QC incluido justifica el salto?, ¿hay evidencia de vista más alta que esté ignorando? Si la respuesta falla, no vota. Esa negativa es más importante que cualquier diagrama bonito: es donde safety se vuelve acción local.
El adversario no necesita convencer a todos; necesita reunir 2f + 1 votos. Pero como a lo sumo f son bizantinos, necesita arrastrar réplicas correctas. Las reglas de lock existen precisamente para que esas réplicas correctas sean aburridas, testarudas y útiles. En consenso, una réplica aburrida es una bendición.
Cómo leer el paper
Cuando leas HotStuff, separa tres capas. Primero está el framework con fases: prepare, pre-commit, commit y decide. Luego aparece Chained HotStuff, donde esas fases se pliegan en una cadena de bloques certificados. Finalmente mira el view-change, porque ahí se ve por qué highQC compacta la evidencia que antes era más pesada. [1] [2]
No intentes memorizar todo de una sentada. Sigue un bloque y pregúntate:
- ¿qué QC trae como justificación?;
- ¿qué votos necesita para formar su propio QC?;
- ¿qué ancestro queda comprometido si aparecen bloques certificados consecutivos?;
- ¿qué pasaría si el líder cambia justo aquí?
Si puedes responder esas cuatro preguntas, ya no estás leyendo HotStuff como una lista de siglas. Lo estás leyendo como una máquina de conservar evidencia.
Un último truco de lectura: dibuja siempre dos ramas incompatibles y pregúntate cuál réplica correcta tendría que firmar ambas para que el ataque funcione. Si no encuentras esa réplica, probablemente entendiste el invariante. Si la encuentras, encontraste el sitio exacto donde el protocolo necesita una regla de voto más fuerte.
Bibliografía académica
- [1]
M. Yin, D. Malkhi, M. K. Reiter, G. G. Gueta, and I. Abraham, "HotStuff: BFT Consensus in the Lens of Blockchain," in Proc. PODC, 2019.
Fuente central para QC, highQC, Chained HotStuff y commit de tres cadenas.
- [2]
D. Malkhi and M. Yin, "Lessons from HotStuff," arXiv:2305.13556, 2023.
Lectura retrospectiva para entender por qué esos invariantes importan.
- [3]
B. Chan and E. Shi, "Streamlet: Textbook Streamlined Blockchains," IACR ePrint 2020/088, 2020.
Referencia pedagógica para commit por estructura de cadena.
Rutas vecinas
Si este tema te abrió hambre, sigue por aquí.
Series y labs que comparten área o dependen de esta ruta. Pocas opciones, para no convertir la curiosidad en menú infinito.
Labs para convertir lectura en práctica
Sigue leyendo
Ideas conectadas con este artículo
Una ruta corta para continuar sin abrir veinte pestañas y perder el hilo.
Consenso BFT desde cero: réplicas, quórums y fallas bizantinas
Primer paso de la serie HotStuff: qué problema resuelve BFT, por qué aparece n >= 3f + 1 y cómo separar safety de liveness sin drama matemático.
Fast-HotStuff: dos cadenas, AggQC y la letra pequeña
Por qué Fast-HotStuff intenta reducir latencia, cómo usa AggQC para probar highQC en cambios de vista y qué trade-offs aparecen en firmas agregadas.
HotStuff multipipeline: de fases a cadena viva
Cómo Chained HotStuff convierte prepare, pre-commit, commit y decide en una línea temporal de vistas, GenericQC y commits por profundidad de cadena.
View-change en HotStuff: pacemaker, timeouts y líderes tercos
Cómo HotStuff cambia de líder sin perder safety: new-view, highQC, pacemaker y la diferencia entre protocolo de consenso y mecanismo de sincronización.