HotStuff: de cero a estado del arte

Artículo 35 de 47

74%

completado al llegar aquí

Sistemas distribuidosNota de investigación11 min de lectura

El Grafo Dirigido Acíclico (DAG) como una máquina del tiempo inmutable

Cómo el DAG por rondas de Narwhal enlaza cada vértice con 2f+1 certificados previos y por qué Tusk y Bullshark derivan el orden total sin mensajes extra.

Ruta HotStuff: 0/47

En 1 Minuto

Comprende el DAG por rondas de los protocolos BFT modernos: cada vértice referencia al menos 2f + 1 vértices certificados de la ronda anterior, esas referencias fijan una historia causal, y protocolos como Tusk y Bullshark leen el orden total directamente del grafo.

Prerrequisitos
  • Narwhal y Bullshark: separación de Mempool y Consenso DAG (narwhal-dag-mempool-hotstuff)
  • Quórums en acción: mayorías honestas (quorums-en-accion-mayorias-honestas)
Cuándo Detenerte

Detente cuando puedas explicar qué es la historia causal de un vértice y por qué dos réplicas correctas que hacen commit del mismo ancla derivan el mismo orden sin intercambiar mensajes adicionales.

Glosario Rápido de Notación

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

f— Número máximo de fallas bizantinas

Cantidad de réplicas maliciosas o con fallas arbitrarias que tolera el sistema.

Ejemplo: n = 3f + 1
Haz clic en un símbolo para desplegar su definición formal y su aplicación en el protocolo.
Mapa conceptual

Ruta mental de la Estructura DAG Causal

  1. Referencias de ronda

    De la ronda r a la r-1

  2. Historia causal

    Todo lo alcanzable hacia atrás

  3. Anclas

    Vértices de líder

  4. Orden total

    Sin mensajes extra

Cómo las referencias del grafo fijan la historia y permiten derivar el orden.
Explicación Didáctica

Decodificador Didáctico de Conceptos BFT

Grafo Dirigido Acíclico (DAG)

En palabras simples: Una pared de ladrillos por hileras: cada ladrillo nuevo se apoya sobre varios ladrillos de la hilera de abajo. No puedes cambiar un ladrillo inferior sin que dejen de encajar los de arriba.

Detalle técnico: Vértices (headers certificados) y aristas dirigidas (referencias por hash a vértices de la ronda anterior) sin ciclos, porque toda arista apunta a una ronda menor.

Historia causal

En palabras simples: Un árbol genealógico: conocer a una persona implica conocer a sus padres, abuelos y a todo su linaje hacia atrás.

Detalle técnico: Conjunto de vértices alcanzables siguiendo aristas desde un vértice dado. Es lo que un protocolo DAG ordena cuando hace commit de un ancla.

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

En Narwhal y Bullshark y en el cuello de botella de la doble transmisión vimos por qué los protocolos modernos separan la difusión de datos del orden. Este artículo mira la estructura que queda en medio: el grafo dirigido acíclico que Narwhal construye ronda a ronda.

La metáfora de la "máquina del tiempo" sirve si se usa con cuidado. El DAG no mide tiempo físico: registra quién había visto qué en el momento de emitir cada vértice. Esa relación de precedencia causal es justo la información que un protocolo de consenso necesita para ordenar, y por eso el orden puede leerse del grafo en lugar de votarse aparte.

La geometría de las rondas

Narwhal organiza el DAG en rondas. En cada ronda, el primary de cada validador emite como máximo un header que contiene digests de batches y referencias a al menos 2f+12f + 1 certificados de la ronda anterior. Ese header se convierte en vértice del DAG cuando reúne un certificado de 2f+12f + 1 firmas.

Dos reglas dan forma al grafo. La primera es que un validador correcto firma a lo sumo un header por autor y por ronda, de modo que, aunque un autor bizantino emita dos headers distintos, solo uno de ellos puede certificarse. La segunda es que un validador avanza a la ronda r+1r + 1 solo cuando tiene 2f+12f + 1 certificados de la ronda rr.

Un ejemplo pequeño ayuda a fijar los números. Con f=1f = 1 hay cuatro validadores, A, B, C y D. Cada certificado necesita tres firmas, y cada vértice de la ronda r+1r + 1 debe apuntar a por lo menos tres vértices certificados de la ronda rr. Si D está caído o lento, A, B y C pueden seguir avanzando entre ellos; el DAG sigue creciendo sin D, que más tarde puede ponerse al día descargando los certificados que se formaron mientras tanto.

La primera regla es la intersección de quórums de siempre: dos certificados para el mismo autor y la misma ronda necesitarían dos conjuntos de 2f+12f + 1 firmas que comparten al menos una réplica correcta, y esa réplica no firma dos veces. La segunda regla impide que un validador corra solo hacia rondas futuras: necesita que una mayoría calificada ya haya terminado la ronda actual.

Figura 1

Estructura de rondas y vínculos causales en un DAG de Narwhal

Fuentes:

[1]
Estructura de rondas y vínculos causales en un DAG de Narwhal
Cómo leer esta figura

El diagrama muestra cuatro validadores A, B, C y D con un vértice por ronda en las rondas r, r+1 y r+2. Cada vértice de la ronda r+1 tiene aristas hacia tres vértices de la ronda r, y cada vértice de r+2 hacia tres de r+1, que es 2f + 1 con f = 1.

Visual original de TrautsLab. Cuatro validadores a lo largo de tres rondas; cada vértice de una ronda referencia al menos 2f + 1 vértices de la ronda anterior (aquí, tres de cuatro con f = 1).

Historia causal: por qué el pasado queda fijo

Llamemos historia causal de un vértice al conjunto de vértices alcanzables siguiendo sus aristas hacia atrás. Como las referencias son hashes de certificados, la historia causal de un vértice certificado queda determinada por el propio vértice. Cambiar cualquier vértice antiguo cambiaría su hash, y las referencias que ya apuntan a él dejarían de coincidir.

Esto produce la propiedad que motiva la metáfora. Si dos réplicas correctas tienen el mismo vértice certificado xx, tienen exactamente la misma historia causal de xx, aunque hayan recibido los vértices en distinto orden y en distintos momentos. El DAG local de cada réplica puede ir más adelante o más atrás, pero lo que está "debajo" de un vértice compartido es idéntico para todas.

También explica por qué el grafo es acíclico sin esfuerzo: toda arista apunta de una ronda a una ronda menor, así que nunca se puede volver al punto de partida. No hace falta un algoritmo especial para detectar ciclos; la numeración de rondas los excluye por construcción.

Narwhal resume las garantías del grafo en propiedades como integridad, disponibilidad de bloques y causalidad: un certificado implica que su historia causal está disponible y que cualquier réplica correcta que lo acepte puede recuperarla.

Lema

Historia causal compartida

Si dos réplicas correctas poseen el mismo vértice certificado x, ambas pueden reconstruir exactamente la misma historia causal de x, porque las aristas son referencias por hash a certificados y, por la regla de un header por autor y ronda, cada referencia identifica un único vértice.
Bosquejo de Demostración: Inducción hacia atrás por rondas: las referencias de x determinan los vértices de la ronda anterior; los de esos vértices determinan la ronda previa, y así hasta la ronda inicial.

Del grafo al orden: anclas y commit sin mensajes extra

Que todas las réplicas compartan historias causales no basta para ordenar. Falta elegir qué vértices sirven de puntos de corte. Los protocolos construidos sobre el DAG llaman a esos vértices líderes o anclas, y deciden su commit mirando únicamente la estructura del grafo.

Tusk, el protocolo asíncrono presentado junto a Narwhal, agrupa rondas en olas y usa una moneda aleatoria común para elegir el líder de cada ola después de que el grafo de esa ola ya está construido. Como el líder se revela tarde, el adversario no puede apuntar de antemano contra él. El commit depende de cuántos vértices de la ronda siguiente referencian al líder.

Bullshark conserva la misma interpretación local del DAG y añade un camino rápido para sincronía parcial: hay anclas predefinidas cada dos rondas, y un ancla se compromete cuando al menos f+1f + 1 vértices de la ronda siguiente la referencian. El paper destaca que este consenso no envía mensajes propios: los "votos" son las aristas que el DAG ya contiene.

Cuando una réplica compromete un ancla, primero revisa anclas anteriores no comprometidas que sean alcanzables desde ella y las ordena antes. Después ordena la historia causal de cada ancla, aún no entregada, con una regla determinista. Por el lema anterior, dos réplicas que comprometen la misma secuencia de anclas producen la misma secuencia de vértices.

Lo que el DAG no regala

La frase "consenso sin mensajes" necesita su letra pequeña. No hay mensajes adicionales para votar, pero construir el DAG ya cuesta: cada vértice certificado requiere difundir un header y recolectar 2f+12f + 1 firmas. El consenso es gratis solo porque su costo se pagó al construir el mempool.

Ese costo tiene un efecto en latencia. Certificar cada vértice añade viajes de red antes de que el vértice pueda ser referenciado. Mysticeti explora precisamente la alternativa de construir un DAG sin certificados explícitos por vértice para reducir la latencia de commit. El precio es que las garantías que antes daba el certificado deben recuperarse con otras reglas de commit.

Por último, el DAG no impide que un adversario retrase mensajes. Con anclas predefinidas, un ancla que no llega a tiempo simplemente no se compromete en su ronda, y su contenido se ordena después a través de un ancla posterior si es alcanzable desde ella. La historia queda fija; lo que el protocolo no promete es cuándo se vuelve definitiva.

Impacto de Negocio & Finanzas

Qué cambia al ordenar a partir de un DAG

Problema Comercial / Operacional

En un protocolo con líder, cada bloque necesita su propia ronda de votos además de la difusión de datos.

Solución del Paper (Insight Técnico)

En un DAG por rondas, las referencias entre vértices certificados funcionan como votos implícitos, de modo que el orden se deriva localmente.

Impacto para el Producto / Negocio: Menos tráfico dedicado al consenso, a cambio de certificar cada vértice y de razonar sobre anclas, olas y historias causales al depurar.
EstructuraDAG por rondasvértices certificados
Aristas por vérticeAl menos 2f + 1a la ronda anterior
Votos de consensoImplícitosaristas del DAG
Commit en Bullsharkf + 1 referenciassobre el ancla
DAG Causality

Checklist mental del Grafo DAG

4 de 4 revisados

Puntos clave sobre la estructura del grafo por rondas.
Referencias

Bibliografía académica

Formato IEEENumerado para ingeniería, sistemas y protocolos.
  1. [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

    PaperID: NARWHAL-TUSK-2021Abrir fuente (abre en otra pestaña)

    DAG por rondas con referencias a 2f + 1 certificados, propiedades de causalidad y el consenso asíncrono Tusk.

  2. [2]

    A. Spiegelman, N. Giridharan, A. Sonnino, and L. Kokoris-Kogias, "Bullshark," arXiv:2201.05677, 2022.

    Anclas, regla de commit con f + 1 referencias y orden de historias causales sin mensajes adicionales.

  3. [3]

    K. Babel et al., "Mysticeti: Reaching the Latency Limits with Uncertified DAGs," NDSS, 2025, doi: 10.14722/ndss.2025.240929

    Alternativa con DAG sin certificados por vértice para reducir latencia.

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

Siguiente lectura

Para ver cómo la moneda aleatoria de Tusk convierte este grafo en consenso asíncrono, continúa con Tusk: consenso asíncrono sin timeouts. Si quieres repasar por qué 2f+12f + 1 firmas impiden certificar dos headers en conflicto, vuelve a Quórums en acción.

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.