HotStuff: de cero a estado del arte
Artículo 41 de 47
87%
completado al llegar aquí
Sistemas distribuidosNota de investigación15 min de lectura
Leaks de inactividad (Inactivity Leaks): Recuperar el consenso tras catástrofes
Por qué la finalidad se detiene si más de un tercio del stake no vota, cómo el inactivity leak de Ethereum la recupera y cuándo finaliza dos ramas en conflicto.
Ruta HotStuff: 0/47
Comprende qué ocurre cuando más de un tercio del stake deja de votar: por qué un protocolo de quórums de dos tercios se detiene sin perder safety, cómo el inactivity leak de Ethereum drena el stake de los ausentes para recuperar finalidad y qué riesgos de safety documentan Pavloff et al.
- Quórums en acción (quorums-en-accion-mayorias-honestas)
- Safety, liveness y responsiveness en HotStuff (hotstuff-safety-liveness-responsiveness)
Detente cuando puedas explicar con aritmética por qué reducir el stake de los ausentes devuelve la supermayoría a los presentes y por qué, en una partición prolongada, eso permite finalizar dos ramas en conflicto.
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 del inactivity leak
Más de un tercio ausente
Sin supermayoría disponible
Activación
Cuatro épocas sin finalizar
Drenaje de stake
Penalización creciente
Nueva supermayoría
Finalidad recuperada
Decodificador Didáctico de Conceptos BFT
En palabras simples: Un parlamento cuyo reglamento exige dos tercios de los votos ponderados. Si una tormenta deja fuera a muchos diputados durante semanas, el reglamento empieza a reducir el peso de cada ausente hasta que los presentes vuelven a sumar dos tercios.
Detalle técnico: Mecanismo de Ethereum PoS que drena el stake de los validadores inactivos cuando la finalidad lleva varias épocas detenida, para que los activos recuperen la supermayoría.
En Safety, liveness y responsiveness vimos que un protocolo BFT con réplicas avanza solo si reúne certificados de votos. Si más de réplicas se apagan, ningún certificado puede formarse.
La pregunta de este artículo es incómoda: ¿qué debería hacer un sistema cuando la falla ya no es "hasta " sino un apagón o una partición que deja fuera a más de un tercio del stake? HotStuff responde "esperar". Ethereum responde reduciendo, época tras época, el stake de quienes no votan. Ese mecanismo es el inactivity leak, se activó por primera vez en Ethereum en mayo de 2023, y tiene un precio que Pavloff, Amoussou-Guenou y Tucci-Piergiovanni midieron con cuidado. [1]
Por qué la finalidad se detiene con más de un tercio ausente
Empecemos por la familia BFT clásica. En HotStuff, un QC es un conjunto de votos firmados sobre la misma propuesta y la misma vista; safety no depende de la red, y el progreso depende de que, después de GST, un líder correcto reúna esos votos. [4] Si réplicas no votan, llegan como máximo votos, uno menos de lo necesario. El pacemaker puede rotar líderes indefinidamente: ninguno certifica. La red queda detenida y, a la vez, intacta.
Ethereum hereda la misma aritmética en su capa de finalidad. Casper FFG define un enlace de supermayoría como un par de checkpoints respaldado por votos de al menos dos tercios de los validadores, ponderados por depósito; un checkpoint se justifica con un enlace desde otro justificado y se finaliza cuando su hijo directo también queda justificado. [2] Gasper, el protocolo de la beacon chain, combina ese gadget con la regla de bifurcación LMD GHOST y mantiene la condición de dos tercios del stake para justificar. [3]
En la descripción de Pavloff et al., el tiempo se divide en slots de 12 segundos y épocas de 32 slots; cada validador emite una atestación por época, con un voto de checkpoint. Un checkpoint queda justificado cuando validadores con más de dos tercios del stake emiten el mismo voto, y la finalización requiere dos checkpoints justificados consecutivos. [1]
De ahí sale el problema. Buterin y Griffith lo llaman catastrophic crash: si más de un tercio de los validadores deja de participar, sea por una partición de red, una falla de máquinas o por malicia, ya no pueden crearse enlaces de supermayoría y ningún checkpoint futuro se finaliza. [2] Hasta aquí, Ethereum se comporta como HotStuff. La diferencia es lo que hace a continuación.
Una aclaración de diseño: la cadena de Ethereum no se congela por completo. Pavloff et al. subrayan que la parte no finalizada sigue creciendo aunque la finalización se detenga, una propiedad que llaman availability. [1] Lo que se detiene es la finalidad, no la producción de bloques.
Intersección de supermayorías y safety responsable
El mecanismo: puntaje de inactividad y drenaje de stake
La idea aparece ya en el paper de Casper FFG como defensa contra caídas catastróficas: un "leak" que drena lentamente el depósito de todo validador que no vota, hasta que los que sí votan vuelven a ser supermayoría. [2] Los autores dejaban la fórmula exacta fuera del alcance del paper, como una cuestión de incentivos económicos, y sugerían que una tasa creciente con la duración del estancamiento podía resolver antes la crisis. [2] Pavloff et al. notan además que la descripción de Gasper no menciona el mecanismo, y aportan la primera descripción formal. [1]
Según esa formalización, el leak empieza cuando la cadena pasa cuatro épocas consecutivas sin finalizar. Un validador cuenta como inactivo en una época si no envía atestación o si su voto de checkpoint apunta a un objetivo que no pertenece a la cadena que se evalúa. Durante el leak desaparecen las recompensas de atestación y aparecen penalizaciones de inactividad. [1]
Cada validador lleva un puntaje de inactividad . En cada época de leak sube 4 si el validador estuvo inactivo y baja 1 (sin pasar de cero) si estuvo activo. La penalización por época es proporcional al puntaje y al stake: [1]
El término importante es : como crece con cada época de ausencia, la pérdida se acelera. Modelando el stake como función continua, los autores obtienen que un validador siempre inactivo, con , conserva . Un validador siempre activo no pierde nada. Un validador semiactivo, activo una época sí y otra no, decae más lento, como . [1]
Hay un segundo efecto discreto: los validadores cuyo stake cae a 16,75 ETH o menos son expulsados. Partiendo de 32 ETH, un validador siempre inactivo llega a ese límite en la época 4685 del leak, y uno semiactivo en la 7652; como referencia, los autores indican que 5000 épocas son unas tres semanas. [1]
Aritmética del retorno a dos tercios
El efecto buscado no es castigar por castigar. Al drenar el stake de los ausentes se encoge el denominador contra el que se miden los dos tercios. Los activos no ganan votos nuevos: pasan a representar una fracción mayor de un total más pequeño.
Un ejemplo hipotético con números redondos lo muestra. Supongamos un stake total de unidades, de las cuales siguen votando y quedan aisladas. Los activos tienen del total, por debajo de . Llamemos al stake restante de los inactivos. Los activos recuperan la supermayoría cuando
Basta con que los inactivos pierdan una cuarta parte de su stake. Pavloff et al. hacen la misma cuenta con su curva de penalización: si es la fracción del stake que sigue activa en una rama, la fracción activa en la época del leak es [1]
y el umbral de dos tercios se alcanza en
El mínimo con refleja la expulsión: en su simulación, con la fracción activa salta a 1 cuando los inactivos son expulsados, mientras que con los dos tercios se recuperan antes de esa expulsión. [1] Cuantos más validadores activos tiene una rama, antes vuelve a finalizar.
Fíjate en lo que cambió. La supermayoría recuperada no se cruza necesariamente con una supermayoría medida sobre el stake original, porque ambas se calculan contra denominadores distintos. El invariante del bloque anterior presupone un conjunto y un stake fijos. [3] El leak altera el stake sin que nadie haya votado esa alteración, y con eso suspende la premisa de la prueba.
El inactivity leak devuelve los dos tercios a los activos
Fuentes:
[1]Cómo leer esta figura
Curva cualitativa de la fracción de stake activo frente a las épocas sin finalidad. Empieza en 0,6, por debajo de la línea de dos tercios, y sube a medida que el stake inactivo se reduce; cruza los dos tercios en el punto donde la finalidad se reanuda, cuando el stake inactivo restante es como mucho 30 de 100.
El precio: dos ramas finalizadas tras una partición
Mientras los ausentes estén realmente apagados, el cambio de denominador es inofensivo. El problema aparece cuando la "caída" es una partición y ambos lados siguen activos. Casper FFG ya lo advertía: si los validadores se dividen en , que vota en la cadena A, y , que vota en la B, en la cadena A se drena el depósito de y viceversa, hasta que cada subconjunto tiene supermayoría en su cadena y se finalizan dos checkpoints en conflicto sin que nadie viole una condición de slashing. [2] La recomendación del paper era que cada validador favoreciera el checkpoint finalizado que vio primero, y dejaba la recuperación como problema abierto. [2]
Pavloff et al. cuantifican este caso con validadores solo honestos separados en dos particiones. La configuración más rápida para finalizar ambas ramas es el reparto parejo, , y aun así ninguna rama puede finalizar antes de la expulsión en la época 4685. Contando una época más para finalizar el checkpoint justificado, ambas ramas finalizan 4686 épocas después del inicio del leak, unas tres semanas. Su conclusión: cualquier partición más larga que eso produce finalización en conflicto y pérdida de safety. [1]
Contrasta con HotStuff. Allí, dos QCs en conflicto en la misma vista exigen que alguna réplica correcta vote dos veces, lo que sus reglas de votación impiden. [4] Con el leak no hace falta ningún doble voto: cada lado forma su supermayoría sobre un denominador distinto.
Qué compra y qué cuesta el inactivity leak
Un apagón o una partición que deja fuera a más de un tercio del stake detiene la finalidad de cualquier protocolo con quórums de dos tercios.
Drenar el stake de los ausentes devuelve la finalidad sin intervención manual, pero lo hace cambiando el total contra el que se cuentan los votos.
Cómo los validadores bizantinos aceleran el riesgo
El análisis se vuelve más serio cuando se añade un adversario con menos de un tercio del stake inicial, , capaz de coordinarse entre particiones. [1] Los autores estudian cuatro estrategias.
Activos en ambas ramas, con slashing. Si los bizantinos atestan en las dos ramas a la vez, cuentan como activos en ambas y aceleran la recuperación de dos tercios en cada una. Es una falta sancionable, pero solo cuando la prueba de atestaciones conflictivas se incluye en un bloque, y antes de GST eso puede no ocurrir. Con , la finalización en conflicto baja de 4685 épocas con a 3107 con y a unas 500 con , unos dos días. [1] El slashing llega tarde: las dos ramas finalizadas ya son irreconciliables con el protocolo actual.
Semiactivos, sin slashing. Alternando actividad entre ramas, los bizantinos nunca firman dos atestaciones conflictivas en la misma época, pierden stake más despacio que los honestos inactivos y, en el momento oportuno, permanecen activos dos épocas seguidas en cada rama. Con , eso produce finalización en conflicto en unas 556 épocas sin ninguna acción sancionable. [1]
Superar el umbral de un tercio. La misma estrategia semiactiva, pero sin finalizar, persigue otro objetivo: que la proporción de stake bizantino supere en cada rama mientras los honestos de la otra partición se desangran. Con , esto es posible en ambas ramas a la vez si . [1]
Probabilistic bouncing. Por último, revisan un ataque conocido para retrasar la finalidad durante periodos síncronos y muestran que, con el leak, puede llevar el stake bizantino por encima de un tercio de forma probabilística si está suficientemente cerca de . [1]
Los autores son explícitos sobre el alcance: las condiciones para que estos ataques persistan hasta amenazar safety son poco probables en la práctica, sobre todo por las escalas de tiempo, aunque los bizantinos pueden hacer perder stake a otros validadores mucho antes. [1]
Checklist mental de inactivity leaks
5 de 5 revisados
Esperar o reponderar: qué significa "finalizado"
La comparación honesta no es "Ethereum se cura y HotStuff no". Es una elección sobre qué propiedad conservar cuando el modelo de fallas se rompe. HotStuff mantiene safety sin suposiciones de red y acepta que, con más de réplicas ausentes, el progreso se detenga. [4] Recuperar servicio exige que las réplicas vuelvan o una reconfiguración explícita del conjunto, como la que se discute en reorganización dinámica de validadores.
Ethereum elige lo contrario para su finalidad. Pavloff et al. lo leen a través del teorema CAP: el leak restaura liveness durante particiones y, por eso mismo, pone en riesgo safety. [1] Para quien diseña sistemas, la consecuencia práctica es leer con cuidado qué garantiza "finalizado". En un BFT con conjunto fijo, significa respaldado por un quórum que se cruza con cualquier otro. Con leak, significa respaldado por dos tercios del stake vigente en esa rama, y ese stake puede haberlo redefinido el propio apagón.
Siguiente lectura
Para repasar por qué la intersección de quórums es el corazón de safety, vuelve a Quórums en acción. Si quieres ver cómo un protocolo de conjunto fijo recupera liveness después de GST sin tocar los pesos, continúa con el pacemaker y el cambio de vista de HotStuff.
Bibliografía académica
- [1]
U. Pavloff, Y. Amoussou-Guenou, and S. Tucci-Piergiovanni, "Byzantine Attacks Exploiting Penalties in Ethereum PoS," arXiv:2404.16363, 2024.
Análisis del inactivity leak de Ethereum y de cómo validadores bizantinos pueden explotarlo contra safety.
- [2]
V. Buterin and V. Griffith, "Casper the Friendly Finality Gadget," arXiv:1710.09437, 2017.
Gadget de finalidad sobre checkpoints: votos de enlace, dos condiciones de slashing, accountable safety y plausible liveness.
- [3]
V. Buterin, D. Hernandez, T. Kamphefner, K. Pham, Z. Qiao, D. Ryan, J. Sin, Y. Wang, and Y. X. Zhang, "Combining GHOST and Casper," arXiv:2003.03052, 2020.
Gasper: Casper FFG combinado con la regla de bifurcación LMD GHOST en la beacon chain de Ethereum.
- [4]
M. Yin, D. Malkhi, M. K. Reiter, G. G. Gueta, and I. Abraham, "HotStuff: BFT Consensus in the Lens of Blockchain," PODC, 2019.
Fuente central para QC, highQC, Chained HotStuff, view-change lineal y three-chain commit.
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.
Casper FFG (Ethereum): El gadget de finalidad amigable
Cómo Casper FFG finaliza checkpoints con enlaces de supermayoría, por qué sus dos reglas de slashing dan accountable safety y cómo Gasper lo une a LMD GHOST.
Ethereum: mapa de lectura antes de tocar Solidity
Ruta completa para aprender Ethereum desde historia y arquitectura hasta EVM, proof-of-stake, L2, seguridad, DeFi y labs reproducibles.
Antes de Ethereum: Bitcoin, scripts y la máquina mundial
Historia inicial de Ethereum: qué problema vio el whitepaper, por qué los contratos generales importaban y qué cambió frente a Bitcoin.
Frontier, Homestead y The DAO: la red aprendió con golpes
De mainnet inicial a The DAO: primeros forks, tensiones sociales y por qué la historia de Ethereum no es solo técnica.