HotStuff: de cero a estado del arte

Artículo 16 de 47

34%

completado al llegar aquí

Sistemas distribuidosNota de investigación13 min de lectura

La pesadilla del View-Change cuadrático en PBFT: Por qué cambiar de líder apaga la red

Qué viaja en VIEW-CHANGE y NEW-VIEW de PBFT, por qué su costo en autenticadores crece hasta O(n^3) y cómo HotStuff lo reduce a un highQC lineal.

Ruta HotStuff: 0/47

En 1 Minuto

Desarma el cambio de vista de PBFT: qué certificados viajan en VIEW-CHANGE y NEW-VIEW, por qué el costo total en autenticadores crece con n hasta O(n^3) y qué cambia cuando HotStuff transporta un único highQC por réplica.

Prerrequisitos
  • Consenso BFT desde cero (bft-consensus-from-zero)
  • PBFT (1999) y sus tres pasos (pbft-1999-tres-pasos-confirmacion)
Cuándo Detenerte

Detente cuando puedas detallar qué datos contiene un mensaje VIEW-CHANGE en PBFT, por qué su tamaño crece con n y con las solicitudes preparadas, y por qué NEW-VIEW debe reenviar esos expedientes.

Glosario Rápido de Notación

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

v— Vista (View / Round)

Número de vista o ronda actual. Cada vista tiene un único líder designado.

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

Ruta mental del Cambio de Vista en PBFT

  1. 1. Timeout de Réplicas

    Sospecha del primario

  2. 2. Construcción de Expediente

    Checkpoint C y conjunto P

  3. 3. Mensaje NEW-VIEW

    Líder junta 2f + 1 expedientes

  4. 4. Verificación del expediente

    Costo que crece con n

La secuencia de mensajes de emergencia cuando falla el primario.
Explicación Didáctica

Decodificador Didáctico de Conceptos BFT

El Expediente VIEW-CHANGE de PBFT

En palabras simples: Para nombrar a un nuevo gerente, cada empleado entrega copia firmada de todas las aprobaciones pendientes que vio, con las firmas de los colegas que las respaldaron.

Detalle técnico: Mensaje <VIEW-CHANGE, v+1, n, C, P, i> con el checkpoint estable n, su prueba C y el conjunto P de certificados Prepared posteriores a ese checkpoint.

Complejidad O(n^3) en View-Change

En palabras simples: El nuevo gerente no puede resumir: debe reenviar a toda la oficina las carpetas completas de una mayoría de empleados para que cada uno compruebe su decisión.

Detalle técnico: NEW-VIEW incluye 2f + 1 expedientes de O(n) firmas cada uno y se envía a n réplicas: O(n^3) autenticadores en total, para una ventana de solicitudes acotada.

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

Un protocolo BFT no se juzga solo por cómo funciona cuando todo va bien, sino por cómo sobrevive cuando el líder cae o se vuelve malicioso. En PBFT, ese momento lo gobierna el protocolo de view change: las réplicas abandonan la vista vv, eligen al primario de la vista v+1v+1 y reconstruyen el estado de las solicitudes que estaban a medio camino.

Es en ese mecanismo donde PBFT paga su mayor costo de comunicación. No porque el diseño sea descuidado, sino porque la seguridad entre vistas se sostiene con expedientes completos de evidencia en lugar de con un certificado compacto y portable. Vamos a ver qué viaja, cuánto pesa y por qué HotStuff decidió reorganizar el problema.

Qué protege el cambio de vista en PBFT

En el camino normal, una solicitud pasa por pre-prepare, prepare y commit. Una réplica considera una solicitud prepared cuando tiene el pre-prepare del primario y 2f2f prepares coincidentes de otras réplicas para la misma vista, número de secuencia y digest.

El problema aparece si el primario falla justo después de que alguna réplica correcta ejecutó una solicitud. Esa ejecución ocurrió porque un quórum de 2f+12f + 1 réplicas la tenía preparada. El nuevo primario no puede ignorar esa historia: si asignara otro contenido al mismo número de secuencia, dos réplicas correctas ejecutarían operaciones distintas en la misma posición del log.

Por eso el cambio de vista tiene una sola obligación de safety: toda solicitud que pudo comprometerse en la vista anterior debe reaparecer con el mismo número de secuencia en la vista nueva. La pregunta es cómo demostrarlo sin confiar en la palabra del nuevo primario, que también podría ser bizantino.

La respuesta de PBFT es transparente y costosa: cada réplica entrega su evidencia, y el nuevo primario reenvía esa evidencia para que todos puedan auditar su decisión.

Anatomía del mensaje VIEW-CHANGE

Cuando el temporizador de una réplica expira mientras espera ejecutar una solicitud, la réplica deja de participar en la vista vv y multidifunde a todas las réplicas un mensaje firmado:

⟨VIEW-CHANGE,v+1,n,C,P,i⟩σi\langle\text{VIEW-CHANGE}, v+1, n, C, P, i\rangle_{\sigma_i}

Sus campos son:

  • v+1v+1: la vista a la que la réplica quiere migrar.
  • nn: el número de secuencia del último checkpoint estable que conoce la réplica ii.
  • CC: el conjunto de 2f+12f + 1 mensajes de checkpoint que prueba que ese checkpoint es correcto.
  • PP: un conjunto PmP_m por cada solicitud mm que quedó preparada en la réplica con número de secuencia mayor que nn.

Cada PmP_m contiene un pre-prepare válido y 2f2f prepares firmados por réplicas distintas. Es decir, cada solicitud en vuelo arrastra un certificado de tamaño proporcional a nn. Si en la ventana entre checkpoints hay kk solicitudes preparadas, el mensaje transporta del orden de k⋅nk \cdot n firmas, más las 2f+12f + 1 del checkpoint.

Figura 1

La sobrecarga del mensaje VIEW-CHANGE en PBFT

Fuentes:

[1]
La sobrecarga del mensaje VIEW-CHANGE en PBFT
Cómo leer esta figura

El diagrama contrapone dos paneles con cuatro réplicas. En el camino feliz, la réplica primaria envía flechas a las otras tres. En el cambio de vista, todas las réplicas se conectan con todas mediante flechas bidireccionales, porque cada una multidifunde su mensaje VIEW-CHANGE con su checkpoint y sus certificados Prepared. El nuevo primario luego empaqueta 2f + 1 de esos expedientes en NEW-VIEW.

Visual original de TrautsLab. A la izquierda, el camino feliz: un primario estable difunde mensajes pequeños. A la derecha, el cambio de vista: cada réplica multidifunde su expediente P, de modo que circulan O(n^2) mensajes de tamaño O(n).

Conviene subrayar algo: kk no crece sin límite. PBFT acota las solicitudes en vuelo con marcas de agua entre checkpoints, así que el tamaño del expediente depende de esa ventana y de nn. Para hablar de escalabilidad con el número de réplicas, se suele tratar la ventana como constante y mirar cómo crece el costo con nn.

NEW-VIEW: el expediente que el nuevo primario debe reenviar

El primario de la vista v+1v+1 espera 2f2f mensajes VIEW-CHANGE válidos de otras réplicas. Con ellos y el suyo propio arma el conjunto V\mathcal{V} y difunde:

⟨NEW-VIEW,v+1,V,O⟩σp\langle\text{NEW-VIEW}, v+1, \mathcal{V}, \mathcal{O}\rangle_{\sigma_{p}}

O\mathcal{O} es el conjunto de nuevos pre-prepare. El primario lo calcula así: toma el último checkpoint estable que aparece en V\mathcal{V} como límite inferior y el número de secuencia preparado más alto como límite superior. Para cada número intermedio, si algún certificado de V\mathcal{V} muestra una solicitud preparada, la vuelve a proponer en la vista v+1v+1; si no hay ninguna, propone una operación nula.

La clave está en la verificación. Una réplica que recibe NEW-VIEW no acepta O\mathcal{O} por fe: comprueba que los mensajes de V\mathcal{V} sean válidos y que O\mathcal{O} sea correcto repitiendo el mismo cálculo. Para poder repetirlo necesita los expedientes completos, no un resumen.

Esa decisión de diseño es elegante desde safety: un primario bizantino no puede omitir una solicitud preparada sin que el cálculo de las réplicas lo delate. Pero obliga a que el mensaje NEW-VIEW cargue 2f+12f + 1 expedientes, cada uno con O(n)O(n) firmas.

Bosquejo de prueba

Conteo de autenticadores del cambio de vista en PBFT

Con una ventana de solicitudes acotada, cada VIEW-CHANGE contiene O(n) firmas y NEW-VIEW contiene de ellos, es decir O(n^2) firmas. Difundir NEW-VIEW a n réplicas cuesta O(n^3) autenticadores, y el intercambio todos-contra-todos de VIEW-CHANGE alcanza el mismo orden.
Bosquejo de Demostración: La estructura de VIEW-CHANGE y NEW-VIEW proviene de Castro y Liskov; el orden cúbico del reemplazo de líder en PBFT es el que reporta el análisis comparativo del paper de HotStuff.

Contando autenticadores: de cuadrático a cúbico

El paper de HotStuff propone medir estos protocolos por complejidad de autenticadores: cuántas firmas o MACs reciben en total las réplicas para alcanzar una decisión. Bajo esa métrica, reporta que el reemplazo de líder en PBFT cuesta O(n3)O(n^3), mientras que el camino normal con un líder correcto es cuadrático.

Podemos reconstruir el orden de magnitud con la anatomía anterior:

  1. VIEW-CHANGE todos contra todos. Cada una de las nn réplicas envía a las demás un mensaje con O(n)O(n) firmas. Eso suma n⋅n⋅O(n)=O(n3)n \cdot n \cdot O(n) = O(n^3) autenticadores recibidos.
  2. NEW-VIEW de uno a todos. El primario envía a nn réplicas un mensaje con 2f+12f + 1 expedientes de O(n)O(n) firmas: n⋅O(n2)=O(n3)n \cdot O(n^2) = O(n^3).

costo del view change=n⋅(2f+1)⏟expedientes⋅O(n)⏟firmas por expediente=O(n3)\text{costo del view change} = n \cdot \underbrace{(2f+1)}_{\text{expedientes}} \cdot \underbrace{O(n)}_{\text{firmas por expediente}} = O(n^3)

Este conteo no depende de una mala calibración. Aun con un temporizador perfecto, cada reemplazo de líder paga ese orden. Lo que sí empeora la situación es encadenar varios cambios de vista: el paper de HotStuff analiza también el caso de varios líderes fallidos consecutivos, donde el costo acumulado crece todavía más.

¿Bastan las firmas umbral para arreglarlo? Ayudan, pero no eliminan el problema. Si cada certificado Prepared se comprime en una sola firma, cada VIEW-CHANGE baja a O(1)O(1) autenticadores por solicitud. Sin embargo, el nuevo primario sigue reenviando los reportes de n−fn - f réplicas a nn destinatarios, y el costo queda cuadrático. El cuello de botella no es solo el tamaño de cada certificado, sino la necesidad de reenviar la evidencia de muchas réplicas.

Por qué el expediente no se puede simplemente borrar

La tentación obvia es pedir que el nuevo primario envíe solo el certificado más alto que conoce, sin justificar por qué es el más alto. El problema es que una réplica correcta puede tener un certificado preparado más reciente que ninguno de los n−fn - f reportes que llegaron al primario. Si esa réplica actúa como si estuviera bloqueada en ese certificado, rechazará la propuesta, y el sistema puede quedarse sin quórum.

Hay tres maneras clásicas de resolver esa tensión:

  • Probarlo todo, como PBFT: el primario reenvía los expedientes y cada réplica verifica. Es responsivo, pero cuadrático o cúbico en comunicación.
  • Esperar, como Tendermint o Casper: el nuevo líder aguarda el retraso máximo de red conocido antes de proponer, para asegurarse de haber oído el certificado más alto de toda réplica correcta. Es lineal, pero pierde responsividad.
  • Agregar una fase, como HotStuff: cambia qué significa estar bloqueado, de modo que el certificado más alto entre n−fn - f reportes siempre basta.

La comparación de Malkhi y Nayak sobre PBFT, Tendermint, HotStuff y HotStuff-2 organiza precisamente estas opciones como un compromiso entre fases, comunicación del cambio de vista y responsividad.

La alternativa de HotStuff: un único highQC por réplica

HotStuff ataca el problema desde la forma de la evidencia. En lugar de un expediente con un certificado por solicitud, cada réplica guarda un Quorum Certificate (QC) que resume n−fn - f votos en un solo objeto verificable, y con firmas umbral ese QC es un único autenticador.

En un cambio de vista de HotStuff:

  • cada réplica envía al siguiente líder un mensaje new-view con su highQC, el QC más alto que conoce;
  • el líder elige el highQC de vista más alta entre n−fn - f mensajes;
  • el líder propone un bloque que extiende ese QC y lo difunde junto con ese único certificado.

Ese flujo es lineal: nn mensajes de tamaño constante hacia el líder y nn de vuelta. La razón por la que basta un solo QC es la tercera fase: una réplica correcta solo se bloquea en un QC cuando ya existe evidencia de que n−fn - f réplicas lo conocen, así que cualquier conjunto de n−fn - f reportes contiene al menos un highQC tan alto como cualquier lock correcto. El análisis completo de esa regla vive en la regla de tres cadenas con QC y highQC y en el pacemaker y el cambio de vista de HotStuff.

El precio es explícito: una fase lógica más en el camino de commit. HotStuff la acepta porque, a cambio, obtiene simultáneamente cambio de vista lineal y responsividad optimista. Los protocolos de dos fases posteriores intentan recuperar esa fase sin perder lo ganado, y la discusión sobre qué cuesta recortar a dos cadenas es el siguiente paso natural.

Impacto de Negocio & Finanzas

Impacto operativo del View-Change de PBFT

Problema Comercial / Operacional

En un consorcio BFT basado en PBFT, cada reemplazo de líder obliga a reenviar expedientes de certificados cuyo costo crece con el número de réplicas; un comité más grande encarece justo el momento de recuperación.

Solución del Paper (Insight Técnico)

Protocolos con cambio de vista lineal, como HotStuff, mantienen acotado el costo de rotar líderes al transportar un único certificado por réplica.

Impacto para el Producto / Negocio: La recuperación ante la caída de un líder deja de degradarse de forma desproporcionada al crecer el comité.
View-Change PBFTO(n^3)autenticadores por reemplazo de líder
View-Change HotStuffO(n)un highQC por réplica
Evidencia PBFTExpedientecertificados Prepared por solicitud
Evidencia HotStuffQC portableun objeto verificable
View Change Overhead

Checklist mental de View-Change Complexity

4 de 4 revisados

Preguntas de auditoría para la resiliencia de cambio de líder.
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.

    Fuente primaria para los mensajes VIEW-CHANGE y NEW-VIEW, los certificados Prepared y el cálculo de O.

  2. [2]

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

    Complejidad de autenticadores, costo del reemplazo de líder en PBFT y cambio de vista lineal con highQC.

  3. [3]

    D. Malkhi and K. Nayak, "What is the difference between PBFT, Tendermint, HotStuff, and HotStuff-2?," Decentralized Thoughts, 2023.

    Engineering noteID: HOTSTUFF2-EXPLAINER-2023Abrir fuente (abre en otra pestaña)

    Comparación del compromiso entre fases, cambio de vista y responsividad en PBFT, Tendermint, HotStuff y HotStuff-2.

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

Siguiente lectura

Continúa con Tendermint visto desde HotStuff: locks, unlocks y evidencia, donde la opción de esperar el retraso máximo de red aparece en un protocolo real.

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.