HotStuff: de cero a estado del arte
Artículo 13 de 47
28%
completado al llegar aquí
Sistemas distribuidosNota de investigación11 min de lectura
Por qué las firmas criptográficas (autenticación) reducen los nodos necesarios para el consenso
Mensajes orales frente a firmados: por qué las firmas eliminan la cota 3f+1 en el modelo síncrono de Lamport, pero no bajo la sincronía parcial de DLS.
Ruta HotStuff: 0/47
Prerequisitos recomendados
Si alguno de estos conceptos todavía está medio nebuloso, empieza por aquí. Te ahorra tropiezos y un par de cejas fruncidas.
Compara los modelos de mensajes orales y firmados de Lamport, Shostak y Pease, y entiende por qué las firmas reducen los nodos necesarios solo en el modelo síncrono, mientras que bajo sincronía parcial siguen haciendo falta 3f + 1 réplicas.
- Consenso BFT desde cero (bft-consensus-from-zero)
- Quórums en acción (quorums-en-accion-mayorias-honestas)
Detente cuando puedas explicar en qué modelo las firmas eliminan la cota 3f + 1, en cuál no, y qué aportan entonces a un protocolo como HotStuff.
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 de la autenticación en BFT
Mensajes orales
Se sabe quién habla, no se puede probar qué dijo otro
Mensajes firmados
La firma de un leal no se puede falsificar
Límite del modelo
Sincronía frente a sincronía parcial
Evidencia transferible
Quorum Certificate (QC)
Decodificador Didáctico de Conceptos BFT
En palabras simples: El juego del teléfono: cada niño sabe quién le habló, pero no puede probar qué dijo el primero de la fila.
Detalle técnico: El receptor conoce al remitente directo, pero el contenido de un mensaje reenviado depende de la honestidad de quien lo reenvía.
En palabras simples: Una carta con una firma que nadie más puede imitar: se puede reenviar, pero no alterar sin que se note.
Detalle técnico: La firma de un participante leal no se puede falsificar y cualquiera puede verificar su autenticidad.
El título de este artículo es cierto, pero solo en un modelo. En 1982, Lamport, Shostak y Pease presentaron dos algoritmos para el problema de los generales bizantinos: , con mensajes orales, y , con mensajes firmados. [1] El primero necesita más de generales para tolerar traidores; el segundo funciona con cualquier número.
Seis años después, Dwork, Lynch y Stockmeyer mostraron que, cuando la red es parcialmente síncrona, la cota bizantina es con autenticación y sin ella. [2] Los dos resultados no se contradicen: responden a modelos de tiempo distintos. Entender esa diferencia evita uno de los malentendidos más frecuentes sobre BFT, y explica por qué HotStuff usa firmas aunque no le ahorren réplicas.
Mensajes orales: lo que un traidor puede inventar
En el modelo oral, Lamport, Shostak y Pease asumen que todo mensaje enviado se entrega correctamente, que el receptor sabe quién se lo envió y que la ausencia de un mensaje se puede detectar. [1] Lo que no hay es forma de probar a un tercero qué te dijeron.
Ese hueco es suficiente para el traidor. Supongamos que el comandante envía la orden 1 al teniente , y es traidor:
- le dice al teniente : "el comandante me ordenó
0". - no tiene manera de comprobar si dijo
0o si inventó la orden. - Si además el comandante puede ser el traidor, tampoco sabe a quién creerle.
Con tres generales y un traidor, esa indistinguibilidad hace imposible el acuerdo. El artículo generaliza el resultado: con mensajes orales, ninguna solución con generales o menos tolera traidores, y el algoritmo la resuelve cuando hay más de . [1] La redundancia de generales leales es lo único que permite descartar los relatos falsos por mayoría.
Mensajes orales vs Mensajes firmados criptográficamente
Fuentes:
[1]Cómo leer esta figura
El diagrama compara dos paneles. En el panel izquierdo (Oral), el nodo A envía 'Voto A' al nodo B; B retransmite a C 'A votó B', engañando a C. En el panel derecho (Firmado), A adjunta la firma σ_A(Voto A). B no puede modificar el voto sin invalidar la verificación de clave pública de C.
Mensajes firmados: el algoritmo SM(m)
El modelo firmado añade un supuesto: la firma de un general leal no se puede falsificar, cualquier alteración del contenido de sus mensajes firmados se detecta, y cualquiera puede verificar la autenticidad de una firma. [1] Los traidores pueden seguir mintiendo sobre sus propias órdenes, pero ya no pueden atribuir a otro una orden que ese otro no firmó.
En , el comandante firma su orden y cada teniente que la reenvía añade su propia firma. Cada teniente acumula el conjunto de órdenes válidas que le llegan con firma del comandante. Si el comandante es leal, solo existe una orden firmada y todos la reciben. Si es traidor y firmó dos órdenes distintas, las cadenas de firmas hacen que los tenientes leales terminen viendo el mismo conjunto, y aplican la misma regla de decisión sobre él.
Con esas reglas, resuelve el problema para cualquier número de generales siempre que haya a lo sumo traidores. [1] La cota de más de desaparece porque ya no hace falta superar en número a los relatos falsos: los relatos falsos sobre otros no se pueden construir.
Mensajes firmados
La letra pequeña: el modelo síncrono
Hay un supuesto que es fácil pasar por alto: que la ausencia de un mensaje se puede detectar. El propio artículo explica que eso exige un tiempo máximo conocido para generar y transmitir mensajes, y relojes razonablemente sincronizados, de modo que un receptor pueda dar por ausente lo que no llegó a tiempo. [1] Es decir, y son algoritmos para un sistema síncrono.
En ese sistema, un general que no responde a tiempo es, por definición, defectuoso, y el algoritmo puede reemplazar su mensaje por un valor por defecto. Esa capacidad de distinguir "callado" de "lento" es la que deja de existir cuando la red solo es parcialmente síncrona, y con ella se cae la ventaja de las firmas en el número de nodos.
Sincronía parcial: por qué la cota 3f + 1 vuelve aun con firmas
En el modelo parcialmente síncrono, los mensajes pueden retrasarse de forma arbitraria hasta un tiempo de estabilización global desconocido. Para ese modelo, DLS demuestra que el consenso tolerante a fallas bizantinas es posible si y solo si , y esa cota es la misma para el modelo autenticado que para el no autenticado. [2]
Una forma intuitiva de verlo: antes de GST, ninguna réplica puede esperar más de respuestas, porque réplicas podrían no responder nunca. Entre las respuestas recibidas, hasta pueden venir de réplicas bizantinas, y las que faltan pueden ser de réplicas correctas retrasadas. Para que dos conjuntos de respuestas compartan una réplica correcta hace falta , la misma cuenta que se desarrolla en Quórums en acción.
Las firmas no ayudan en esa cuenta por dos razones. Primero, una réplica bizantina puede firmar válidamente dos votos contradictorios; la firma prueba quién votó, no que votó una sola vez. Segundo, el problema antes de GST es el silencio, y una firma no hace llegar antes un mensaje retrasado. Este razonamiento es una lectura informal; la demostración está en el artículo de DLS. [2]
Qué sí compran las firmas en HotStuff
Si no reducen las réplicas, ¿por qué todos los protocolos de la familia HotStuff firman sus votos? Porque convierten un hecho local, "recibí votos para este bloque", en evidencia que cualquier otra réplica puede verificar sin repetir la conversación.
HotStuff asume réplicas y sincronía parcial, y define un Quorum Certificate como un conjunto de votos firmados sobre la misma propuesta y la misma vista; el artículo usa firmas de umbral para que ese QC sea un único objeto compacto. [3] Un líder nuevo puede presentar el QC más alto que conoce y las demás réplicas pueden comprobarlo sin confiar en él. Esa transferibilidad es la que permite que el cambio de vista y las reglas de bloqueo se apoyen en un único certificado por mensaje, con una cantidad de autenticadores lineal en el número de réplicas. [3]
El costo de esa evidencia depende del esquema criptográfico. Boneh, Lynn y Shacham propusieron una firma basada en emparejamientos cuya longitud es aproximadamente la mitad de una firma DSA de seguridad comparable. [4] Esa construcción es la base de las firmas BLS; cómo se agregan o se combinan por umbral para formar un QC se trata en Firmas de umbral, agregadas y AggQC.
Qué aporta la autenticación en un comité BFT
Sin firmas, una réplica no puede probarle a otra qué votos recibió, y cada decisión debe reconstruirse con nuevas rondas de mensajes.
Bajo sincronía parcial las firmas no reducen el comité por debajo de 3f + 1, pero convierten los votos en evidencia verificable y reenviable.
Checklist mental de autenticación BFT
4 de 4 revisados
Bibliografía académica
- [1]
L. Lamport, R. Shostak, and M. Pease, "The Byzantine Generals Problem," ACM TOPLAS, vol. 4, no. 3, pp. 382-401, 1982, doi: 10.1145/357172.357176
Algoritmos OM(m) y SM(m), sus supuestos de comunicación síncrona y la cota de más de 3m generales con mensajes orales.
- [2]
C. Dwork, N. Lynch, and L. Stockmeyer, "Consensus in the Presence of Partial Synchrony," JACM, 1988.
Cota n >= 3f + 1 para fallas bizantinas bajo sincronía parcial, con y sin autenticación.
- [3]
M. Yin, D. Malkhi, M. K. Reiter, G. G. Gueta, and I. Abraham, "HotStuff: BFT Consensus in the Lens of Blockchain," PODC, 2019.
QC como n - f votos firmados con firmas de umbral, usado como evidencia transferible entre vistas.
- [4]
D. Boneh, B. Lynn, and H. Shacham, "Short Signatures from the Weil Pairing," ASIACRYPT, 2001.
Firma corta basada en emparejamientos, base de las firmas BLS.
Siguiente lectura
Para ver cómo se usan los QCs en las reglas de voto y de commit, continúa con QC, highQC y three-chain. Si te interesa la parte criptográfica, el siguiente paso es Firmas de umbral, agregadas y AggQC.
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.
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.
El concepto de GST: El momento mágico en el que la tormenta de red cesa
Qué es GST en el modelo DLS de 1988: safety en toda ejecución, liveness tras la estabilización y las dos variantes, con Δ desconocida o válida tras GST.
El modelo de fallas de parada u omisión de DLS: El paso previo a BFT
Jerarquía de fallas en DLS 1988: parada, omisión y bizantina, y por qué bajo sincronía parcial exigen n >= 2f+1 o n >= 3f+1 réplicas, con o sin firmas.
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.