HotStuff: de cero a estado del arte

Artículo 6 de 47

13%

completado al llegar aquí

Sistemas distribuidosNota de investigación14 min de lectura

Quórums en acción: ¿Por qué 2f+1 votos garantizan que las mayorías se crucen?

Por qué dos quórums de 2f+1 votos entre 3f+1 réplicas comparten al menos f+1 nodos y cómo esa réplica correcta común impide certificar bloques en conflicto.

Ruta HotStuff: 0/47

En 1 Minuto

Comprende la demostración formal de la intersección de quórums en consenso BFT: por qué la supermayoría q = 2f + 1 garantiza que dos decisiones cualesquiera compartan al menos una réplica correcta.

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 demostrar algebraicamente que dos quórums de tamaño 2f + 1 en una red de 3f + 1 nodos se solapan en al menos f + 1 nodos.

Glosario Rápido de Notación

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

n— Término (n)

Definición conceptual para n dentro del contexto de consenso BFT.

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 Intersección de Quórums BFT

  1. Comité Mínimo

    n = 3f + 1

  2. Tamaño de Quórum

    q = 2f + 1

  3. Solapamiento de Quórums

    2q - n = f + 1

  4. Memoria Correcta

    Al menos 1 nodo correcto

Visualización paso a paso de por qué las mayorías correctas se solapan.
Explicación Didáctica

Decodificador Didáctico de Conceptos BFT

Principio del Palomar (Pigeonhole Principle)

En palabras simples: Si tienes 10 palomas y 9 nidos, al menos un nido tendrá 2 palomas. En BFT, si dos grupos ocupan cada uno más de dos tercios de la red, es imposible que no compartan miembros.

Detalle técnico: Argumento combinatorio: la suma de las cardinalidades de dos quórums supermayoritarios excede el tamaño total del comité.

Intersección Quórum (f + 1)

En palabras simples: Dos comisiones de 7 miembros en una cámara de 10 legisladores siempre comparten al menos 4 sillas. Si 3 legisladores son corruptos, la cuarta silla pertenece a un legislador honesto.

Detalle técnico: Intersección mínima |Q1 ∩ Q2| >= f + 1 que garantiza la presencia de al menos un nodo correcto en la intersección.

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

En Consenso BFT desde cero aparecieron tres números que se repiten en toda la literatura: n=3f+1n = 3f + 1 réplicas, quórums de q=2f+1q = 2f + 1 votos y la capacidad de tolerar ff fallas bizantinas. Memorizarlos es fácil. Saber defenderlos frente a un diseño alternativo es otra cosa, y es lo que separa a quien configura un comité de quien lo entiende.

¿Por qué exactamente 2f+12f + 1? ¿Qué se rompe si exigimos 2f2f? ¿Por qué no subir a 3f3f para estar "más seguros"? Este artículo responde las tres preguntas con una sola herramienta, la inclusión-exclusión de conjuntos, y muestra cómo PBFT y HotStuff convierten esa aritmética en un invariante de safety.

Del umbral de Lamport al tamaño de quórum

El punto de partida histórico es el problema de los generales bizantinos. Lamport, Shostak y Pease demostraron que, con mensajes orales (no firmados), ningún algoritmo resuelve el acuerdo si un tercio o más de los participantes son traidores; hacen falta más de 3m3m generales para tolerar mm traidores. El mismo trabajo muestra que con mensajes firmados el umbral cambia, de modo que conviene recordar que 3f+13f + 1 depende del modelo y no es una constante universal.

Para los protocolos que nos interesan, el modelo relevante es la sincronía parcial. Dwork, Lynch y Stockmeyer probaron que, en ese modelo y con fallas bizantinas, el consenso es posible si y solo si n≥3f+1n \ge 3f + 1, incluso cuando las réplicas pueden autenticar sus mensajes. Es decir, las firmas ayudan a detectar equivocaciones, pero no permiten bajar del umbral de un tercio cuando la red puede retrasar mensajes de forma arbitraria antes de estabilizarse.

PBFT tomó ese límite y lo convirtió en ingeniería: con n=3f+1n = 3f + 1 réplicas, cada fase del protocolo avanza cuando una réplica reúne 2f+12f + 1 mensajes coincidentes, y ese conjunto funciona como certificado. HotStuff conserva exactamente la misma regla, aunque la empaqueta en un objeto explícito: un QC es un conjunto de n−fn - f votos firmados sobre la misma propuesta y la misma vista. Con n=3f+1n = 3f + 1, n−fn - f es precisamente 2f+12f + 1.

La demostración algebraica del solapamiento

Imaginemos un conjunto de réplicas de tamaño n=3f+1n = 3f + 1. Supongamos que el protocolo exige formar un quórum de qq respuestas para validar un bloque o una transacción.

Si dos quórums Q1Q_1 y Q2Q_2 aprueban dos decisiones (por ejemplo, Q1Q_1 aprueba la transacción AA y Q2Q_2 aprueba la transacción BB), queremos acotar el tamaño de su intersección ∣Q1∩Q2∣|Q_1 \cap Q_2|.

Por el principio de inclusión-exclusión de conjuntos:

∣Q1∪Q2∣=∣Q1∣+∣Q2∣−∣Q1∩Q2∣|Q_1 \cup Q_2| = |Q_1| + |Q_2| - |Q_1 \cap Q_2|

Dado que el número total de réplicas en la red es nn, la unión de cualquier par de quórums no puede exceder nn:

∣Q1∪Q2∣≤n|Q_1 \cup Q_2| \le n

Sustituyendo la desigualdad:

∣Q1∣+∣Q2∣−∣Q1∩Q2∣≤n|Q_1| + |Q_2| - |Q_1 \cap Q_2| \le n

∣Q1∩Q2∣≥∣Q1∣+∣Q2∣−n|Q_1 \cap Q_2| \ge |Q_1| + |Q_2| - n

Sustituyendo el tamaño de cada quórum q=2f+1q = 2f + 1 y el tamaño del comité n=3f+1n = 3f + 1:

∣Q1∩Q2∣≥(2f+1)+(2f+1)−(3f+1)|Q_1 \cap Q_2| \ge (2f + 1) + (2f + 1) - (3f + 1)

∣Q1∩Q2∣≥4f+2−3f−1|Q_1 \cap Q_2| \ge 4f + 2 - 3f - 1

∣Q1∩Q2∣≥f+1|Q_1 \cap Q_2| \ge f + 1

La cota es ajustada: existen pares de quórums que comparten exactamente f+1f + 1 réplicas, de modo que el protocolo no puede contar con un margen mayor. Con f=1f = 1 hay 44 réplicas, quórums de 33 y un cruce mínimo de 22. Con f=2f = 2 hay 77 réplicas, quórums de 55 y un cruce de al menos 33. Con f=3f = 3 hay 1010 réplicas, quórums de 77 y un cruce de al menos 44, el caso de la analogía parlamentaria del inicio.

Teorema

Teorema de Intersección de Quórums BFT

Para cualquier par de quórums Q1, Q2 en un sistema BFT de n = 3 réplicas con tamaño de quórum , la intersección |Q1 ∩ Q2| contiene al menos réplicas. Por consiguiente, dado que el número máximo de réplicas bizantinas es f, existe al menos una réplica correcta h en la intersección Q1 ∩ Q2.
Bosquejo de Demostración: Como |Q1 ∩ Q2| >= y a lo sumo f réplicas en toda la red son bizantinas, por el principio del palomar existe al menos una réplica correcta h ∈ (Q1 ∩ Q2) que jamás votará por dos propuestas contradictorias en la misma vista.

Por qué una réplica correcta en el cruce impide la bifurcación

El punto crítico no es solo cuántos nodos se cruzan, sino quiénes se cruzan.

Si el cruce fuera de ff nodos o menos, el adversario podría controlar a todos los nodos de la intersección. Un nodo bizantino puede equivocar: firmar un voto para AA que entrega al líder que arma Q1Q_1 y otro voto para BB que entrega a quien arma Q2Q_2. Ambos certificados quedarían completos y dos réplicas correctas podrían ejecutar historias incompatibles, que es exactamente la forma de un doble gasto.

Al forzar ∣Q1∩Q2∣≥f+1|Q_1 \cap Q_2| \ge f + 1:

  1. El adversario puede controlar a lo sumo ff nodos en el solapamiento.
  2. Queda obligatoriamente al menos un nodo correcto (hh) en el solapamiento.
  3. Las réplicas correctas siguen las reglas del protocolo: en PBFT aceptan a lo sumo un pre-prepare por vista y número de secuencia, y en HotStuff votan a lo sumo por una propuesta en cada fase de una vista.

Por lo tanto, hh no aportará su voto a la segunda propuesta en conflicto, y el quórum Q2Q_2 no puede completarse. Nótese la forma de la prueba: no razonamos sobre lo que hace el adversario, sino sobre lo que no puede hacer una sola réplica correcta. Ese patrón, "encontrar un testigo correcto en la intersección", reaparece en casi todas las pruebas de safety de la familia BFT.

Análisis de Escenario de Ejecución

Análisis Comparativo de Tamaños de Quórum

✓ Ruta Feliz (Normal Path)
Condición Inicial

Comportamiento del Protocolo

Invariante de Seguridad Preservado

Tiempo / Latencia de Resolución

La ventana entre safety y liveness

¿Por qué no elegimos un quórum más grande, como q=3fq = 3f, para estar aún más seguros? Porque el consenso distribuido debe equilibrar safety (no decidir cosas incompatibles) con liveness (seguir decidiendo).

Las dos propiedades imponen cotas opuestas sobre qq. Para safety necesitamos que la intersección supere a los bizantinos:

2q−n≥f+1⟺q≥n+f+122q - n \ge f + 1 \quad \Longleftrightarrow \quad q \ge \frac{n + f + 1}{2}

Para liveness necesitamos que el quórum pueda formarse aunque ff réplicas callen para siempre, porque un nodo bizantino puede simplemente no votar:

q≤n−fq \le n - f

La ventana es no vacía solo si n+f+12≤n−f\frac{n + f + 1}{2} \le n - f, es decir, si n≥3f+1n \ge 3f + 1. Este cálculo no reemplaza la prueba de imposibilidad de los papers, pero muestra de dónde sale intuitivamente el umbral: con n=3f+1n = 3f + 1 ambas cotas coinciden en q=2f+1q = 2f + 1, y no queda margen para elegir otro valor.

Con q=3fq = 3f en una red de 3f+13f + 1 nodos, estaríamos asumiendo que como máximo una réplica falla. Si ff nodos sufren una caída o un ataque de denegación de servicio, solo responderán 2f+12f + 1 réplicas, y para f≥2f \ge 2 eso es menos que 3f3f. La red no viola safety, pero queda paralizada. Por ende, q=2f+1q = 2f + 1 es el único punto que cumple ambas condiciones a la vez:

  • Suficientemente grande para garantizar ∣Q1∩Q2∣≥f+1|Q_1 \cap Q_2| \ge f + 1 (safety).
  • Suficientemente pequeño para formarse con las 2f+12f + 1 réplicas correctas sin esperar a las ff restantes (liveness).

La intersección es una propiedad puramente combinatoria: vale con cualquier patrón de retrasos. La formación del quórum, en cambio, necesita que los mensajes de 2f+12f + 1 réplicas correctas lleguen a tiempo, y eso solo está garantizado después de GST en el modelo de sincronía parcial. Esa asimetría explica por qué en Sincronía parcial y quórums safety no espera a la red y liveness sí.

Impacto de Negocio & Finanzas

Impacto Operativo de la Intersección de Quórums

Problema Comercial / Operacional

Configurar incorrectamente el parámetro de quórum en una red BFT permisionada puede permitir que dos líderes certifiquen transferencias contradictorias.

Solución del Paper (Insight Técnico)

Con n = 3f + 1 y q = 2f + 1, dos certificados para la misma vista siempre comparten una réplica correcta que se niega a votar dos veces.

Impacto para el Producto / Negocio: Un historial contable auditable que no depende de que la red se comporte bien para mantenerse consistente.
Comité Totaln = 3f + 1nodos en el consenso
Quórum Mínimoq = 2f + 1supermayoría BFT
Solapamiento Correcto>= 1 Nodogarantía de safety
Tolerancia a Fallasf Nodoscaídos o maliciosos

Intersección entre vistas: lo que el cruce no resuelve solo

La regla "una réplica correcta no vota dos propuestas distintas en la misma vista y fase" protege contra dos certificados en conflicto dentro de la misma vista. Pero los protocolos cambian de líder, y una réplica correcta sí puede votar AA en la vista vv y BB en la vista v+1v + 1. Si nada más la restringiera, la intersección por sí sola no impediría revertir una decisión ya tomada.

La solución es transportar la memoria de la intersección a través del cambio de vista. En PBFT, el nuevo líder debe reunir mensajes de cambio de vista de 2f+12f + 1 réplicas, y cada uno incluye los certificados preparados que esa réplica conoce. Como cualquier decisión anterior fue certificada por 2f+12f + 1 réplicas, ese conjunto de cambio de vista se cruza con el quórum de la decisión en al menos una réplica correcta, que reporta el certificado y obliga al nuevo líder a respetarlo.

HotStuff aplica la misma aritmética con otros objetos. Cada réplica guarda un lockedQC, y el predicado safeNode solo permite votar una propuesta que extienda ese bloqueo o que traiga un QC de vista más alta. El argumento de safety vuelve a apoyarse en un testigo correcto: si un bloque se confirmó, un quórum quedó bloqueado en él, y cualquier QC conflictivo posterior necesitaría el voto de alguna réplica correcta de ese quórum, que su regla de bloqueo le prohíbe emitir. Los detalles están en QC, highQC y three-chain.

Lo importante para este artículo es la separación de responsabilidades. La intersección de quórums aporta el testigo; los locks y las reglas de cambio de vista aseguran que el testigo recuerde lo que vio. Sin intersección, los locks no alcanzan a nadie; sin locks, la intersección solo protege una vista aislada.

Quorum Math

Checklist mental de la Intersección de Quórums

5 de 5 revisados

Preguntas de verificación para el diseño de comités BFT.
Referencias

Bibliografía académica

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

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

    Quórums de 2f + 1 entre 3f + 1 réplicas y certificados transportados en el cambio de vista.

  2. [2]

    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

    PaperID: LAMPORT-BYZANTINE-1982Abrir fuente (abre en otra pestaña)

    Artículo seminal que establece el umbral de más de 3m generales con mensajes orales.

  3. [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 de n - f votos, lockedQC y el predicado safeNode como uso de la intersección entre vistas.

  4. [4]

    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 y el papel de GST en liveness.

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

Siguiente lectura

Para ver cómo la intersección convive con GST y los timeouts, continúa con Sincronía parcial y quórums. Si quieres seguir el mismo testigo correcto a través de PBFT, Tendermint y Streamlet, el puente está en PBFT, Tendermint y Streamlet.

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.