BFT frontier: notas de campo

Artículo 9 de 9

100%

completado al llegar aquí

Sistemas distribuidosNota de investigación12 min de lectura

Glosario técnico definitivo: De Abuelo a Zero-Knowledge en Consenso BFT

Glosario de consenso BFT agrupado por temas: modelo de fallas, quórums y certificados, PBFT y HotStuff, DAG-BFT con Narwhal y Tusk, y ResilientDB.

En 1 Minuto

Glosario de consulta para la serie de consenso BFT: términos del modelo de fallas, quórums y certificados, protocolos PBFT y HotStuff, DAG-BFT y ResilientDB, agrupados por tema y con la fuente primaria de las definiciones que vienen de papers.

Prerrequisitos
  • Consenso BFT desde cero (bft-consensus-from-zero)
  • Sincronía parcial y quórums (partial-synchrony-quorums-bft)
Cuándo Detenerte

Detente cuando puedas ubicar cada término en su grupo (modelo, certificados, protocolos o DAG) y decir de qué paper sale su definición cuando la tiene.

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.

Un glosario de consenso tiene una trampa: muchas palabras parecidas nombran objetos distintos. Un QC, un certificado de timeout y un certificado de disponibilidad se forman con firmas de una supermayoría, pero prueban cosas diferentes. Por eso este glosario no va en orden alfabético, sino agrupado por la pregunta que responde cada término. Cuando una definición sale de un paper, la cita está al lado; cuando es vocabulario general del área, se presenta como tal y enlaza al artículo de la serie que lo desarrolla.

Modelo de sistema y fallas

  • SMR (State Machine Replication): técnica para replicar un servicio haciendo que todas las réplicas correctas ejecuten las mismas operaciones en el mismo orden. El consenso BFT es la pieza que decide ese orden. PBFT se presenta precisamente como un algoritmo de replicación de máquina de estados que tolera fallas bizantinas.
  • Falla por crash: la réplica se detiene y no vuelve a enviar mensajes. Es el modelo de fallas más benigno.
  • Falla bizantina: la réplica puede comportarse de forma arbitraria: mentir, callar, enviar mensajes distintos a destinatarios distintos o coludirse con otras.
  • BFT (Byzantine Fault Tolerance): capacidad de un protocolo para mantener safety y liveness con hasta ff réplicas bizantinas.
  • Equivocación: caso particular de falla bizantina en el que una réplica firma dos mensajes en conflicto para la misma vista o ronda, por ejemplo dos votos o dos propuestas distintas.
  • Safety: ninguna pareja de réplicas correctas decide valores distintos para la misma posición del log. Es una propiedad de "nada malo ocurre" y debe valer con cualquier patrón de retrasos.
  • Liveness: las solicitudes de clientes correctos terminan ejecutándose. Es una propiedad de "algo bueno ocurre" y siempre depende de algún supuesto sobre la red.
  • Asincronía: modelo en el que los mensajes llegan en un tiempo finito pero sin cota conocida. El resultado de imposibilidad FLP muestra que en este modelo ningún protocolo determinista garantiza terminar si una sola réplica puede fallar; el detalle está en El teorema FLP.
  • Sincronía parcial: modelo intermedio en el que existe un instante desconocido a partir del cual los mensajes entre réplicas correctas llegan dentro de una cota. Es el modelo de PBFT, HotStuff y sus descendientes. Se desarrolla en Sincronía parcial y quórums.
  • GST (Global Stabilization Time): ese instante desconocido. Antes de GST la red puede retrasar mensajes de forma arbitraria; después, los entrega dentro de Δ\Delta.
  • Δ\Delta y δ\delta: Δ\Delta es la cota conocida o supuesta del retraso de red tras GST; δ\delta es el retraso real, que en buen clima suele ser mucho menor. La distancia entre ambas es lo que hace valiosa la responsividad.

Quórums, votos y certificados

  • nn, ff y la cota n=3f+1n = 3f + 1: nn es el número de réplicas y ff el número máximo de réplicas bizantinas toleradas. PBFT usa 3f+13f + 1 réplicas y argumenta que es el mínimo para tolerar ff fallas bizantinas en su modelo. La aritmética completa está en Quórums en acción.
  • Quórum: conjunto de 2f+12f + 1 réplicas, es decir n−fn - f cuando n=3f+1n = 3f + 1. Es lo máximo que se puede esperar sin depender de las ff réplicas que pueden no responder nunca.
  • Intersección de quórums: dos quórums de 2f+12f + 1 réplicas entre 3f+13f + 1 comparten al menos f+1f + 1 réplicas, y por tanto al menos una correcta. Casi todas las pruebas de safety de la familia BFT se apoyan en ese testigo correcto.
  • Certificado preparado (PBFT): conjunto de un pre-prepare y 2f2f prepares coincidentes que prueba que una petición quedó ordenada en una vista; se transporta en el cambio de vista.
  • QC (Quorum Certificate): en HotStuff, conjunto de n−fn - f votos firmados sobre la misma propuesta y la misma vista. El paper lo implementa con firmas umbral para que el certificado tenga tamaño constante.
  • highQC: el QC de vista más alta que conoce una réplica. Viaja en los mensajes new-view para que el siguiente líder construya sobre él.
  • lockedQC: el QC en el que una réplica queda bloqueada. Es memoria local de safety y no es intercambiable con highQC.
  • safeNode: predicado de HotStuff que decide si una réplica puede votar una propuesta: la propuesta debe extender el lockedQC o traer un QC de vista más alta que él.
  • TC (Timeout Certificate): en DiemBFT y Jolteon, conjunto de 2f+12f + 1 mensajes de timeout firmados para la misma ronda. Prueba que la ronda terminó sin QC y transporta los highQC reportados.
  • AggQC: en Fast-HotStuff, evidencia de cambio de vista que agrega los highQC reportados por un quórum. No es simplemente un QC más grande; se explica en Fast-HotStuff y AggQC.
  • Firma umbral y firma agregada: dos formas distintas de compactar firmas. La diferencia, junto con BLS, está en Firmas umbral, agregadas y AggQC.
Matriz de decisión

Cuatro certificados que no conviene confundir

Recomendado

QC

n - f votos sobre una propuesta y una vista.

Ideal para
probar que un bloque fue aceptado por un quórum (HotStuff)
Ojo con
no dice nada sobre disponibilidad de datos fuera del bloque

TC

2f + 1 timeouts firmados para la misma ronda.

Ideal para
probar que una ronda terminó sin QC (DiemBFT, Jolteon)
Ojo con
su difusión cuesta comunicación cuadrática

AggQC

highQC reportados por un quórum, agregados.

Ideal para
cambio de vista con commit de dos cadenas (Fast-HotStuff)
Ojo con
verificarlo es más caro que verificar un QC
Precaución

Certificado de disponibilidad

2f + 1 firmas sobre un bloque del DAG de Narwhal.

Ideal para
probar que los datos están almacenados por réplicas correctas
Ojo con
no ordena nada por sí solo
Todos reúnen firmas de una supermayoría; lo que cambia es la afirmación que prueban.

Protocolos y reglas de commit

  • Vista y líder: una vista es un periodo con un líder fijo, llamado primario en PBFT. Si el líder falla, las réplicas cambian de vista.
  • PBFT (Practical Byzantine Fault Tolerance): protocolo de Castro y Liskov que ordena cada petición con tres fases, pre-prepare, prepare y commit, y cambia de primario mediante un protocolo de cambio de vista. Se recorre paso a paso en PBFT en tres pasos.
  • Cambio de vista (view change): protocolo para sustituir al líder. En PBFT los mensajes de cambio de vista llevan certificados y su coste crece de forma cuadrática; el problema se analiza en View change cuadrático en PBFT.
  • HotStuff: protocolo BFT para sincronía parcial con líder rotativo cuyo cambio de vista tiene comunicación lineal y que alcanza responsividad optimista.
  • Responsividad optimista: tras GST, un líder correcto hace avanzar el protocolo al ritmo real de la red, esperando solo n−fn - f mensajes y no un tiempo máximo Δ\Delta.
  • Regla de tres cadenas (three-chain): en Chained HotStuff un bloque se confirma cuando él y sus dos descendientes directos quedan certificados por QCs de vistas consecutivas. La taxonomía completa está en Commit de una, dos y tres cadenas.
  • Abuelo: nombre informal del bloque que se confirma en la regla de tres cadenas. Si bb, b′b' y b′′b'' forman una cadena directa y aparece un QC para b′′b'', el bloque confirmado es bb, el abuelo de b′′b''.
  • Chained HotStuff: versión en pipeline en la que cada QC sirve a la vez como fase de varios bloques, de modo que cada vista inicia una propuesta nueva.
  • Pacemaker: componente de HotStuff responsable de liveness: lleva a las réplicas correctas a una vista común con un líder correcto tras GST, sin intervenir en las reglas de voto.
  • Tendermint: protocolo BFT con rondas y locks que comparte con HotStuff la idea de bloquearse en un valor; se compara en Tendermint desde la lente de HotStuff.
  • Jolteon y DiemBFT: descendientes de producción de HotStuff que confirman con dos cadenas a cambio de un cambio de vista cuadrático con certificados de timeout. Se tratan en DiemBFT, Jolteon y Ditto.

DAG-BFT: datos y orden por separado

  • Mempool: conjunto de transacciones recibidas que todavía no se han ordenado. En los diseños con líder clásico, el líder difunde los datos y a la vez propone el orden, lo que lo convierte en cuello de botella; véase El cuello de botella de la doble transmisión.
  • Narwhal: mempool basado en un DAG que separa la difusión fiable de datos del orden total. Cualquier protocolo de consenso puede ordenar después referencias compactas a esos datos.
  • DAG (Directed Acyclic Graph): en Narwhal, cada réplica produce un bloque por ronda, y cada bloque referencia certificados de bloques de la ronda anterior; el resultado es un grafo dirigido sin ciclos.
  • Certificado de disponibilidad: 2f+12f + 1 firmas sobre un bloque de Narwhal; garantiza que al menos f+1f + 1 réplicas correctas lo almacenan y que los datos se podrán recuperar.
  • Workers y primarios: en Narwhal, los workers difunden lotes de transacciones y el primario de cada réplica construye los bloques del DAG con los resúmenes de esos lotes, lo que permite escalar la difusión de datos.
  • Tusk: protocolo de consenso asíncrono que ordena el DAG de Narwhal sin mensajes adicionales, interpretando la propia estructura del grafo y usando una moneda común aleatoria para elegir líderes. Se analiza en Tusk: consenso asíncrono sin timeouts.
  • Narwhal-HotStuff: combinación evaluada en el mismo paper, en la que HotStuff ordena certificados de Narwhal en lugar de transacciones completas. La idea se desarrolla en Narwhal como mempool para HotStuff.
  • Ancla (anchor): en los protocolos DAG-BFT posteriores, como Bullshark, vértice elegido como líder de una ronda; al confirmarlo se ordena de forma determinista su historia causal en el DAG.

ResilientDB y otros términos de investigación

  • ResilientDB: fabric de blockchain permisionado y tolerante a fallas bizantinas, diseñado para desplegar réplicas en varias regiones geográficas.
  • GeoBFT: protocolo propuesto en el paper de ResilientDB que agrupa las réplicas en clusters según su ubicación geográfica. Cada cluster ordena localmente con un protocolo BFT de estilo PBFT y después comparte sus decisiones con los demás clusters, de modo que la comunicación de área amplia se reduce.
  • Topología consciente de la red: idea de diseño, central en GeoBFT, que trata de forma distinta los enlaces locales, baratos, y los enlaces entre regiones, caros.
  • Twins: metodología de testing que ejecuta dos instancias correctas de una misma réplica, con la misma identidad, para emular equivocación y pérdida de estado sin escribir código malicioso.
  • Época (epoch): periodo durante el cual el conjunto de validadores y sus claves permanece fijo. Cambiar de época es reconfigurar el comité.
  • Zero-Knowledge Proof (ZKP): prueba que convence a un verificador de que una afirmación es cierta sin revelar nada más. No forma parte de los protocolos de consenso de esta serie; aparece en blockchain para verificar cómputo o transacciones confidenciales.
Glossary Reference

Checklist de uso del glosario

4 de 4 revisados

Cómo usar este glosario sin mezclar conceptos.
Referencias

Bibliografía académica

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

    M. Yin, D. Malkhi, M. K. Reiter, G. G. Gueta, and I. Abraham, "HotStuff: BFT Consensus in the Lens of Blockchain," PODC, 2019.

    Definiciones de QC, highQC, lockedQC, safeNode, three-chain, Chained HotStuff, Pacemaker y responsividad optimista.

  2. [2]

    M. Castro and B. Liskov, "Practical Byzantine Fault Tolerance," OSDI, 1999.

    Replicación de máquina de estados con fallas bizantinas, 3f + 1 réplicas, fases y cambio de vista.

  3. [3]

    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 mempool, certificados de disponibilidad, Tusk y Narwhal-HotStuff.

  4. [4]

    S. Gupta, S. Rahnama, J. Hellings, and M. Sadoghi, "ResilientDB: Global Scale Resilient Blockchain Fabric," PVLDB, vol. 13, no. 6, pp. 868-883, 2020, doi: 10.14778/3380750.3380757

    Arquitectura del fabric ResilientDB y el protocolo geográfico GeoBFT.

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

Siguiente lectura

Si este glosario te dejó con dudas en los fundamentos, empieza por Consenso BFT desde cero. Si ya dominas el vocabulario y quieres ver cómo se combina en el estado del arte, sigue con HotStuff-2, DAG-BFT y Twins.

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.