HotStuff: de cero a estado del arte
Artículo 39 de 47
83%
completado al llegar aquí
Sistemas distribuidosNota de investigación17 min de lectura
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.
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.
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.
Blockchain14 min de lectura→Safety, liveness y responsiveness en HotStuff
Una separación práctica de las garantías de HotStuff: qué nunca debe pasar, cuándo vuelve a avanzar y por qué responsiveness no significa latencia cero.
Blockchain9 min de lectura→
Comprende Casper FFG (Friendly Finality Gadget, Buterin y Griffith 2017): una capa de finalidad estilo BFT que vota sobre checkpoints de una cadena producida por otro mecanismo, sus dos reglas de slashing, la garantía de accountable safety y su combinación con LMD GHOST en Gasper.
- Quórums en acción (quorums-en-accion-mayorias-honestas)
- Safety, liveness y responsiveness en HotStuff (hotstuff-safety-liveness-responsiveness)
Detente cuando puedas explicar qué es un enlace de supermayoría, cuándo un checkpoint queda justificado y finalizado, y por qué finalizar dos checkpoints en conflicto exige que al menos un tercio del depósito viole una de las dos reglas.
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 Casper FFG (Finality Gadget)
1. Mecanismo de propuesta
Árbol de bloques
2. Checkpoints
Un subárbol de bloques
3. Enlaces de supermayoría
Votos fuente-destino
4. Finalidad con responsables
Justificado y finalizado
Decodificador Didáctico de Conceptos BFT
En palabras simples: Un notario que va sellando con tinta las hojas de un borrador escrito a lápiz. Las hojas sin sello pueden reescribirse; para borrar una hoja sellada, un tercio de los notarios tendría que haber firmado dos sellos incompatibles, y esa doble firma queda como prueba en su contra.
Detalle técnico: Capa de votación estilo BFT superpuesta a un mecanismo de propuesta de bloques: decide qué checkpoints son irreversibles, mientras la cadena subyacente sigue produciendo bloques.
Una cadena con regla de bifurcación al estilo Nakamoto nunca dice "esto ya no cambia": cada bloque nuevo hace menos probable una reorganización, pero no la vuelve imposible. Los protocolos BFT clásicos dicen exactamente lo contrario. En PBFT, una réplica ejecuta una petición cuando ve un certificado de mensajes coincidentes entre réplicas, y esa decisión ya no se revierte mientras haya a lo sumo réplicas defectuosas. [3]
Casper the Friendly Finality Gadget, de Vitalik Buterin y Virgil Griffith, intenta quedarse con lo mejor de ambos mundos. No reemplaza al mecanismo que produce bloques: se monta encima como una capa de finalidad de prueba de participación que elige, de forma irreversible, una única cadena canónica dentro del árbol de bloques. [1] El propio paper se describe como heredero de la tradición BFT de PBFT y menciona a Tendermint como el primer trabajo que reutilizó algoritmos BFT para prueba de participación. [1]
La palabra "gadget" importa. Casper FFG aporta safety, pero su liveness depende del mecanismo de propuesta elegido: si un atacante controla por completo quién propone bloques, Casper sigue impidiendo finalizar dos checkpoints en conflicto, aunque el atacante puede impedir que se finalice algo nuevo. [1]
Checkpoints, votos y enlaces de supermayoría
Para no razonar sobre cada bloque, Casper FFG trabaja sobre el árbol de checkpoints. En la versión del paper, la génesis es un checkpoint y también lo es todo bloque cuya altura sea múltiplo exacto de 100; la altura de checkpoint cuenta cuántos checkpoints hay entre y la raíz. [1] Los autores explican la elección como un compromiso: más distancia entre checkpoints reduce el costo del algoritmo, pero alarga el tiempo hasta el consenso. [1]
Cada validador tiene un depósito, y todas las fracciones del protocolo se miden por depósito, no por número de validadores: "dos tercios de los validadores" significa un conjunto cuya suma de depósitos es dos tercios del total. [1] Es la versión ponderada del conteo de réplicas de PBFT.
Un voto contiene cuatro datos firmados: un checkpoint fuente , un checkpoint destino y sus alturas y . El destino debe descender de la fuente; si no, el voto es inválido. [1] Sobre esos votos se definen cuatro conceptos:
- Enlace de supermayoría : al menos dos tercios del depósito publicaron votos con fuente y destino . Un enlace puede saltarse checkpoints, es decir, está permitido. [1]
- Conflicto: dos checkpoints están en conflicto si ninguno es ancestro del otro.
- Justificado: un checkpoint está justificado si es la raíz o si existe un enlace de supermayoría desde un checkpoint ya justificado.
- Finalizado: un checkpoint está finalizado si es la raíz o si está justificado y existe un enlace de supermayoría hacia un hijo directo, con . [1]
La analogía con PBFT no es decorativa. El paper de Gasper presenta justificación y finalización como conceptos análogos a las fases de prepare y commit de PBFT. [2] Justificar es reunir una supermayoría que apunta a un checkpoint; finalizar es ver una segunda supermayoría que lo usa como fuente para el checkpoint inmediatamente siguiente. Igual que en PBFT, un solo quórum no alcanza: hace falta un quórum que construya sobre otro.
Justificar y finalizar checkpoints con enlaces de supermayoría
Fuentes:
[1]Cómo leer esta figura
Cuatro checkpoints en fila: Génesis, C1, C2 y C3, y una rama rival C2 prima que sale de C1. Dos arcos azules marcan enlaces de supermayoría de Génesis a C1 y de C1 a C2. Génesis y C2 están justificados, C1 está finalizado porque su hijo directo C2 se justificó desde él, y C3 solo está propuesto.
Las dos reglas de slashing
La regla de oro de PBFT es que una réplica correcta no envía dos mensajes contradictorios para la misma vista y número de secuencia. [3] Casper FFG reduce todo su contrato de comportamiento a dos prohibiciones sobre pares de votos, que el paper llama los dos mandamientos de Casper. [1]
Condiciones de slashing de Casper FFG
Escritas con la notación del paper, para dos votos y del mismo validador:
La primera regla es la versión de Casper de "no votar dos cosas distintas en la misma ronda". La segunda es más sutil: prohíbe que un voto largo "salte por encima" de otro voto del mismo validador. Es la regla que protege a un checkpoint finalizado frente a una cadena alternativa que intente saltárselo, porque cualquier enlace que lo puentee terminaría encerrando el enlace de finalización.
Un detalle de diseño que conviene notar: versiones anteriores de Casper tenían dos tipos de mensaje y cuatro condiciones, y los autores las redujeron a un tipo de mensaje y dos condiciones a propósito, para que las violaciones fueran independientes del estado de la cadena. [1] Esa independencia es lo que permite que cualquiera, con dos firmas en la mano, demuestre la falta.
Cuando alguien detecta una violación, la evidencia puede incluirse en la cadena como transacción; en el paper, el validador pierde todo su depósito y quien envía la evidencia recibe una pequeña recompensa. [1] El capítulo siguiente de la serie, sobre el castigo financiero, desarrolla qué significa exactamente esa evidencia y por qué convierte un ataque en un hecho demostrable.
Las dos condiciones de slashing de Casper FFG
Fuentes:
[1]Cómo leer esta figura
Panel izquierdo: un eje de alturas con dos votos que terminan en la misma altura h, uno desde h menos 2 y otro desde h menos 1. Panel derecho: el voto 1 va de h de s1 a h de t1 y envuelve al voto 2, que va de h de s2 a h de t2, con h de s1 menor que h de s2 menor que h de t2 menor que h de t1.
Accountable safety: por qué un tercio queda expuesto
La propiedad central se llama accountable safety: dos checkpoints en conflicto no pueden finalizarse a menos que al menos un tercio de los validadores, por depósito, viole una de las dos condiciones. [1] Es una garantía distinta de la de PBFT. PBFT dice "si hay a lo sumo fallas, no hay conflicto". Casper dice "si hay conflicto, puedo señalar a los culpables y probarlo".
Accountable Safety de Casper FFG
El origen del "un tercio" es la misma aritmética de quórums que en BFT clásico. Si dos conjuntos de votantes y reúnen cada uno al menos del depósito total , su intersección pesa al menos
En PBFT, el argumento busca una réplica correcta en esa intersección. En Casper, la intersección misma es la prueba: cada validador que está en ambos conjuntos firmó dos votos que, juntos, violan la condición I o la II. Gasper formaliza esta idea como p-slashable: un estado es -slashable si validadores con al menos un tercio del depósito pueden ser castigados de forma demostrable por alguien que observa la red. [2] Y sus autores subrayan que ser -slashable es una garantía más fuerte que limitarse a suponer que menos de un tercio es bizantino. [2]
La prueba del paper sigue ese esquema. Suponiendo que menos de un tercio viola las reglas, dos enlaces de supermayoría distintos no pueden compartir altura de destino, y tampoco puede uno encerrar al otro; de ahí se deduce que existe a lo sumo un checkpoint justificado por altura. [1] Con eso, un checkpoint finalizado y otro en conflicto más alto obligan a que la cadena de justificaciones de contenga un enlace que salta desde antes de hasta después de su hijo , lo que encierra el enlace de finalización y viola la condición II. [1]
Plausible liveness y la regla de bifurcación
Safety sin progreso es trivial: un protocolo que nunca finaliza nada nunca se contradice. Por eso el paper prueba también plausible liveness: pase lo que pase antes, si al menos dos tercios siguen el protocolo, siempre es posible finalizar un checkpoint nuevo sin que ningún validador viole una condición de slashing. [1] La palabra "plausible" es honesta: el teorema dice que nadie queda acorralado, no que la finalización ocurra en un tiempo acotado.
La idea de la prueba es elegir bien el siguiente destino. Si es el checkpoint justificado más alto y el destino más alto por el que alguien votó, un descendiente de con altura puede justificarse sin violar ninguna regla, y luego finalizarse con un enlace hacia su hijo directo. [1]
De esa prueba sale la regla de bifurcación que propone el paper: seguir la cadena que contiene el checkpoint justificado de mayor altura. Los autores advierten que la regla "construir sobre la cadena más larga" puede dejar a Casper atascado, sin poder justificar nada salvo que algunos validadores sacrifiquen su depósito. [1] En otras palabras, el gadget no es completamente independiente de la capa de abajo: le exige una regla de bifurcación que respete lo ya justificado.
El paper también reconoce sus límites. Si más de un tercio deja de votar, no se forman enlaces de supermayoría y nada se finaliza; la propuesta para salir de ahí es un inactivity leak que drena gradualmente el depósito de quienes no votan. [1] Ese mecanismo tiene un precio: en una partición, cada lado puede recuperar la supermayoría en su propia cadena y finalizar checkpoints en conflicto sin que nadie viole una condición de slashing. [1]
Gasper: FFG sobre LMD GHOST
El paper original montaba Casper sobre la cadena de prueba de trabajo de Ethereum y anticipaba reemplazar ese mecanismo de propuesta por algo de prueba de participación. [1] Gasper es esa combinación: un protocolo que une Casper FFG como herramienta de finalidad con LMD GHOST como regla de bifurcación, presentado como una versión idealizada de la beacon chain que se proponía para Ethereum. [2]
Los cambios principales son tres:
- Tiempo en slots y épocas. El tiempo se mide en slots y una época agrupa slots; el paper menciona valores tentativos de la especificación de entonces (12 segundos por slot y 64 slots por época), pero trata como parámetro. [2] Los checkpoints de FFG pasan a ser pares de frontera de época , porque un mismo bloque puede hacer de frontera en más de una época cuando faltan bloques. [2]
- Una attestation, dos votos. En cada slot, un comité vota por la cabeza de la cadena; esa attestation es a la vez un voto GHOST por un bloque y un voto FFG entre el último par justificado y el par de frontera actual. [2]
- HLMD GHOST. La regla de bifurcación arranca desde el par justificado de época más alta y desde ahí desciende con LMD GHOST, eligiendo en cada bifurcación el hijo con más peso según el último voto de cada validador. [2] La parte FFG trabaja con información "congelada" al inicio de cada época, mientras la parte GHOST se actualiza con cada attestation. [2]
Las reglas de slashing se trasladan casi intactas: (S1) prohíbe dos attestations distintas en la misma época y (S2) prohíbe el voto envolvente sobre épocas de los pares fuente y destino. [2] Gasper demuestra que un validador honesto que sigue el protocolo nunca viola esas condiciones por accidente, y que si dos pares finalizados están en conflicto, la cadena es -slashable. [2] Además, generaliza la finalización a -finalización para absorber retrasos de attestations, aunque espera que casi siempre baste el caso , que coincide con la definición original de Casper. [2]
Con validadores que entran y salen, la garantía se debilita: si el protocolo rompe safety, se puede castigar de forma demostrable a algo menos de un tercio, siempre que el atacante no logre bifurcaciones muy largas. [2] Es la misma tensión que el paper de Casper ataca con el retardo de retiro y la regla de no revertir checkpoints finalizados frente a ataques de largo alcance. [1]
Qué cambia para quien consume la cadena
Con una regla de cadena más larga, un exchange o un puente solo puede esperar más bloques y confiar en que una reorganización sea improbable.
Un checkpoint finalizado por Casper FFG solo puede revertirse si validadores con al menos un tercio del depósito violan una regla de slashing, y esa violación deja evidencia firmada.
Checklist mental de Casper FFG
6 de 6 revisados
Bibliografía académica
- [1]
V. Buterin and V. Griffith, "Casper the Friendly Finality Gadget," arXiv:1710.09437, 2017.
Checkpoints, enlaces de supermayoría, las dos condiciones de slashing, accountable safety y plausible liveness.
- [2]
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: pares de frontera de época, HLMD GHOST, la noción de (1/3)-slashable y slashing sobre attestations.
- [3]
M. Castro and B. Liskov, "Practical Byzantine Fault Tolerance," OSDI, 1999.
Certificados de 2f + 1 mensajes entre 3f + 1 réplicas, el punto de comparación de justificación y finalización.
Siguiente lectura
La aritmética de un tercio que aparece aquí es la misma de Quórums en acción. Para comparar la noción de finalidad de Casper con la de un protocolo BFT de líder rotativo, sigue con Safety, liveness y responsiveness en HotStuff, y para otro gadget de finalidad montado sobre producción de bloques, con Substrate y la finalidad GRANDPA.
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.
Por qué Ethereum necesitaba The Merge
Motivos técnicos, económicos y ambientales detrás de la transición de proof-of-work a proof-of-stake.
Beacon Chain desde cero
Validadores, depósitos, slots, epochs, committees y papel de Beacon Chain en Ethereum proof-of-stake.
The Merge: cómo se apagó proof-of-work sin apagar Ethereum
Bellatrix, Paris, Engine API, execution payloads y separación operacional entre consensus y execution clients.
Gasper: Casper FFG + LMD-GHOST en una sola cabeza
Fork choice y finality en Ethereum proof-of-stake: LMD-GHOST, Casper FFG, justified/finalized checkpoints.