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.
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.
- Consenso BFT desde cero (bft-consensus-from-zero)
- Sincronía parcial y quórums (partial-synchrony-quorums-bft)
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 de Notación Matemática y Criptográfica
Cantidad de réplicas maliciosas o con fallas arbitrarias que tolera el sistema.
n = 3f + 1Un 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. [2]
- 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. [2]
- BFT (Byzantine Fault Tolerance): capacidad de un protocolo para mantener safety y liveness con hasta 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 .
- y : es la cota conocida o supuesta del retraso de red tras GST; 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
- , y la cota : es el número de réplicas y el número máximo de réplicas bizantinas toleradas. PBFT usa réplicas y argumenta que es el mínimo para tolerar fallas bizantinas en su modelo. [2] La aritmética completa está en Quórums en acción.
- Quórum: conjunto de réplicas, es decir cuando . Es lo máximo que se puede esperar sin depender de las réplicas que pueden no responder nunca.
- Intersección de quórums: dos quórums de réplicas entre comparten al menos 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 prepares coincidentes que prueba que una petición quedó ordenada en una vista; se transporta en el cambio de vista. [2]
- QC (Quorum Certificate): en HotStuff, conjunto de 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. [1]
- highQC: el QC de vista más alta que conoce una réplica. Viaja en los mensajes
new-viewpara que el siguiente líder construya sobre él. [1] - lockedQC: el QC en el que una réplica queda bloqueada. Es memoria local de safety y no es intercambiable con
highQC. [1] - safeNode: predicado de HotStuff que decide si una réplica puede votar una propuesta: la propuesta debe extender el
lockedQCo traer un QC de vista más alta que él. [1] - TC (Timeout Certificate): en DiemBFT y Jolteon, conjunto de mensajes de timeout firmados para la misma ronda. Prueba que la ronda terminó sin QC y transporta los
highQCreportados. - AggQC: en Fast-HotStuff, evidencia de cambio de vista que agrega los
highQCreportados 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.
Cuatro certificados que no conviene confundir
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. [2]
- 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. [2] 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. [1]
- Responsividad optimista: tras GST, un líder correcto hace avanzar el protocolo al ritmo real de la red, esperando solo mensajes y no un tiempo máximo . [1]
- 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. [1] 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 , y forman una cadena directa y aparece un QC para , el bloque confirmado es , el abuelo de .
- 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. [1]
- 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. [1]
- 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. [3]
- 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. [3]
- Certificado de disponibilidad: firmas sobre un bloque de Narwhal; garantiza que al menos réplicas correctas lo almacenan y que los datos se podrán recuperar. [3]
- 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. [3]
- 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. [3] 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. [3] 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. [4]
- 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. [4] [2]
- 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. [4]
- 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.
Checklist de uso del glosario
4 de 4 revisados
Bibliografía académica
- [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]
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]
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
DAG mempool, certificados de disponibilidad, Tusk y Narwhal-HotStuff.
- [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.
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.
Series relacionadas
HotStuff: de cero a estado del arte
Ruta progresiva para entender consenso BFT moderno: quórums, sincronía parcial, locks, taxonomía one/two/three-chain, QC/highQC, multipipeline, view-change, responsiveness, AggQC, Fast-HotStuff, sync y frontera DAG-BFT.
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.
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.
BFT y Agentes de IA: Coordinar decisiones de modelos LLM sin punto de falla
Qué significa tratar a un agente LLM que falla o miente como réplica bizantina: votos, quórums, verificación y lo que afirman dos preprints de 2025.
BFT en Computación en el Borde (Edge/IoT): Consenso con conectividad intermitente
Qué cuesta el consenso bizantino en dispositivos IoT y qué propone EBRC: comité elegido por reputación y VRF, votación en dos fases y una evaluación limitada.
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.
Uno, dos y tres chains: la taxonomía de commit antes de HotStuff
Guía para entender commits de una, dos y tres cadenas, y cómo esa taxonomía prepara QC, highQC, multipipeline y Fast-HotStuff.