HotStuff: de cero a estado del arte
Artículo 36 de 47
77%
completado al llegar aquí
Sistemas distribuidosNota de investigación12 min de lectura
Tusk: Consenso asíncrono y aleatorizado sin timeouts en el camino feliz
Tusk ordena el DAG de Narwhal sin timeouts: una moneda aleatoria compartida elige el líder de cada ola y el orden total sale del grafo sin mensajes extra.
Ruta HotStuff: 0/47
Comprende cómo Tusk (Danezis et al.) ordena el DAG de Narwhal de forma totalmente asíncrona: una moneda aleatoria compartida elige, a posteriori, el líder de cada ola, y el orden total se deriva del grafo sin mensajes adicionales ni timeouts.
- Teorema FLP explicado de forma sencilla (teorema-flp-explicado-sencillo)
- Narwhal: mempool DAG para HotStuff (narwhal-dag-mempool-hotstuff)
- El grafo DAG como una máquina del tiempo (grafo-dirigido-aciclico-dag-maquina-tiempo)
Detente cuando puedas explicar por qué el líder de una ola se elige después de construir sus rondas, qué condición del DAG permite comprometerlo y cómo se ordenan los líderes anteriores que no alcanzaron esa condición.
Glosario de Notación Matemática y Criptográfica
Cantidad de réplicas maliciosas o con fallas arbitrarias que tolera el sistema.
n = 3f + 1Ruta mental del consenso asíncrono Tusk
1. Construcción del mempool DAG
Narwhal en marcha
2. Elección del líder de la ola
Moneda aleatoria compartida
3. Verificación de soporte
Votos implícitos en el DAG
4. Orden total determinista
Cero mensajes de voto
Decodificador Didáctico de Conceptos BFT
En palabras simples: Varios equipos dibujan en paralelo un mapa de ciudades conectadas. Cada cierto tiempo, una tómbola transparente sortea cuál ciudad es la capital del periodo, y todos ordenan las ciudades conectadas a esa capital sin discutir entre ellos.
Detalle técnico: Protocolo de consenso asíncrono que interpreta localmente el DAG de Narwhal; una moneda aleatoria elige el líder de cada ola y el orden se deriva sin mensajes extra.
En palabras simples: Una caja fuerte que solo se abre cuando suficientes custodios introducen su llave; antes de eso, nadie, ni siquiera un grupo pequeño de custodios corruptos, conoce la combinación.
Detalle técnico: Valor aleatorio impredecible antes de revelarse y no sesgable por f validadores bizantinos; puede implementarse con firmas de umbral.
Narwhal resolvió la difusión: los datos circulan como batches certificados y el DAG registra qué estaba disponible y en qué orden causal. Pero un DAG no es todavía un libro contable. Falta decidir un orden total que todas las réplicas honestas reproduzcan idéntico. [1]
El paper de Danezis, Kokoris-Kogias, Sonnino y Spiegelman ofrece dos respuestas. Una es Narwhal-HotStuff, que pone un consenso con líder y pacemaker encima del DAG. La otra es Tusk: un protocolo asíncrono que no envía ningún mensaje propio, sino que cada réplica interpreta localmente el DAG con ayuda de una moneda aleatoria compartida. [1]
Para entender por qué eso importa, primero hay que mirar qué se pierde cuando el progreso depende de un reloj. Si necesitas el contexto del DAG, vuelve a Narwhal: mempool DAG para HotStuff.
Qué cuesta depender de timeouts
HotStuff está diseñado para sincronía parcial: garantiza safety siempre, pero su liveness depende de que, después de GST, un líder correcto reciba los votos a tiempo. El componente que vigila eso es el pacemaker, que usa timeouts para abandonar una vista cuyo líder no progresa. [3] El modelo está explicado en sincronía parcial y quórums BFT.
Los timeouts son una apuesta sobre la red:
- si el plazo es corto, un líder honesto pero lento se sustituye antes de terminar, y la vista se pierde;
- si el plazo es largo, un líder caído o malicioso congela el progreso durante todo ese intervalo;
- si un adversario controla los retrasos, puede apuntar al líder conocido de la siguiente vista y hacer que sus mensajes lleguen siempre tarde.
El último punto es el más incómodo. En un protocolo con rotación predecible, el atacante sabe a quién retrasar. No necesita romper la criptografía; le basta con manipular el calendario de la red.
¿Por qué no prescindir del reloj sin más? Por FLP: ningún protocolo determinista puede garantizar consenso en un sistema completamente asíncrono si incluso un proceso puede fallar por crash. [2] La salida estándar es la aleatorización. Tusk renuncia al determinismo en la elección del líder y, a cambio, obtiene progreso sin ninguna suposición temporal. [1]
Olas: elegir al líder después de construir el DAG
Tusk agrupa las rondas del DAG de Narwhal en olas (waves). En la primera ronda de una ola, cada validador produce su vértice como siempre. En la ronda siguiente, los nuevos vértices referencian certificados de la ronda anterior, como exige Narwhal, y esas referencias funcionan como votos implícitos. En la ronda que cierra la ola, los validadores aportan su parte de la moneda aleatoria compartida. [1]
Cuando la moneda se revela, todos calculan el mismo líder para la ola :
El vértice que ese validador produjo en la primera ronda de la ola es el candidato a comprometerse. La clave es el orden temporal: el líder se conoce después de que el DAG de la ola ya existe. Un adversario que controla los retrasos de la red no sabe qué vértice proteger o castigar mientras las rondas se construyen. Cuando lo sabe, las referencias ya están fijadas. [1]
La moneda debe cumplir dos propiedades: ser impredecible hasta que suficientes validadores aportan su parte, y no poder sesgarse por validadores bizantinos. Una construcción habitual usa firmas de umbral sobre el número de ola, de modo que el valor resultante es único y verificable. [1]
Flujo visual
Secuencia de ordenamiento asíncrono en Tusk
Regla de commit y orden retroactivo
Una vez conocido el líder, cada réplica mira su copia local del DAG. Si al menos vértices de la segunda ronda de la ola referencian el vértice del líder, la réplica lo compromete. Si no, no hace nada: no hay timeout, no hay cambio de vista, simplemente se pasa a la ola siguiente. [1]
¿Por qué basta? Por intersección de quórums. Cualquier vértice de la ronda posterior referencia vértices de la segunda ronda. Como hay validadores, un conjunto de votantes y uno de referencias comparten al menos un vértice. Por lo tanto, todo vértice de rondas futuras tiene un camino hacia el líder comprometido.
Esa propiedad resuelve el caso difícil: réplicas distintas pueden ver el DAG en momentos distintos. Una réplica puede comprometer el líder de la ola mientras otra todavía no ve suficientes votos. Cuando esta segunda réplica comprometa un líder posterior, recorre hacia atrás los líderes de olas anteriores que son alcanzables por caminos del DAG y los ordena primero. El líder de será alcanzable por la propiedad anterior, así que ambas réplicas terminan con la misma secuencia. [1]
Finalmente, para cada líder en esa secuencia, la réplica toma su historia causal todavía no ordenada y la recorre con una regla determinista común. Como Narwhal certifica cada vértice con firmas, un validador bizantino no puede mostrar vértices distintos a réplicas distintas para la misma ronda, y todas recorren el mismo grafo. [1]
Propiedades de Tusk según Danezis et al.
Cero mensajes extra: dónde está realmente el costo
La afirmación de que Tusk tiene costo de comunicación cero para el orden es literal: no existen mensajes de propuesta, voto ni cambio de vista propios de Tusk. Las referencias que actúan como votos ya forman parte de los vértices que Narwhal construye de todos modos. [1]
Eso no significa que el orden sea gratuito. El costo se desplaza a tres lugares:
- Latencia en rondas. Un líder solo puede comprometerse cuando la ola termina y la moneda se revela, de modo que la latencia de commit se mide en varias rondas del DAG, no en un par de intercambios.
- Mala suerte con la moneda. Si la moneda elige a un validador lento o bizantino cuyo vértice no reunió soporte, esa ola no compromete nada y el sistema espera a la siguiente.
- Trabajo local. Cada réplica recorre el DAG para contar referencias y ordenar historias causales; es cómputo y memoria, no red.
Qué compra Tusk y qué cobra
Un consenso con pacemaker depende de timeouts bien calibrados y de un líder predecible, dos puntos que un adversario de red puede explotar.
Tusk elige al líder después de construir la ola y deriva el orden del DAG, por lo que el progreso no depende de ningún reloj.
Límites de Tusk y lo que vino después
Asíncrono no significa inmune a la red. Si los mensajes tardan, las rondas tardan, y el commit con ellas. Lo que Tusk garantiza es que ningún patrón de retrasos puede detener el progreso indefinidamente ni romper safety. [1]
Cuando la red es estable, esa robustez tiene un precio visible: un protocolo parcialmente síncrono puede comprometer en menos rondas porque no espera a que una moneda revele al líder. Bullshark ataca exactamente ese hueco. Mantiene el DAG de Narwhal y añade un camino rápido para periodos de sincronía, conservando un comportamiento asíncrono como respaldo. [4]
La comparación honesta con HotStuff sobre Narwhal tampoco es una escalera. Narwhal-HotStuff aprovecha el mismo mempool y puede tener baja latencia cuando los líderes son honestos y la red coopera, pero hereda la dependencia del pacemaker. [1] [3] Tusk elimina esa dependencia a cambio de latencia en el caso común. Elegir entre ambos es elegir qué falla te preocupa más: un adversario de red sofisticado o algunas rondas de latencia adicional en un día tranquilo.
Checklist de Tusk
5 de 5 revisados
Bibliografía académica
- [1]
G. Danezis, L. Kokoris-Kogias, A. Sonnino, and A. Spiegelman, "Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus," in Proc. EuroSys, pp. 34-50, 2022, doi: 10.1145/3492321.3519594
Versión publicada en EuroSys 2022 para el DAG mempool y la separación entre disponibilidad de datos y orden total; el ID estable conserva el año del preprint.
- [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.
- [4]
A. Spiegelman, N. Giridharan, A. Sonnino, and L. Kokoris-Kogias, "Bullshark," arXiv:2201.05677, 2022.
DAG-BFT de frontera para comparar con Narwhal/Tusk y HotStuff-like ordering.
Siguiente lectura: de Tusk a los motores DAG de producción
El siguiente paso natural son los motores DAG-BFT que parten de esta idea, empezando por Bullshark. [4] Para situar Tusk dentro del panorama completo, revisa el mapa de frontera HotStuff-2 y DAG-BFT y el mapa de blockchain y consenso, que muestra qué capítulos ya están publicados.
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.
HotStuff-2 y frontera moderna: dos fases, Twins y DAG-BFT
Cierre de la serie HotStuff: HotStuff-2, pruebas Byzantine con Twins, Narwhal/Tusk/Bullshark y cómo leer el estado del arte sin mezclar linajes.
Narwhal: cuando el mempool se vuelve DAG
Por qué Narwhal no es simplemente otro consenso, cómo separa disponibilidad de datos y ordenamiento, y cómo se conecta con HotStuff/Tusk.
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.
Firmas en BFT: threshold, aggregate y por qué AggQC no es un QC normal
Puente entre QC/highQC y Fast-HotStuff: firmas de réplicas, threshold signatures, aggregate signatures y la evidencia que transporta AggQC.