HotStuff: de cero a estado del arte
Artículo 20 de 47
43%
completado al llegar aquí
Sistemas distribuidosNota de investigación10 min de lectura
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.
Ruta HotStuff: 0/47
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
Fuentes:
[1]Cómo leer esta figura
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.
La escena recorre el ciclo completo con cuatro réplicas: votos, QC, highQC y 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
01Un QC transporta evidencia de 2f + 1 votos y permite que una vista posterior extienda una rama justificada.
Confianza alta- HotStuff (PODC 2019) (abre en otra pestaña)
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) (abre en otra pestaña)
02highQC resume la evidencia segura más avanzada que el nuevo líder debe considerar.
Confianza alta- HotStuff (PODC 2019) (abre en otra pestaña)
Define la selección y el uso del QC de vista más alta.
- Lessons from HotStuff (2023) (abre en otra pestaña)
Explica retrospectivamente por qué la linealidad del cambio de vista importa.
- HotStuff (PODC 2019) (abre en otra pestaña)
03La profundidad de una cadena certificada convierte evidencia local en una regla de commit fácil de seguir.
Confianza media- HotStuff (PODC 2019) (abre en otra pestaña)
Formaliza Chained HotStuff y su commit rule.
- Streamlet (2020) (abre en otra pestaña)
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) (abre en otra pestaña)
Lectura rápida de una propuesta HotStuff
4 de 4 revisados
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.
Series relacionadas
Ethereum: de historia a labs
Serie progresiva para entender Ethereum desde el whitepaper, forks y The Merge hasta EVM, Solidity, proof-of-stake, rollups, account abstraction, DeFi, observabilidad y laboratorios reproducibles.
Substrate: del runtime al consenso propio
Serie de 20 capítulos, de neófito a experto, sobre Substrate (Polkadot SDK): runtime en Wasm, FRAME, extrinsics, estado, pesos, actualizaciones sin fork, Aura, BABE, GRANDPA, sincronización, parachains, XCM, Sassafras, BEEFY y cómo conectar un consenso BFT propio a un nodo.
Ruta práctica: activos digitales en la operación
Nueve módulos, de menor a mayor dependencia, para decidir cómo usar custodia, wallets, llaves, firmas multifirma y MPC, AML/KYT y stablecoins con Fireblocks, BitGo, Kaleido, Circle y Tether.
Labs para convertir lectura en práctica
Prueba de trabajo y reajuste de dificultad
Laboratorio determinista para medir el costo de la prueba de trabajo y ver cómo el reajuste por altura de bloque estabiliza el tiempo entre bloques.
Consensus benchmark
Banco reproducible para comparar consenso BFT y documentar los trade-offs de HotStuff-2.
Ethereum local: Anvil, wallet y primera transacción
Laboratorio base para levantar una red local, crear cuentas, firmar transacciones y observar receipts sin gastar ETH real.
RPC y Cast: leer Ethereum con lupa
Ejercicios con JSON-RPC y Cast para consultar bloques, nonces, gas, receipts, logs y errores reproducibles.
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.