HotStuff: de cero a estado del arte
Artículo 10 de 47
21%
completado al llegar aquí
Sistemas distribuidosNota de investigación11 min de lectura
El concepto de GST: El momento mágico en el que la tormenta de red cesa
Qué es GST en el modelo DLS de 1988: safety en toda ejecución, liveness tras la estabilización y las dos variantes, con Δ desconocida o válida tras GST.
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 GST (Global Stabilization Time) del modelo de Dwork, Lynch y Stockmeyer: un instante desconocido usado en el análisis, no una señal de red, que separa lo que un protocolo garantiza siempre de lo que garantiza solo después de la estabilización.
- Consenso BFT desde cero (bft-consensus-from-zero)
- Sincronía parcial y quórums (partial-synchrony-quorums-bft)
Detente cuando puedas explicar por qué una réplica no necesita saber cuándo ocurre GST para que el protocolo termine avanzando, y por qué safety no puede depender de él.
Glosario de Notación Matemática y Criptográfica
Tiempo a partir del cual la red alcanza sincronía y los mensajes llegan en un tiempo acotado Δ.
Ruta mental del Global Stabilization Time
Antes de GST
Retardos arbitrarios
Instante GST
Desconocido para las réplicas
Sincronización de vistas
Pacemaker
Progreso
Liveness tras GST
Decodificador Didáctico de Conceptos BFT
En palabras simples: El final de una tormenta cuya hora nadie conoce. Los barcos no necesitan saber cuándo amainará; solo necesitan no hundirse mientras dura y seguir intentando avanzar.
Detalle técnico: Instante desconocido a partir del cual la cota de comunicación Δ se cumple para los mensajes entre procesos correctos.
En palabras simples: Un marinero sin reloj que, cada vez que un intento de cruzar falla, espera un poco más antes del siguiente: tarde o temprano su paciencia supera la duración real del oleaje.
Detalle técnico: Ninguna réplica observa GST. Una técnica habitual es aumentar los timeouts tras cada vista fallida hasta que superen el retardo real de la red.
En Sincronía parcial y quórums BFT presentamos la sincronía parcial como la salida práctica al Teorema FLP. La pieza que hace funcionar ese modelo es un concepto con nombre solemne: GST, o Global Stabilization Time, introducido por Dwork, Lynch y Stockmeyer en 1988. [1]
El nombre invita a una lectura equivocada. Suena a una alarma global, a un reloj atómico compartido o a un mensaje que anuncia "la red ya está bien". No es nada de eso. GST es una herramienta de análisis: un instante que existe en la demostración, que ninguna réplica observa y que el código del protocolo no menciona. Entender esa distinción es la mitad del camino para leer bien cualquier argumento de liveness de la familia HotStuff.
Qué afirma exactamente GST
En el modelo con GST, la cota de comunicación es conocida, pero solo se garantiza a partir de un instante que nadie conoce de antemano. [1] Escrito de forma compacta, si es el instante de envío y el de entrega de un mensaje entre procesos correctos:
Hay tres ideas dentro de esa línea. Primero, GST es finito: la estabilización ocurre en alguna ejecución concreta, aunque sea muy tarde. Segundo, antes de GST no se promete nada sobre los retardos: la red puede comportarse como en el modelo asíncrono de FLP. Tercero, GST es una propiedad de la ejecución, no un parámetro del protocolo: el protocolo debe funcionar para cualquier valor que el adversario elija.
Las formulaciones posteriores difieren en detalles, por ejemplo en cómo tratan los mensajes enviados antes de GST, así que al leer un paper conviene comprobar qué versión exacta del supuesto usa. La idea central es siempre la misma: hay un prefijo de la ejecución sin garantías temporales y un sufijo con ellas.
La línea de tiempo de GST en sincronía parcial
Fuentes:
[1]Cómo leer esta figura
El diagrama muestra el eje del tiempo t. A la izquierda de t_GST, las flechas de mensajes sufren demoras variables e indefinidas sin violar safety. En t_GST la red se estabiliza; a la derecha, todos los mensajes entre réplicas correctas se entregan dentro de la ventana Δ.
Las dos variantes de DLS: cota desconocida o cota tardía
El paper de DLS no define una sola sincronía parcial, sino dos modelos emparentados. [1]
- La cota existe pero no se conoce. Hay un fijo que se cumple durante toda la ejecución, pero el protocolo no sabe cuánto vale. No puede escribir "espera " en su código, porque no tiene el número.
- La cota se conoce pero solo vale después de GST. El protocolo sabe cuánto vale , pero no sabe desde cuándo se cumple. Antes de cualquier retardo es posible.
Las dos variantes capturan intuiciones distintas. La primera describe una red que siempre se porta razonablemente, pero cuya latencia real ignoramos. La segunda describe una red cuya latencia conocemos en régimen normal, pero que puede atravesar un periodo de caos de duración desconocida. DLS considera además cotas análogas sobre la velocidad relativa de los procesadores, no solo sobre la comunicación. [1]
En ambas variantes el obstáculo es el mismo: el protocolo no puede fijar de antemano cuánto esperar. Por eso las soluciones se parecen: rondas o vistas que se repiten, y una forma de garantizar que, tarde o temprano, alguna ronda transcurra con la red cumpliendo la cota. Los protocolos BFT de la línea de HotStuff suelen redactar sus argumentos de liveness con la segunda variante, hablando explícitamente de "después de GST". [3]
Safety en toda ejecución, liveness después de GST
La consecuencia más importante del modelo es una asimetría entre propiedades. Los protocolos de DLS garantizan acuerdo y validez en toda ejecución, incluso en el prefijo caótico anterior a GST; la terminación es lo único que se garantiza solo una vez que las cotas se cumplen. [1]
La asimetría no es una preferencia estética, sino una necesidad lógica. Como ninguna réplica sabe si GST ya ocurrió, ninguna puede razonar "la red ya es estable, así que puedo relajar mis reglas". Cualquier regla de safety que dependiera de la estabilización podría activarse justo en el prefijo malo y producir dos decisiones incompatibles, y safety es una propiedad que se rompe en un instante finito y no se repara después.
Con liveness ocurre lo contrario: es una propiedad sobre el futuro. Decir "el protocolo termina decidiendo" admite que antes de decidir pase un tiempo arbitrario. Por eso puede apoyarse en GST sin contradicción: el adversario puede retrasar el progreso tanto como quiera antes de GST, pero no puede impedirlo para siempre.
Esto también explica la relación con FLP. La ejecución infinita sin decisión que construye FLP requiere un planificador que retrase mensajes indefinidamente. [2] El supuesto de GST excluye exactamente ese planificador a partir de cierto instante, y con ello reabre la puerta a demostrar terminación sin tocar el argumento de safety.
Modelo de sincronía parcial con GST
Por qué ninguna réplica necesita saber cuándo ocurre GST
El código de una réplica no contiene ninguna variable llamada GST. Lo que contiene son temporizadores locales, números de vista y reglas para cambiar de líder. ¿Cómo puede entonces el protocolo aprovechar algo que no observa?
La respuesta está en la forma del argumento. El protocolo intenta progresar en vistas sucesivas. Cada intento fallido cuesta tiempo, pero no compromete safety, porque las reglas de voto se basan en quórums y certificados, no en relojes. La demostración de liveness solo necesita probar que, después de GST, llegará una vista con un líder correcto en la que las réplicas correctas permanezcan el tiempo suficiente para completar el protocolo.
En HotStuff, esa tarea recae en el pacemaker, el mecanismo que sincroniza vistas y elige líderes; el paper separa explícitamente esa función de las reglas de safety y garantiza progreso después de GST. [3] Una técnica habitual en estos mecanismos es aumentar el timeout tras cada vista fallida: si el valor inicial era demasiado corto para la latencia real, tarde o temprano deja de serlo, sin que nadie haya tenido que conocer GST ni el retardo verdadero. Por qué no basta con un timeout fijo se analiza en Por qué no timeouts fijos.
Lo que GST no dice
GST suele malinterpretarse en tres sentidos, y cada malentendido produce errores de diseño distintos.
No es un evento observable. Ninguna réplica puede detectar que GST ocurrió. Una racha de mensajes rápidos no prueba nada: el adversario podría volver a retrasarlos un instante después si GST aún no llegó. Un protocolo que "detecta la estabilidad" y relaja sus reglas está reintroduciendo una dependencia temporal en safety.
No promete una red perfecta para siempre en la práctica. El modelo dice que, a partir de GST, la cota vale indefinidamente. Las redes reales alternan periodos buenos y malos. La lectura práctica es que el periodo estable debe durar lo suficiente para que el protocolo complete una decisión; cuando vuelve el caos, safety sigue intacta y el progreso se reanuda en el siguiente periodo estable.
No fija la velocidad del progreso. GST garantiza que el progreso ocurrirá, no lo rápido que será. Un protocolo puede terminar después de GST esperando siempre el máximo en cada paso. HotStuff va más allá con la responsividad optimista: después de GST y con líder correcto, avanza al ritmo del retardo real de la red, que puede ser mucho menor que . [3] Esa diferencia se estudia en Safety, liveness y responsiveness en HotStuff.
Impacto operativo de GST
Durante un episodio de congestión o un ataque de denegación de servicio contra los validadores, el consenso puede dejar de producir bloques.
En el modelo con GST, ese episodio solo puede retrasar el progreso: las reglas de safety no dependen del tiempo, y cuando la red se estabiliza el protocolo retoma las decisiones.
Checklist mental de GST
4 de 4 revisados
Bibliografía académica
- [1]
C. Dwork, N. Lynch, and L. Stockmeyer, "Consensus in the Presence of Partial Synchrony," JACM, 1988.
Modelo clásico para razonar sobre sincronía parcial y progreso eventual.
- [2]
M. J. Fischer, N. A. Lynch, and M. S. Paterson, "Impossibility of Distributed Consensus with One Faulty Process," JACM, vol. 32, no. 2, pp. 374-382, 1985, doi: 10.1145/3149.214121
Resultado de imposibilidad para consenso determinista en un sistema completamente asíncrono con una falla por crash.
- [3]
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.
Siguiente lectura
Continúa con ¿Por qué no podemos usar timeouts fijos?, donde se analiza qué ocurre con la liveness cuando la espera se fija de antemano.
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.
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.
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.
Por qué las firmas criptográficas (autenticación) reducen los nodos necesarios para el consenso
Mensajes orales frente a firmados: por qué las firmas eliminan la cota 3f+1 en el modelo síncrono de Lamport, pero no bajo la sincronía parcial de DLS.