HotStuff: de cero a estado del arte

Artículo 8 de 47

17%

completado al llegar aquí

Sistemas distribuidosNota de investigación12 min de lectura

Sincronía vs. Asincronía: El caos de no saber si un mensaje se perdió o si la red está saturada

Modelos síncrono, asíncrono y parcialmente síncrono: por qué un mensaje lento no se distingue de uno perdido y qué implica eso para FLP, DLS y HotStuff.

Ruta HotStuff: 0/47

En 1 Minuto

Compara los tres modelos de tiempo con los que se analizan los protocolos de consenso (síncrono, asíncrono y parcialmente síncrono) y explica por qué la incertidumbre sobre el retardo de los mensajes decide qué garantías puede prometer un protocolo.

Prerrequisitos
  • Consenso BFT desde cero (bft-consensus-from-zero)
  • El Teorema FLP en palabras sencillas (teorema-flp-explicado-sencillo)
Cuándo Detenerte

Detente cuando puedas explicar por qué un protocolo cuya safety depende de una cota de tiempo es frágil en Internet, y qué separa safety de liveness en el modelo de sincronía parcial.

Glosario Rápido de Notación

Glosario de Notación Matemática y Criptográfica

GST— Global Stabilization Time

Tiempo a partir del cual la red alcanza sincronía y los mensajes llegan en un tiempo acotado Δ.

Haz clic en un símbolo para desplegar su definición formal y su aplicación en el protocolo.
Mapa conceptual

Ruta mental de los modelos de red en BFT

  1. Modelo síncrono

    Retardo acotado Δ conocido

  2. Modelo asíncrono

    Sin cota temporal

  3. Sincronía parcial (DLS)

    Cotas que existen o valen eventualmente

  4. Diseño responsive

    Ritmo real δ

Tres supuestos sobre el tiempo y lo que cada uno permite garantizar.
Explicación Didáctica

Decodificador Didáctico de Conceptos BFT

Modelo síncrono

En palabras simples: Un tren con horario exacto y garantizado: si a las 10:05 no llegó, sabes que algo le pasó al tren, no que viene con retraso.

Detalle técnico: Existe una constante conocida Δ tal que todo mensaje enviado en el instante t entre procesos correctos se entrega a más tardar en t + Δ.

Modelo asíncrono

En palabras simples: Un mensaje en una botella: puede tardar dos días o veinte años. No puedes deducir nada de su ausencia.

Detalle técnico: Los retardos son finitos pero arbitrarios: no existe cota superior ni relojes sincronizados en los que apoyarse.

Sincronía parcial

En palabras simples: Una autopista con un atasco de duración desconocida: no sabes cuándo se despejará, pero sabes que en algún momento el tráfico vuelve a circular con normalidad.

Detalle técnico: Modelo de Dwork, Lynch y Stockmeyer (1988): las cotas de tiempo existen pero no se conocen, o se conocen pero solo valen a partir de un instante desconocido GST.

Traducción de lenguaje formal a analogías intuitivas del mundo real.

En el artículo sobre el Teorema FLP vimos que basta la posibilidad de una sola falla por parada para que ningún consenso determinista garantice terminar en un sistema asíncrono. Ese resultado tiene una consecuencia práctica inmediata: la hipótesis que hagamos sobre el tiempo decide qué puede prometer un protocolo. Este artículo pone esa hipótesis bajo la lupa.

En un laboratorio, dos servidores conectados por un cable corto intercambian paquetes con latencias pequeñas y bastante estables. En una red de producción la situación es otra: colas en routers, congestión, pausas del proceso por recolección de basura, reinicios o cambios de ruta pueden retrasar un mensaje mucho más de lo habitual. Ninguna de esas causas es exótica, y ninguna avisa antes de ocurrir.

Tres modelos para una sola pregunta

Todos los modelos de tiempo responden a la misma pregunta: ¿cuánto puede tardar un mensaje enviado por un proceso correcto? Las respuestas posibles son tres.

Sincronía. Existe una cota Δ\Delta conocida por todos: un mensaje enviado en el instante tt llega antes de t+Δt + \Delta, y los procesos avanzan a velocidades también acotadas. En este mundo el silencio es información: si el mensaje no llegó a tiempo, el remitente falló. Por eso los protocolos síncronos pueden organizarse en rondas fijas y tratar a quien no habla como caído.

Asincronía. No hay ninguna cota. Un mensaje llega en algún momento finito, pero ese momento puede ser arbitrariamente tardío, y no hay relojes compartidos que ayuden a razonar. Es el modelo de FLP.

Sincronía parcial. Dwork, Lynch y Stockmeyer propusieron un punto intermedio: las cotas de tiempo existen, pero el protocolo no puede contar con ellas desde el principio. En una variante la cota Δ\Delta existe pero no se conoce de antemano; en la otra se conoce, pero solo se cumple a partir de un instante desconocido llamado GST (Global Stabilization Time).

Conviene no confundir el modelo con la red física. Un modelo es un contrato de análisis: dice qué comportamientos del adversario se consideran posibles. Elegir el modelo asíncrono no significa creer que la red sea siempre caótica, sino exigir que el protocolo sobreviva incluso si lo es.

Por qué un mensaje lento es indistinguible de uno perdido

Pongámonos en el lugar de una réplica que espera un voto. Su única evidencia es lo que le llegó por la red y lo que marca su propio reloj. Si el voto no aparece, hay al menos tres explicaciones posibles: el remitente cayó, el mensaje está atrapado en una cola o el remitente es lento. Desde dentro de la réplica, las tres producen exactamente la misma vista local: ningún mensaje.

En sincronía esa ambigüedad desaparece porque la cota Δ\Delta permite descartar las dos últimas explicaciones tras esperar lo suficiente. En asincronía no hay espera que baste. FLP formaliza este punto: un proceso detenido no se distingue de uno muy lento, y la prueba usa precisamente esa indistinguibilidad para construir una ejecución en la que nadie decide.

La consecuencia de diseño es fuerte. Cualquier regla del tipo "si no recibo respuesta en TT segundos, entonces el otro falló" es una sospecha, no un hecho. Un protocolo robusto puede usar esa sospecha para cambiar de líder o reintentar, pero no puede usarla para concluir algo que comprometa la consistencia del estado replicado.

El riesgo de apostar safety a una cota de tiempo

Veamos un protocolo hipotético, construido a propósito para fallar. Un líder envía un bloque y aplica la regla: "si en 30 segundos nadie objeta, el bloque queda finalizado". La regla funciona mientras la red cumpla su cota. Si una partición retrasa los mensajes durante 31 segundos, el líder finaliza el bloque, mientras que las réplicas que nunca lo vieron pueden sospechar del líder, elegir otro y aceptar un bloque incompatible. El resultado son dos historias finalizadas.

El error no es haber elegido mal el número 30. Con 300 o con 3000 segundos el escenario sigue siendo posible; solo se vuelve menos frecuente. El error es estructural: la safety del protocolo depende de que la red cumpla una cota temporal. En un entorno donde esa cota puede violarse, una sola violación basta para producir un daño irreversible.

Por eso la literatura BFT parcialmente síncrona adopta una división de responsabilidades: las propiedades de safety (acuerdo y validez) deben valer en cualquier ejecución, sea cual sea el comportamiento temporal de la red, y solo la terminación puede depender de que la red se estabilice.

Definición

Separación de safety y liveness en sincronía parcial

Dwork, Lynch, Stockmeyer 1988
Los protocolos de DLS garantizan acuerdo y validez en toda ejecución, independientemente de los retardos; la terminación se garantiza solo cuando las cotas de comunicación y de velocidad de los procesos llegan a cumplirse.
Bosquejo de Demostración: Los valores se aceptan únicamente con evidencia de mayorías que se intersecan, de modo que ningún retardo puede producir dos decisiones distintas; las cotas temporales se usan solo para que las rondas terminen avanzando.

Asincronía pura: la pared de FLP

Si la sincronía es demasiado optimista, ¿por qué no diseñar directamente para asincronía? Porque ahí aparece FLP: ningún protocolo de consenso determinista puede garantizar a la vez acuerdo, validez y terminación en un sistema asíncrono si un solo proceso puede detenerse.

Leído con cuidado, FLP no prohíbe la safety en asincronía. Lo que prohíbe es combinarla con terminación garantizada en todas las ejecuciones, usando un algoritmo determinista. Eso deja dos salidas clásicas: renunciar al determinismo, por ejemplo con aleatoriedad, o debilitar la hipótesis de asincronía total. La segunda salida es la de buena parte de los protocolos BFT prácticos, HotStuff incluido, y su forma más estudiada es la sincronía parcial.

Sincronía parcial: el compromiso de DLS

La propuesta de Dwork, Lynch y Stockmeyer es pragmática: aceptar que la red puede pasar periodos arbitrariamente malos, siempre que esos periodos no duren para siempre. Sobre ese modelo demostraron protocolos de consenso para varias clases de fallas y caracterizaron cuántas toleran: con fallas bizantinas hace falta n≥3f+1n \ge 3f + 1, mientras que con fallas por parada u omisión basta n≥2f+1n \ge 2f + 1.

Lo valioso del modelo es que encaja con la ingeniería real. Una red de producción suele comportarse bien la mayor parte del tiempo y mal durante episodios acotados. La sincronía parcial pide que el protocolo sea seguro durante los episodios malos y que vuelva a avanzar después de ellos, sin que nadie tenga que anunciar cuándo terminaron.

La ventaja frente a la sincronía es clara: el protocolo no depende de acertar una cota para no bifurcarse. La ventaja frente a la asincronía también: la terminación vuelve a ser demostrable, porque el modelo descarta el planificador que retrasa mensajes indefinidamente. El precio es que antes de la estabilización el protocolo puede quedarse quieto, y eso debe considerarse comportamiento esperado, no un fallo. El mecanismo de GST y la intersección de quórums se desarrollan en Sincronía parcial y quórums BFT.

Del modelo al protocolo: el caso HotStuff

HotStuff declara explícitamente el modelo de sincronía parcial. Su argumento de safety no usa el tiempo en absoluto: se apoya en quórums de 2f+12f + 1 votos y en las reglas de bloqueo. Su argumento de liveness, en cambio, solo aplica después de GST, cuando un mecanismo de sincronización de vistas, el pacemaker, consigue que las réplicas correctas coincidan en una vista con un líder correcto.

HotStuff añade un matiz que el modelo DLS no exigía: la responsividad optimista. Después de GST, un líder correcto puede avanzar en cuanto recibe las respuestas de n−fn - f réplicas, al ritmo del retardo real δ\delta de la red y no al de la cota máxima Δ\Delta. Es decir, la cota Δ\Delta se usa como red de seguridad para abandonar vistas improductivas, no como metrónomo del camino feliz. La relación entre estas tres propiedades se estudia en Safety, liveness y responsiveness en HotStuff.

Matriz de decisión

Modelos de red y sus garantías

Precaución

Modelo síncrono

Existe una cota Δ conocida que siempre se cumple.

Ideal para
Razonar sobre entornos donde la cota está realmente garantizada.
Ojo con
Si la red real viola Δ, un protocolo que apoya safety en esa cota puede finalizar historias incompatibles.

Modelo asíncrono

Sin cotas de tiempo ni relojes compartidos.

Ideal para
Protocolos aleatorizados y resultados de imposibilidad.
Ojo con
FLP: un consenso determinista no puede garantizar terminación si un proceso puede detenerse.
Recomendado

Sincronía parcial (DLS)

Las cotas existen pero no se conocen, o solo valen después de GST.

Ideal para
Protocolos BFT como PBFT, Tendermint y HotStuff.
Ojo con
Safety en toda ejecución; liveness solo después de la estabilización.
Qué puede prometer un protocolo determinista según la hipótesis temporal.
Impacto de Negocio & Finanzas

Impacto operativo del modelo de red

Problema Comercial / Operacional

Un protocolo cuya safety depende de una cota de tiempo puede bifurcarse durante un pico de latencia o una partición que nadie anticipó.

Solución del Paper (Insight Técnico)

Diseñar para sincronía parcial desacopla la consistencia de los datos de la calidad momentánea de la red: los retrasos detienen el progreso, no corrompen el estado.

Impacto para el Producto / Negocio: Una pausa del consenso durante una partición se interpreta como comportamiento esperado y se recupera sin intervención para reconciliar historias.
Modelo síncronoSafety frágildepende de cumplir Δ
Modelo asíncronoLímite FLPsin terminación garantizada
Sincronía parcialSafety siempreliveness tras GST
HotStuffResponsiveavanza a δ con líder correcto
Network Models

Checklist mental de modelos de red

4 de 4 revisados

Preguntas para auditar los supuestos temporales de un protocolo.
Referencias

Bibliografía académica

Formato IEEENumerado para ingeniería, sistemas y protocolos.
  1. [1]

    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.

  2. [2]

    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.

  3. [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.

Fuentes primarias, papers seminales y especificaciones técnicas citadas en esta investigación.

Siguiente lectura

Continúa con Sincronía parcial y quórums BFT, donde GST y la intersección de quórums explican cómo un protocolo recupera el progreso sin renunciar a safety.

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.

Sigue leyendo

Ideas conectadas con este artículo

Una ruta corta para continuar sin abrir veinte pestañas y perder el hilo.

Los comentarios se cargan al final de la lectura para no meter peso antes de tiempo.