Introducción
Desde que Bitcoin se introdujo por primera vez como sistema de efectivo electrónico en 2008; Posteriormente se crearon muchas otras monedas, cada una con sus propios mecanismos únicos. Sin embargo, algo que casi todas las monedas digitales tienen en común es su elemento arquitectónico básico: la tecnología Blockchain.
Con algunas excepciones, blockchain está diseñada para ser descentralizada y funcionar como un libro de contabilidad digital mantenido por una red descentralizada de nodos informáticos. Debido a esto, la tecnología blockchain permite la creación de un sistema económico sin confianza, donde la transparencia y confiabilidad de las transacciones financieras pueden ocurrir sin la necesidad de intermediarios. Las monedas digitales se adoptarán como una alternativa de pago que reemplace a los bancos y los sistemas de pago tradicionales, que dependen en gran medida de la confianza.
Como ocurre con la mayoría de los sistemas informáticos distribuidos, los participantes en una red de moneda digital deben ponerse de acuerdo periódicamente sobre el estado actual de la cadena de bloques, y esto es lo que llamamos llegar a un consenso. Sin embargo, lograr consenso en una red distribuida, de manera honesta y segura, es muy difícil de lograr.
Por lo tanto, ¿cómo se acuerda una decisión en una red de nodos informáticos distribuidos? ¿Si algunos nodos pueden fallar o comportarse de manera deshonesta? Esta es una cuestión fundamental conocida como problema bizantino general, que dio lugar a un concepto llamado tolerancia a fallos bizantinos.
¿Es ese un problema bizantino común?
En resumen, el problema general bizantino nació en 1982 como un dilema lógico que ilustraba cómo un grupo de generales bizantinos podía tener problemas para comunicarse para ponerse de acuerdo sobre su próximo movimiento.
Este dilema supone que cada general tiene su propio ejército y cada grupo está ubicado en un lugar diferente de la ciudad que quieren atacar. Los generales debían ponerse de acuerdo sobre si atacarían o se retirarían. No se trataba de atacar o retirarse, siempre y cuando los generales llegaran a un consenso, por ejemplo: acordar una decisión que se llevaría a cabo según órdenes.
Por tanto, hay varias cosas que se deben determinar:
Cada general debe decidir; si atacar o retirarse (sí o no);
Una vez que se toma cada decisión, no se puede cambiar;
Cada general debe estar de acuerdo con la misma decisión y ejecutarla dentro de las reglas establecidas simultáneamente.
Los problemas de comunicación descritos anteriormente están relacionados con el hecho de que un general sólo puede comunicarse con otro a través de mensajes, que son enviados por mensajeros. Lo mismo desafía el Problema General Bizantino de modo que la entrega del mensaje se ve ligeramente obstaculizada, puede destruirse o perderse.
Además, incluso si el mensaje se envía con éxito, uno o más generales pueden optar (por cualquier motivo) por actuar maliciosamente y enviar una respuesta destinada a confundir a los demás generales, lo que podría provocar el fracaso del ataque.
Si aplicamos este dilema al contexto de blockchain, cada general representa un nodo de la red y ese nodo necesita llegar a un consenso sobre el estado actual del sistema. En otras palabras, la mayoría de los participantes en una red distribuida deben acordar y ejecutar la misma acción para evitar el fracaso total.
Por lo tanto, la única forma de lograr consenso para este tipo de sistema distribuido es tener ⅔ o más de los nodos de la red honestos y confiables. Esto también puede significar que si la mayoría de los participantes de la red deciden actuar de manera maliciosa, el sistema será muy vulnerable a fallas y ataques (como un ataque del 51%).
Tolerancia a fallas bizantinas (BFT)
En otras palabras, la tolerancia a fallas bizantinas es propiedad de un sistema que puede evitar fallas causadas por el dilema del problema común bizantino. Esto también puede significar que el sistema BFT puede continuar funcionando incluso si algunos nodos fallan o se comportan incorrectamente.
Hay varias soluciones al problema bizantino general y también hay varias formas de construir un sistema BFT. Además, existen varios enfoques de blockchain que pueden lograr BFT y esto nos llevará a algoritmos de consenso.
Algoritmo de consenso de blockchain
Podemos definir un algoritmo de consenso como un mecanismo mediante el cual una red blockchain alcanza un consenso. las implementaciones más comunes son Prueba de trabajo (PoW) y Prueba de participación (PoS). pero tomemos Bitcoin como ejemplo.
El protocolo Bitcoin define las reglas principales para el sistema Bitcoin, y es el algoritmo de consenso PoW el que determina cómo se siguen esas reglas para lograr el consenso (por ejemplo, al verificar y validar transacciones).
Aunque el concepto de Prueba de Trabajo es más antiguo que otras monedas digitales, Satoshi Nakamoto desarrolló una versión modificada como algoritmo que permite utilizar el proceso de creación de Bitcoin como un sistema BFT.
Cabe señalar que el algoritmo PoW no es 100% tolerante a fallas bizantinas, pero debido a un proceso de minería muy costoso y las técnicas de criptografía subyacentes, PoW ha demostrado ser la implementación de red blockchain más segura y confiable. En este caso, muchas personas consideran que el algoritmo de consenso de prueba de trabajo diseñado por Satoshi Nakamoto es una solución genial para la falla bizantina.
Conclusión
El problema general bizantino es un dilema interesante que finalmente dio lugar al sistema BFT, que se aplica ampliamente en muchos escenarios. Además de en la industria blockchain, los sistemas BFT también se utilizan en muchas otras industrias, como la aviación, el espacio y la industria de la energía nuclear.
En el contexto de las monedas digitales, tener una comunicación de red eficiente, junto con un buen mecanismo de consenso, es muy importante para cualquier ecosistema blockchain. Proteger estos sistemas es un esfuerzo interminable y los algoritmos de consenso actuales aún tienen que superar algunas de las limitaciones que aún enfrentan (como el escalamiento). Aun así, PoW y PoS son un enfoque no menos interesante que los sistemas BFT, y sus aplicaciones potenciales inspiran una innovación generalizada.
