HotStuff: de cero a estado del arte
Artículo 18 de 47
38%
completado al llegar aquí
Sistemas distribuidosNota de investigación12 min de lectura
El dilema de la responsividad optimista en Tendermint: El precio de esperar al temporizador
Por qué el nuevo líder de Tendermint espera la cota Δ antes de proponer y cómo la fase extra de HotStuff permite avanzar a la velocidad real de la red.
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.
Comprende el compromiso entre fases y responsividad: por qué en Tendermint un líder nuevo espera la cota de retardo Δ antes de proponer, para conocer el lock más alto, y por qué HotStuff paga una fase adicional para poder avanzar al ritmo real de la red.
- Consenso BFT desde cero (bft-consensus-from-zero)
- Tendermint visto desde HotStuff (tendermint-locks-hotstuff-lens)
Detente cuando puedas explicar qué información necesita un líder nuevo antes de proponer, y por qué Tendermint la obtiene esperando Δ mientras HotStuff la obtiene de n - f mensajes.
Glosario de Notación Matemática y Criptográfica
Número de vista o ronda actual. Cada vista tiene un único líder designado.
view = 42Ruta mental de la responsividad: Tendermint frente a HotStuff
Problema
El lock más alto
Tendermint
Esperar Δ
HotStuff
Una fase más
Resultado
Responsividad optimista
Decodificador Didáctico de Conceptos BFT
En palabras simples: Un moderador nuevo que, antes de abrir la votación, espera el tiempo máximo que tarda el correo en llegar, para asegurarse de que ningún participante tiene un compromiso previo que él no conoce.
Detalle técnico: Esperar Δ después de GST garantiza que el líder ha recibido el estado de bloqueo de todas las réplicas correctas, a costa de que la ronda tarde al menos Δ aunque la red sea mucho más rápida.
En palabras simples: Un moderador que puede abrir la votación en cuanto recibe respuesta de una mayoría calificada, porque las reglas garantizan que esa mayoría ya contiene la información decisiva.
Detalle técnico: Después de GST, un líder correcto solo necesita esperar las primeras n - f respuestas para formar una propuesta que hará progresar al protocolo.
En Tendermint visto desde HotStuff estudiamos los locks de Tendermint: cada réplica recuerda el valor y la ronda en que se bloqueó, y solo vota por propuestas compatibles con ese bloqueo o justificadas por evidencia más reciente. [1] Ese mecanismo protege safety, pero crea un problema de liveness cada vez que cambia el líder.
Este artículo trata de ese problema y de las dos maneras de resolverlo. La pregunta es sencilla de formular: ¿cuánto tiene que esperar un líder nuevo antes de proponer? La respuesta separa a Tendermint de HotStuff y explica por qué HotStuff tiene tres fases de votación en lugar de dos.
Qué significa responsividad optimista
HotStuff define la responsividad optimista con precisión: después de GST, un líder correcto, una vez designado, solo necesita esperar las primeras respuestas para garantizar que puede crear una propuesta que hará progresar al protocolo. [2] La palabra "optimista" indica que la garantía aplica en el buen caso, después de la estabilización y con líder correcto; antes de GST nada asegura el progreso.
La diferencia práctica está entre dos magnitudes. es la cota de retardo que el protocolo usa como supuesto, elegida de forma conservadora para cubrir el peor caso de la red. es el retardo real de los mensajes en una ejecución concreta, que normalmente es mucho menor. Un protocolo responsive avanza a un ritmo proporcional a ; uno que no lo es paga en algún paso, aunque todos los mensajes hayan llegado mucho antes. [2]
Ojo con esto: la responsividad no dice que el protocolo sea siempre más rápido en la práctica. Dice que su progreso no está atado a una espera fija calibrada para el peor caso. Cuánto se gana depende de la distancia real entre y en el despliegue.
El problema del lock oculto
Para entender por qué un líder nuevo podría necesitar esperar, imaginemos el escenario que preocupa a todos los protocolos con locks. En una ronda anterior, alguna réplica correcta se bloqueó en un valor porque vio suficiente evidencia de que podía haberse decidido. Esa réplica, por las reglas de safety, rechazará propuestas incompatibles con su lock que no traigan justificación más reciente. [1]
El líder nuevo recoge mensajes de réplicas. Pero nada garantiza que la réplica bloqueada esté entre ellas: puede ser una de las que todavía no respondieron. Si el líder propone basándose solo en lo que vio, puede proponer algo que la réplica bloqueada rechaza. Si suficientes réplicas correctas quedan en esa situación, ninguna propuesta reúne el quórum y el protocolo no avanza, aunque la red sea perfectamente estable. [3]
El líder tiene entonces tres opciones: pedir a cada réplica una prueba completa de su estado, como hace PBFT en su cambio de vista; esperar lo suficiente para oír a todas las réplicas correctas; o cambiar el protocolo para que lo que ve entre mensajes siempre baste. [3]
La solución de Tendermint: esperar la cota máxima
Tendermint elige la segunda opción. Su protocolo avanza por rondas con pasos de propuesta, prevote y precommit, usa timeouts que crecen con el número de ronda y difunde mensajes por gossip, de modo que después de GST cada réplica correcta termina recibiendo lo que las demás enviaron. [1] Las réplicas recuerdan no solo su lock, sino también el valor más reciente que vieron respaldado por un quórum de prevotes (validValue), y el proponente de una ronda propone ese valor cuando lo tiene. [1]
Leído desde HotStuff, el efecto es que un líder nuevo debe esperar la cota máxima de retardo antes de proponer: solo así, después de GST, tiene garantizado haber recibido el lock más alto de toda réplica correcta. [2] La ventaja es que el cambio de líder sigue siendo barato en comunicación y que bastan dos fases de votación. El precio es la pérdida de responsividad: esa espera dura aunque la red entregue todo en . [3]
Esperar Δ no es un defecto de implementación
La solución de HotStuff: una fase más
HotStuff elige la tercera opción. Añade una fase de votación entre la formación del primer certificado y el bloqueo, de modo que una réplica correcta solo se bloquea cuando ya existe un quórum de réplicas que conocen el certificado correspondiente. Como consecuencia, si alguna réplica correcta está bloqueada, cualquier conjunto de mensajes new-view contiene un highQC al menos tan alto como ese lock. [2]
El líder ya no tiene que esperar a nadie en particular: recoge mensajes new-view, extiende el highQC más alto que encuentra y las réplicas bloqueadas lo aceptan, porque la regla safeNode permite votar por una propuesta cuyo QC es más reciente que el lockedQC local. [2] Además, como cada réplica envía un solo QC, el cambio de líder es lineal en comunicación, que era precisamente lo que PBFT no lograba. El análisis de esa regla de commit está en QC, highQC y la regla de tres cadenas.
El costo es visible en el camino feliz: una fase adicional significa un viaje de ida y vuelta más antes de confirmar una decisión. HotStuff cambia latencia de commit en el caso estable por responsividad y linealidad en el cambio de líder. [2] [3]
Cambio de líder: esperar la cota de red o avanzar con el highQC
Cómo leer esta figura
Dos paneles. A la izquierda, Tendermint: tras la caída del líder, el nuevo líder espera un tiempo Δ y luego propone. A la derecha, HotStuff: tras la caída del líder, el nuevo líder recibe n − f mensajes new-view, toma el highQC más alto y propone al ritmo real de la red δ, sin esperar Δ.
El compromiso, sin marketing
Visto en conjunto, ninguna de las dos opciones domina a la otra en todos los ejes. Tendermint tiene dos fases y un cambio de líder lineal, pero no es responsive. HotStuff es responsive y lineal, pero confirma con una fase más. PBFT es responsive con dos fases, pero su cambio de vista no es lineal. Malkhi y Nayak organizan precisamente estos protocolos como puntos distintos de un mismo compromiso entre fases, comunicación en el cambio de vista y responsividad. [3]
La historia no terminó con HotStuff. La misma comparación presenta HotStuff-2 como una forma de recuperar las dos fases sin perder la linealidad, pagando la espera solo en las situaciones de cambio de líder en que es estrictamente necesaria. [3] Ese desarrollo se estudia en HotStuff-2 y la frontera DAG-BFT.
Conviene también no idealizar la propiedad. Un estudio reciente sobre protocolos BFT encadenados analiza cómo se comporta la responsividad cuando el retardo de la red varía, y advierte que su beneficio depende del modelo de red y de las condiciones concretas, no es una ventaja universal. [4] La conclusión práctica es medir: la distancia entre y en el despliegue real decide cuánto vale ahorrar la espera frente a pagar una fase más.
Tres respuestas al problema del lock oculto
Impacto operativo de la responsividad
Si la cota Δ se elige de forma conservadora para cubrir el peor caso de la red, un protocolo no responsive paga esa espera en cada cambio de líder aunque la red real sea mucho más rápida.
Un protocolo responsive desacopla la latencia del caso normal del parámetro conservador: Δ sigue existiendo como red de seguridad para abandonar vistas, no como ritmo del progreso.
Checklist mental de responsividad BFT
4 de 4 revisados
Bibliografía académica
- [1]
E. Buchman, J. Kwon, and Z. Milosevic, "The latest gossip on BFT consensus," arXiv:1807.04938, 2018.
Fuente para locks, rondas y finality estilo blockchain en Tendermint.
- [2]
M. Yin, D. Malkhi, M. K. Reiter, G. G. Gueta, and I. Abraham, "HotStuff: BFT Consensus in the Lens of Blockchain," PODC, 2019.
Fuente central para QC, highQC, Chained HotStuff, view-change lineal y three-chain commit.
- [3]
D. Malkhi and K. Nayak, "What is the difference between PBFT, Tendermint, HotStuff, and HotStuff-2?," Decentralized Thoughts, 2023.
Comparación técnica para ubicar PBFT, Tendermint, HotStuff y HotStuff-2.
- [4]
Y. Tang et al., "Unraveling Responsiveness of Chained BFT Consensus with Network Delay," arXiv:2501.03695, 2025.
Advertencia útil: responsiveness depende del modelo de red y no es magia universal.
Siguiente lectura
Continúa con Uno, dos y tres chains: la taxonomía de commit, donde el número de fases se traduce en reglas de commit sobre cadenas de certificados.
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.
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.
Safety, liveness y responsiveness en HotStuff
Una separación práctica de las garantías de HotStuff: qué nunca debe pasar, cuándo vuelve a avanzar y por qué responsiveness no significa latencia cero.
Tendermint visto desde HotStuff: locks, unlocks y evidencia
Cómo leer Tendermint con el lente de HotStuff: prevote, precommit, LockedValue, ValidRound, proposer rotation, evidencia y slashing.
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.