La confianza y la seguridad son vitales para la tecnología de cadena de bloques, y el mecanismo de consenso de tolerancia a fallas bizantinas (BFT) es el núcleo de la seguridad de una cadena de bloques.


BFT garantiza que las cadenas de bloques continúen funcionando, incluso si algunos participantes de la red no son confiables o son maliciosos. Entonces, ¿qué es BFT, cómo funciona y por qué es tan crucial para la tecnología blockchain?


¿Qué es la tolerancia a fallas bizantinas?

Símbolos de herramientas y blockchain

La tolerancia a fallas bizantinas se refiere a la capacidad de una red o sistema para continuar funcionando incluso cuando algunos componentes están defectuosos o han fallado.

Con un sistema BFT, las redes de cadena de bloques siguen funcionando o implementando acciones planificadas siempre que la mayoría de los participantes de la red sean confiables y genuinos. Esto significa que más de la mitad o dos tercios de los nodos de la red blockchain deben aceptar validar una transacción y agregarla al bloque.

Para que los nodos comprometidos causen malicia en una cadena de bloques tolerante a fallas bizantina, deben ser la mayoría. Esta malicia puede ser en forma de doble gasto, un ataque del 51%, un ataque de Sybil, etc.

La tolerancia bizantina a fallas en la tecnología blockchain se origina en el problema general bizantino iniciado por Leslie Lamport, Marshall Pease y Robert Shostak. Este concepto se hizo prominente cuando publicaron un artículo, con una copia alojada en Microsoft, llamado ‘El problema de los generales bizantinos (PDF)’ en 1982.

Lamport, Pease y Shostak describieron el caso de un grupo de generales del ejército bizantino acampando frente a una ciudad enemiga. Cada general tenía su propio ejército y necesitaba comunicarse y tomar una decisión unánime sobre si atacar o retirarse.

El problema era realizar una acción conjunta entre unos generales comprometidos. Este dilema se denominó falla bizantina, y cuando un sistema aborda con éxito este problema, se dice que es tolerante a fallas bizantinas.

Ilustración del problema de los generales bizantinos.  Si todos los generales atacan en coordinación, se gana la batalla (izquierda).  Si dos generales declaran falsamente que tienen la intención de atacar, pero en lugar de eso se retiran, la batalla se pierde (derecha).
Crédito de la imagen: Lord Belbury/Wikimedia Commons

El concepto bizantino de tolerancia a fallas se aplicó luego a la red blockchain de criptomonedas. En el espacio criptográfico, los generales son los nodos que validan las transacciones criptográficas.

¿Cómo funciona la tolerancia a fallas bizantinas?

Las redes descentralizadas implementan la tolerancia a fallas bizantinas a través de reglas o protocolos de consenso. Todos los nodos de la red deben adherirse a estos protocolos o algoritmos si quieren participar en la validación y procesamiento de transacciones.

Para que una transacción sea validada, procesada y agregada a un bloque en crecimiento, la mayoría de los nodos deben aceptar que la transacción es auténtica a través del algoritmo de consenso de la red. Bitcoin, Ethereum y otras cadenas de bloques de prueba de trabajo (PoW) y prueba de participación (PoS) emplean algoritmos BFT.

En el algoritmo de consenso PoW, los mineros de la red resuelven acertijos criptográficos para validar y producir bloques que registran transacciones. El minero que resuelve los acertijos primero gana el derecho de agregar la transacción al bloque en crecimiento y ganar la recompensa del bloque. Pero el minero debe publicar pruebas de que resolvió el rompecabezas para agregar el bloque.

una imagen de la máquina de criptominería

El proceso de minería en cadenas de bloques PoW requiere computadoras costosas o plataformas de minería. Este alto costo desincentiva a los mineros de compartir información falsa porque otros participantes la rechazarían. También reduce la probabilidad de que actores malintencionados obtengan el control de la mayoría de los nodos del sistema.

Mientras tanto, con el mecanismo de consenso PoS, debe apostar una cierta cantidad de tokens criptográficos para obtener el derecho a validar la transacción. Luego, si el protocolo de red lo selecciona, puede agregar la transacción al bloque en crecimiento y ganar la recompensa del bloque.

Ilustración de criptomoneda en una cadena de bloques

Los sistemas PoS resuelven fallas bizantinas utilizando diferentes métodos. Por ejemplo, Ethereum usa el algoritmo Casper, que requiere al menos dos tercios de los nodos para llegar a un consenso sobre los bloques. En última instancia, los sistemas PoS necesitan que la mayoría de los nodos acuerden los bloques antes de que puedan agregarse.

Estas cadenas de bloques utilizan algoritmos de consenso BFT para resistir a los nodos minoritarios que no están de acuerdo con el consenso. De esta manera, la red blockchain puede continuar con su función, rechazando transacciones defectuosas o deshonestas.

El papel de la tolerancia a fallas bizantinas en la tecnología Blockchain

La tecnología Blockchain se basa en la tolerancia a fallas bizantina por estas razones:

  • BFT mantiene la red blockchain continuamente funcional, incluso con algunos nodos en desacuerdo.
  • Mantiene la red segura, evitando la malicia que puede presentarse en forma de un ataque del 51 % (o ataques de Sybil) o un doble gasto.

Limitaciones de la tolerancia a fallas bizantinas

La tolerancia a fallas bizantina ha traído enormes beneficios a la industria de la cadena de bloques. Sin embargo, el sistema todavía tiene problemas, especialmente el práctico algoritmo de consenso bizantino tolerante a fallas (pBFT).

La tolerancia a fallas bizantina práctica es una forma optimizada de la tolerancia a fallas bizantina original. pBFT funciona a través de un sistema asíncrono que consta de un nodo líder principal y otros nodos de respaldo. En este sistema, los nodos maliciosos no pueden ser más que los nodos honestos, generalmente no hasta un tercio. Los nodos siempre se comunican entre sí para garantizar que la mayoría de los nodos (los honestos) estén de acuerdo con el estado de la red.

Algunas limitaciones del pBFT incluyen lo siguiente:

  • Alta comunicación: para mantenerse funcional, el sistema requiere una mayor comunicación entre los nodos. Este proceso requiere mucho tiempo y conduce a problemas de escalabilidad.
  • Problemas de escalabilidad: pBFT tiene problemas con la escalabilidad, especialmente con redes que son muy extensas.
  • Baja seguridad: pBFT es propenso a ataques de Sybil, donde un nodo en la red pretende ser el 51% de los otros nodos para dominar la red y causar malicia.

Aquí hay algunas cadenas de bloques que integran los mecanismos bizantinos de tolerancia a fallas.

1. Bitcoin

Una captura de pantalla de la cadena de bloques de Bitcoin

Bitcoin incorpora la tolerancia a fallas bizantinas en su red a través del protocolo de consenso de prueba de trabajo. El algoritmo de consenso PoW de la cadena de bloques ordena a todos los nodos de la cadena de bloques que verifiquen la estructura de los datos, el tamaño del bloque, la marca de tiempo del bloque, el hash del encabezado del bloque y la primera transacción de cada dato. Este proceso, llamado hash de datos, utiliza poder computacional.

2. Etéreo

Una captura de pantalla de la cadena de bloques de Ethereum

Anteriormente usando PoW, la cadena de bloques de Ethereum ha hecho la transición a un sistema PoS que resuelve sus problemas bizantinos. Los validadores de red apuestan sus tokens de Ether, y el protocolo selecciona validadores honestos para procesar transacciones, validar bloques y votar por un jefe de cadena. El protocolo obliga a los participantes a ser honestos, lo que hace que atacar la red sea prohibitivamente costoso.

3. EOS

Una captura de pantalla de EOS.IO

EOSIO blockchain logra un consenso a través de una capa tolerante a fallas bizantinas asincrónicas (aBFT) y una capa de prueba de participación delegada (DPoS). La capa aBFT confirma cada bloque de transacciones hasta que es el último bloque irreversible (LIB). La capa DPoS luego confirma la LIB como el bloque irreversible final.

4. ondulación

Una captura de pantalla de la plataforma Ripple

Ripple no utiliza los mecanismos de consenso PoW o PoS. En su lugar, utiliza el Protocolo de consenso de libro mayor XRP, un mecanismo de consenso bizantino tolerante a fallas. La cadena de bloques continúa funcionando normalmente si los validadores que no son de confianza son menos del 20% del total de validadores. Este sistema evita el doble gasto y mejora la integridad de la cadena de bloques.

5. Cadena

Una captura de pantalla del sitio web de Kadena

Kadena utiliza un mecanismo de consenso ScalableBFT para confirmar bloques. La cadena de bloques combina el sistema PoW de Bitcoin con la alteración de múltiples mecanismos de consenso de cadena de bloques paralelos descentralizados que son energéticamente eficientes, escalables y seguros y proporcionan una salida mucho mejor que el sistema de Bitcoin. Esta configuración, llamada «Chainweb», permite a Kadena realizar hasta 480 000 transacciones por segundo (TPS) con 20 cadenas ejecutándose simultáneamente.

6. Quórum

Una captura de pantalla de la plataforma Quorum

El mecanismo de consenso para el criptosistema Quorum es el mecanismo de consenso de tolerancia a fallas bizantinas de Estambul (IBFT). QuorumChain delega los derechos de voto a un grupo de nodos (validadores); un nodo se convierte en el proponente para iniciar la confirmación del bloque mientras que los otros nodos validan el bloque. Si más de 1/3 de los nodos del grupo se comportan incorrectamente, el bloque no se insertará.

El futuro de la tolerancia a fallas bizantinas es brillante

Mientras las criptomonedas y la tecnología blockchain continúen existiendo, la tolerancia a fallas bizantina y otros mecanismos de consenso también existirán. Sin embargo, es probable que estos mecanismos continúen evolucionando.

Inicialmente, Ethereum integró BFT usando PoW, pero Ethereum cambió de PoW a PoS y actualizó su algoritmo BFT. Del mismo modo, seguirá viendo nuevos y mejores sistemas con el tiempo. Recuerde, el espacio criptográfico está en constante evolución.

Share.
Leave A Reply