¿Qué es Tendermint?
Tendermint es un algoritmo de consenso utilizado por muchos proyectos de blockchain. Tendermint Core está compuesto de:
- Un motor de consenso basado en PoS (Proof of Stake)
- La interfaz de aplicación de la cadena de bloques (ABCI) que actúa como una herramienta para que las cadenas de bloques se vinculen al protocolo Tendermint Core
El propósito de Tendermint es ser un motor de blockchain. Está pensado para ser una herramienta que los desarrolladores puedan utilizar para no tener que dedicar esfuerzos y recursos a la parte de la criptografía y saltar al desarrollo de aplicaciones y blockchains de más alto nivel.
Tendermint Core
Tendermint Core es un paquete de software de código abierto compuesto por dos partes principales. En primer lugar, un motor de consenso de blockchain tolerante a fallos bizantinos. En segundo lugar, un protocolo de red p2p.
- En el algoritmo de consenso de Tendermint se basa en el concepto fundamental de Tolerancia a Fallos Bizantinos (BFT). El BFT Proof-of-Stake de Tendermint permite que cien validadores confirmen de forma rápida y segura sus libros de contabilidad entre sí. El algoritmo BFT Proof-of-Stake supera el problema de los generales bizantinos utilizando un modelo de red parcialmente síncrono. Básicamente, esto significa que los validadores que votan un bloque no necesitan actuar en un momento preestablecido. Los bloques no se votan según un horario o un tamaño predeterminado. Tendermint consigue esto asignando primero al azar a los validadores el derecho a proponer un bloque. Una vez propuestos los bloques, los validadores votan en un proceso determinista de varias rondas. Es decir, el primer paso es bastante indiscriminado y el segundo sigue un orden prescrito. Con Tendermint, los validadores se rotan en un formato determinista de ronda ponderada. Cuanto más participaciones tenga un validador, más veces podrá ser elegido como líder. Actualmente, el protocolo tiene un límite de cien validadores, pero es posible aumentar el número de validadores si es necesario.
- Encima del núcleo de Tendermint está la interfaz de la cadena de bloques de aplicaciones (ABCI). La ABCI es un replicador bizantino tolerante a fallos de aplicaciones escritas en cualquier lenguaje. Puede replicar sus aplicaciones de blockchain escritas en C++, Python, Solidity o cualquier otro lenguaje en un motor de blockchain BFT prefabricado. El ABCI es el traductor, el envoltorio y el socket entre las aplicaciones de blockchain y el motor de blockchain Tendermint sobre el que se asientan.
El futuro de Tendermint está en el Cosmos
Los creadores del código de Tendermint han puesto en marcha un proyecto mucho más amplio llamado Cosmos. Diseñado para ser un Internet de blockchains, Cosmos conecta en red las aplicaciones basadas en Tendermint.
Una parte interesante de Cosmos es que las aplicaciones no tienen que ser construidas originalmente sobre Tendermint para trabajar dentro de los ecosistemas de Cosmos. Cosmos se aprovecha del replicador de aplicaciones de Tendermint, al colocar las cadenas de bloques existentes en el núcleo de Tendermint. Tendermint no sólo es un caldo de cultivo para aplicaciones blockchain modularizadas, sino también una máquina de clonación de blockchain.