BFT frontier: notas de campo

Artículo 5 de 9

56%

completado al llegar aquí

Sistemas distribuidosNota de investigación16 min de lectura

BFT en consorcios bancarios vs. redes públicas: El dilema del control de identidad

Consorcio permisionado o red abierta: quién certifica identidades, quién ordena, por qué abrir la membresía exige un costo y qué aporta execute-order-validate.

En 1 Minuto

Compara un despliegue BFT permisionado, donde un consorcio certifica quién participa, con una red pública de membresía abierta, usando Hyperledger Fabric como caso de estudio y el ataque Sybil como frontera entre ambos mundos.

Prerrequisitos
  • Consenso BFT desde cero (bft-consensus-from-zero)
  • Reorganización dinámica de validadores (reorganizacion-dinamica-validadores-epochs)
Cuándo Detenerte

Detente cuando puedas explicar por qué contar réplicas exige identidades certificadas, qué hace y qué no hace el servicio de ordenamiento de Fabric, y qué tiene que reemplazar a la autoridad de certificación en una red abierta.

Glosario Rápido de Notación

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

f— Número máximo de fallas bizantinas

Cantidad de réplicas maliciosas o con fallas arbitrarias que tolera el sistema.

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

Ruta mental: del consorcio a la red abierta

  1. Identidad

    ¿Quién certifica a los participantes?

  2. Conteo

    ¿Qué significa f?

  3. Ordenamiento

    ¿Quién decide el orden?

  4. Responsabilidad

    ¿Qué pasa si alguien miente?

Cuatro preguntas que separan un despliegue BFT permisionado de uno de membresía abierta.
Explicación Didáctica

Decodificador Didáctico de Conceptos BFT

BFT permisionado

En palabras simples: Un comité de auditoría donde cada miembro llega con credencial emitida por su institución: contar votos tiene sentido porque cada credencial es una persona distinta.

Detalle técnico: Conjunto fijo y conocido de réplicas con identidades criptográficas emitidas por una infraestructura de clave pública; el umbral f se expresa en número de réplicas.

Membresía abierta

En palabras simples: Una asamblea en la que cualquiera puede entrar con tantas pelucas como quiera: contar cabezas deja de medir personas.

Detalle técnico: Sin autoridad que certifique identidades, una sola entidad puede presentar muchas; el sistema necesita atar el poder de voto a un recurso costoso.

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

Un error frecuente es pensar que el protocolo BFT es lo único que importa y que el entorno de despliegue es un detalle operativo. En realidad, cada protocolo de la familia PBFT y HotStuff trae una premisa silenciosa: sabemos cuántas réplicas hay y quiénes son. Este capítulo examina qué pasa con esa premisa en un consorcio, por ejemplo un grupo de bancos que comparte un libro contable, y qué pasa cuando la red es pública y cualquiera puede unirse.

Usaremos Hyperledger Fabric como caso de estudio del lado permisionado, porque su paper describe con precisión quién certifica identidades, quién ordena transacciones y qué supuestos de confianza hace cada componente.

La premisa oculta: un conjunto fijo de réplicas conocidas

PBFT tolera hasta ff réplicas bizantinas con n=3f+1n = 3f + 1 réplicas, y sus mensajes van autenticados con criptografía cuyas claves conocen todas las réplicas. El umbral solo tiene sentido si cada réplica corresponde a un participante independiente. Si un atacante pudiera registrar diez réplicas con diez claves distintas, el número ff dejaría de medir algo real.

HotStuff hace explícito el mismo modelo: un conjunto fijo de n=3f+1n = 3f + 1 réplicas indexadas, con firmas umbral cuya clave pública comparten todas ellas. El propio paper sitúa su motivación en las blockchains permisionadas, que describe como un conjunto fijo de réplicas que mantiene un libro ordenado, en contraste con las redes sin permiso como la de Bitcoin, donde los participantes son desconocidos. También observa que, aunque los protocolos BFT clásicos se pensaban para n=4n = 4 o n=7n = 7 en una red local, en blockchains permisionadas se contemplan cientos o incluso miles de réplicas, lo que vuelve crítica la complejidad de comunicación.

Esa es la línea que divide los dos mundos. En un consorcio, la membresía es un dato de entrada administrado fuera del protocolo. En una red abierta, la membresía es parte del problema que el protocolo tiene que resolver.

Cómo un consorcio certifica identidades en Fabric

Fabric define una blockchain permisionada como una que se ejecuta entre participantes conocidos e identificados, y señala que, al apoyarse en esas identidades, puede usar consenso BFT tradicional. El componente que materializa esa idea es el membership service provider (MSP): mantiene las identidades de clientes, peers y nodos de ordenamiento, y emite las credenciales que se usan para autenticar y autorizar.

La implementación por defecto del MSP usa métodos PKI estándar basados en firmas digitales y admite autoridades de certificación comerciales; Fabric incluye además su propia CA. Un detalle operativo revela la filosofía: según el paper, peers y nodos de ordenamiento solo pueden registrarse en modo offline, mientras que los clientes pueden obtener credenciales en línea. Unirse como réplica no es algo que un desconocido pueda hacer desde internet.

El MSP también permite federar identidades: cada organización emite credenciales para sus propios miembros y todos los peers reconocen a los miembros de todas las organizaciones. Para un consorcio bancario, esto encaja con la realidad institucional. Cada banco gestiona sus claves, y una firma sobre un mensaje identifica a una organización con nombre y responsabilidad fuera del sistema.

Ejecutar, ordenar, validar: la arquitectura de Fabric

La mayoría de las blockchains anteriores seguían el patrón order-execute: primero se ordenan las transacciones con consenso y luego cada peer las ejecuta en secuencia. Fabric señala dos costos de ese diseño: todos los peers ejecutan todo, y el código debe ser determinista o las réplicas divergen. Los autores cuentan que las versiones anteriores de Fabric, hasta la v0.6, seguían ese patrón con PBFT, y que muchos reportes de "bugs de consenso" resultaron ser chaincode no determinista.

La respuesta es la arquitectura execute-order-validate, que la figura recorre paso a paso.

Figura 1

Execute-order-validate en Hyperledger Fabric

Fuentes:

[1]
Execute-order-validate en Hyperledger Fabric
Cómo leer esta figura

Tres columnas. En Ejecutar, un cliente firma una propuesta y la envía a tres endorsers, que simulan el chaincode sobre su estado local sin persistir nada; cada uno firma un readset y un writeset y el cliente junta endosos idénticos que cumplen la política, por ejemplo tres de cinco. En Ordenar, la transacción entra por broadcast a un servicio de cuatro nodos OSN, intercambiable entre CFT y BFT, que no ve el estado ni ejecuta ni valida y produce un bloque s con las transacciones y el hash del bloque anterior. En Validar, cada peer recibe el bloque por deliver y aplica tres pasos: política de endoso en paralelo, chequeo de conflictos lectura-escritura y escritura del bloque y del writeset de las transacciones válidas; las inválidas quedan en el bloque marcadas en un bitmask.

Visual original de TrautsLab. Flujo de una transacción en Fabric: los endorsers simulan y firman readset y writeset, el servicio de ordenamiento solo fija el orden total en bloques encadenados por hash, y cada peer valida la política de endoso y los conflictos de versión antes de aplicar el estado.

En la fase de ejecución, el cliente envía la propuesta firmada a los endorsers que indica la política de endoso del chaincode. Cada endorser simula la operación sobre su estado local, sin coordinarse con los demás y sin persistir nada, y firma un endoso que contiene el readset (claves leídas con su versión) y el writeset (claves modificadas con su nuevo valor). El cliente acumula endosos hasta satisfacer la política, que puede ser una expresión como "tres de cinco"; los endorsers exigidos deben producir el mismo resultado.

En la fase de ordenamiento, la transacción con sus endosos se entrega al servicio de ordenamiento, que establece un orden total por canal y agrupa las transacciones en bloques encadenados por hash. El paper especifica sus propiedades de safety: dos peers correctos que entregan el bloque con el mismo número reciben el mismo bloque, la cadena de hashes es íntegra, no se salta ningún número y no aparece ninguna transacción que algún cliente no haya enviado.

En la fase de validación, cada peer evalúa la política de endoso de todas las transacciones del bloque en paralelo, luego comprueba en secuencia que las versiones del readset sigan vigentes y, al final, escribe el bloque y aplica los writesets válidos. Las transacciones inválidas no desaparecen: quedan en el libro, marcadas con una máscara de bits, lo que según los autores sirve para auditar intentos fallidos.

La consecuencia más interesante es sobre el no determinismo. Como la ejecución ocurre antes del consenso y la validación posterior es determinista, un chaincode no determinista solo pone en riesgo la liveness de sus propias operaciones, porque el cliente quizá no reúna endosos coincidentes; no rompe la consistencia entre peers.

Quién opera el servicio de ordenamiento

El servicio de ordenamiento es la pieza donde vive el consenso. Fabric lo diseña sin estado de aplicación: los nodos de ordenamiento no ejecutan ni validan transacciones, y el paper subraya que esa separación total entre consenso, ejecución y validación es lo que permite reemplazar el protocolo. El argumento de fondo es que no existe un protocolo BFT único que sirva para todos los despliegues, de modo que el supuesto de confianza del ordenamiento debe poder ajustarse a cada caso.

Conviene leer con atención qué ofrecía Fabric en el momento del paper. A partir de la v1.0.6 había tres implementaciones: un ordenador centralizado de un solo nodo para desarrollo, un servicio tolerante a caídas (CFT) basado en Kafka y ZooKeeper, y una prueba de concepto sobre BFT-SMaRt que tolera hasta un tercio de nodos de ordenamiento bizantinos. Es decir, el diseño admite BFT, pero la configuración de producción que describe el paper toleraba caídas, no mentiras.

Esa distinción importa para el modelo de confianza. Fabric considera potencialmente bizantinos a todos los clientes, agrupa los peers en organizaciones que funcionan como dominios de confianza y declara que la integridad de la red depende de la consistencia del servicio de ordenamiento. Si un consorcio confía el ordenamiento a un clúster CFT operado por un solo miembro, ese miembro se convierte en el punto de confianza del sistema. Si cada banco opera una réplica de un ordenamiento BFT, vuelve a aplicar la cuenta de PBFT: con n=3f+1n = 3f + 1 operadores independientes, el orden sobrevive a ff de ellos comportándose de forma arbitraria.

Fabric añade una capa que los protocolos BFT clásicos no tienen: la política de endoso desacopla la confianza de cada aplicación de la confianza del consenso. Un contrato de liquidación puede exigir endosos de las dos contrapartes y de un auditor, sin importar cuántos nodos de ordenamiento existan.

Sobre rendimiento, el paper reporta más de 3500 transacciones por segundo de extremo a extremo, con latencia de unos cientos de milisegundos y buen escalado por encima de 100 peers, en sus configuraciones de prueba. Esas cifras se midieron con el ordenamiento Kafka, que no fue el cuello de botella en un mismo centro de datos; el límite lo marcó la validación, cara por la verificación de firmas. No son, por tanto, una medida del costo de un ordenamiento BFT.

Redes abiertas: el problema Sybil y el precio de una identidad

Al pasar a una red pública desaparece la autoridad que emitía credenciales. Douceur llamó ataque Sybil a la falsificación de múltiples identidades: en sistemas que se protegen con redundancia, una entidad defectuosa que presenta varias identidades puede controlar una fracción sustancial del sistema y anular esa redundancia. Su conclusión es directa: sin una autoridad lógicamente centralizada que certifique identidades, los ataques Sybil son siempre posibles salvo bajo supuestos extremos y poco realistas de paridad de recursos y coordinación entre entidades.

Douceur también analiza la alternativa de validar identidades con pruebas de recursos, como cómputo, almacenamiento o comunicación, y muestra su límite: una entidad con ρ\rho veces los recursos de una entidad mínima puede presentar hasta ρ\rho identidades distintas. Dicho de otro modo, el recurso no impide que un actor tenga muchas identidades; solo hace que su influencia sea proporcional a lo que posee.

Esa es la idea que heredan las redes abiertas, y aquí entramos en interpretación propia. Si no se puede saber cuántas entidades hay detrás de las claves, el umbral deja de contarse en réplicas y pasa a medirse en un recurso escaso. Bitcoin usa trabajo de cómputo, como recuerda el paper de HotStuff al describir el modelo sin permiso.

Las redes de prueba de participación usan capital depositado como peso de voto y exigen supermayorías sobre ese peso, no sobre el número de validadores. El razonamiento de intersección de quórums se mantiene, pero el supuesto de fallas cambia de forma: ya no es "a lo sumo ff réplicas mienten" sino "a lo sumo una fracción del peso total está en manos adversarias".

El precio es que el conjunto de validadores y sus pesos cambian con el tiempo, y el protocolo tiene que gestionar entradas, salidas y reconfiguraciones que en un consorcio se resuelven con un acuerdo entre organizaciones. Ese problema se trata en la reorganización dinámica de validadores, y los ataques que aprovechan identidades baratas se analizan en vectores de ataque BFT.

Trade-offs: qué compras con cada modelo

Matriz de decisión

Consorcio permisionado vs. red de membresía abierta

Recomendado

Consorcio permisionado (caso: Fabric)

Identidades emitidas por una PKI; el umbral f cuenta réplicas; ordenamiento separado e intercambiable (CFT o BFT).

Ideal para
Organizaciones que se conocen, comparten un objetivo y no confían plenamente entre sí.
Ojo con
La confianza se concentra en quien opera la CA y el ordenamiento; un ordenamiento CFT no tolera nodos que mientan.

Red pública de membresía abierta

Cualquiera puede generar claves; el poder de voto se ata a un recurso escaso para resistir ataques Sybil.

Ideal para
Sistemas donde no puede existir una autoridad que admita participantes.
Ojo con
El conjunto de validadores cambia; hay que gestionar pesos, reconfiguración e incentivos dentro del protocolo.
Qué resuelve cada modelo y qué deja como responsabilidad del operador.

En un consorcio, la pregunta de diseño es de gobernanza: quién opera cada pieza. Fabric permite que un banco decida a quién pedir endosos y que el consorcio elija qué tolerancia exige al ordenamiento, pero el mismo diseño admite configuraciones donde un único operador concentra la confianza. El protocolo BFT protege el orden solo si sus réplicas están en manos de entidades realmente independientes.

En una red abierta, la pregunta es económica y de reconfiguración. El umbral de seguridad ya no depende de un registro firmado sino de cuánto recurso controla el adversario, y una fracción adversaria grande rompe las garantías aunque el protocolo esté bien implementado.

Hay un tercer elemento compartido: la escala. HotStuff nace de que incluso las blockchains permisionadas contemplan cientos o miles de réplicas en redes de área amplia, donde el costo de comunicación de un cambio de líder deja de ser despreciable. Fabric, por su parte, advierte que el consenso suele estar limitado por el ancho de banda y no escala añadiendo nodos de ordenamiento; su throughput tiende a bajar. Por eso separa ordenamiento de difusión y deja que los bloques lleguen a los peers por gossip.

Modelo de membresía

Checklist: consorcio o red abierta

4 de 4 revisados

Preguntas para revisar antes de elegir un despliegue BFT.
Referencias

Bibliografía académica

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

    E. Androulaki et al., "Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains," EuroSys, 2018.

    MSP, arquitectura execute-order-validate, servicio de ordenamiento intercambiable y modelo de confianza.

  2. [2]

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

    Umbral n = 3f + 1 sobre un conjunto conocido de réplicas autenticadas.

  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.

    Modelo de conjunto fijo de réplicas y motivación de escala en blockchains permisionadas.

  4. [4]

    J. R. Douceur, "The Sybil Attack," IPTPS, LNCS 2429, pp. 251-260, 2002.

    PaperID: DOUCEUR-SYBIL-2002Abrir fuente (abre en otra pestaña)

    Por qué la membresía abierta sin autoridad certificadora necesita atar la identidad a un recurso.

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

Siguiente lectura

Para ver un motor BFT académico que llegó a producción en el mundo permisionado, continúa con ResilientDB: el motor BFT académico productivo. Si quieres repasar por qué n=3f+1n = 3f + 1 y quórums de 2f+12f + 1 bastan cuando las réplicas están certificadas, vuelve a Quórums en acción.

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.