Tendermint Explicado. Todo lo Que Debes Saber

Las cadenas de bloques que conoces y amas tienen una estructura bastante rígida. Como desarrollador, esto le brinda dos opciones: crear aplicaciones dentro de un entorno restrictivo o bifurcar el código y crear su propia cadena. Sin embargo, crear su propia cadena no es tan fácil; también debe iniciar una red y averiguar qué mecanismo de consenso utilizar. Tendermint es un software de código abierto para lanzar blockchains que le permite escribir aplicaciones en cualquier idioma. Mejor aún, pueden comunicarse con otras cadenas de bloques.

Introducción a Tendermint

Crear una red de criptomonedas o blockchain requiere mucho más esfuerzo que simplemente inicializar una base de datos. Requiere un delicado equilibrio de incentivos y compensaciones entre seguridad, descentralización y escalabilidad. Como era de esperar, los equipos que buscan construir los ecosistemas blockchain más fuertes han explorado una variedad de enfoques diferentes. En este artículo, veremos uno de esos enfoques: Tendermint.

Lo que Necesita Saber Sobre Tendermint

Gran parte de Tendermint te resultará familiar si conoces un poco las cadenas de bloques. Recapitulemos algunos conceptos clave antes de profundizar en ellos.

Entendiendo la arquitectura blockchain

Binance

Tendermint es una especie de pila de blockchain. Por otra parte, cosas como Bitcoin y Ethereum también lo son. Recuerde, no se trata solo de la base de datos blockchain en sí, sino también de la red de nodos de igual a igual, cómo interactúan y las cosas divertidas que puede hacer con las transacciones y los contratos inteligentes. El objetivo aquí es que todos estén de acuerdo en un estado (como una instantánea de la base de datos), incluso si no confían en nadie más.

En su mayor parte, las principales cadenas de bloques de hoy han creado la salsa secreta que lo hace posible. Sin embargo, a menudo se basan en una arquitectura monolítica: un concepto de ingeniería de software que significa que los componentes están interconectados y son interdependientes. No se podía simplemente tomar un pedazo y conectarlo a otra cosa.

La arquitectura monolítica no es genial si quieres flexibilidad. En el tipo de modelo opuesto (con arquitectura modular), puede ajustar componentes individuales sin preocuparse por romper nada. Con una estructura monolítica, debe asegurarse de que todos los componentes sigan siendo compatibles cuando actualice uno solo. Ahora que entendemos esta distinción, podemos hablar un poco más sobre el protocolo Tendermint.

Tolerancia a fallas bizantinas (BFT)

Es posible que sepa que la gran innovación con Bitcoin fue que resolvió algo llamado el problema de los generales bizantinos. No entraremos en detalles sobre el problema. Todo lo que necesita saber es que detalla un escenario en el que los participantes deben comunicarse en un entorno distribuido. 

Binance

Estos participantes no saben si otros mienten o si se están modificando los mensajes enviados entre ellos. Se dice que un sistema tiene tolerancia a fallas bizantinas (BFT) si los participantes pueden ponerse de acuerdo sobre un conjunto de hechos, incluso con esos problemas presentes.

Obviamente, en un entorno descentralizado, hacer esto bien es crucial. Las criptomonedas que no son tolerantes a fallas bizantinas no funcionan realmente; necesitaría algún tipo de coordinación centralizada de partes, lo que frustra el propósito. Al igual que muchas monedas digitales, Bitcoin evita esto mediante el uso de un algoritmo de consenso de Prueba de trabajo (PoW).

Las tres capas de una cadena de bloques

Entonces, conocemos la diferencia entre arquitectura monolítica / modular, y sabemos que las redes de criptomonedas descentralizadas deben ser tolerantes a fallas bizantinas. Mencionemos las capas que normalmente vemos en una cadena de bloques: la capa de aplicación, la capa de consenso y la capa de red.

Las capas de consenso y redes son aquellas en las que los nodos de la red se comunican entre sí y tratan de ponerse de acuerdo sobre un conjunto de hechos. La capa de aplicación es donde puede hacer las cosas usted mismo: piense en aplicaciones descentralizadas y contratos inteligentes en Ethereum o transacciones personalizadas en Bitcoin.

Tendermint Core

Primero, una rápida aclaración terminológica. Usaremos los términos “Tendermint” y “Tendermint Core” indistintamente aquí, ya que solo nos enfocamos en la tecnología. 

Sin embargo, Tendermint es el nombre de la empresa (fundada por el desarrollador que escribió el documento técnico original, Jae Kwon), mientras que Tendermint Core es el software real en el que trabaja la empresa. Más específicamente, el software tiene dos componentes principales: su motor de consenso central (Tendermint Core) y su interfaz de aplicación (ABCI).

Binance

Tendermint Core es un sistema que logra tolerancia a fallas. En esencia, es una computadora grande y distribuida que muestra a todos el mismo estado al mismo tiempo. Siempre que al menos dos tercios de los participantes sean honestos, todo funcionará sin problemas. Pero eso es prácticamente todas las cadenas de bloques, ¿verdad? ¿Qué lo hace tan especial?

En primer lugar, el mecanismo de consenso utilizado es una prueba de participación (PoS). Para cada período, se selecciona un nodo aleatorio de un conjunto de validadores. Ese nodo debe proponer el siguiente bloque (en algo llamado sistema de turnos). Si los otros validadores están contentos con él, se agrega el nuevo bloque y se actualiza la cadena. La finalidad es instantánea: a diferencia de Bitcoin o Ethereum, no es necesario esperar confirmaciones para asegurarse de que su transacción es válida.

¡Pero espera hay mas! La arquitectura de Tendermint Core es modular, con la capa de aplicación divorciada de las capas de consenso y redes. En términos sencillos, eso significa que puede conectar su propia capa de aplicación a la pila. No hay necesidad de preocuparse por los molestos incentivos o algoritmos de consenso. 

Quizás esto no sea demasiado emocionante para el usuario final. Pero para los desarrolladores, la capacidad de aprovechar un marco existente significa que pueden sumergirse directamente en la creación de aplicaciones sin tener que iniciar una red completa. Los datos de la cadena de bloques se pueden canalizar a la capa integrada, lo que permite a los desarrolladores escribir software en cualquier idioma.

La magia sucede con algo llamado Application Blockchain Interface, o simplemente, ABCI. Piense en esto como los pines GPIO que obtiene en una computadora Raspberry Pi. Puede conectar todo tipo de componentes de terceros a esos, desde LED hasta elaborados sistemas de rociadores para sus plantas. De manera similar, la ABCI es lo que define el límite entre la cadena de bloques y las aplicaciones que se ejecutan sobre ella.

¿Qué tiene de bueno Tendermint Core?

La separación de la interfaz de la aplicación y el mecanismo de consenso permite una mayor flexibilidad para que una gama de aplicaciones descentralizadas incorporen cualquier lenguaje de programación en su lógica empresarial.

Para obtener un ejemplo tangible de lo que se puede hacer, solo necesita mirar Ethermint: un proyecto que tomó la base de código Ethereum, eliminó el mecanismo de Prueba de trabajo y atornilló la Máquina virtual Ethereum encima de Tendermint.

Esto hizo posibles algunas cosas interesantes. La primera es que los desarrolladores de Ethereum podrían transferir sus contratos inteligentes al nuevo motor con facilidad o escribir nuevos contratos en el lenguaje de Solidity. Además de proporcionar la funcionalidad de Ethereum, Ethermint actúa como una prueba de participación en Ethereum, lo que nos da una idea de cómo se vería una implementación de Casper en Ethereum 2.0.

Interoperabilidad Blockchain

La promesa de un «Internet de cadenas de bloques» es lo que atrae a muchos a los protocolos basados ​​en Tendermint. La interoperabilidad es una adición muy esperada al espacio de las criptomonedas, ya que significa que cientos de cadenas de bloques individuales se volverían compatibles entre sí.

Binance

En la actualidad, se ha trabajado mucho en Cosmos SDK, un marco de código abierto que permite a cualquier persona crear una cadena de bloques pública o privada específica de la aplicación. Estas cadenas de bloques se pueden conectar a la red Cosmos más amplia, a través de algo llamado Cosmos Hub, donde pueden comunicarse con otros. Se han creado numerosos proyectos populares con Cosmos SDK, como Binance Smart Chain (BSC), KAVA, Band Protocol, Terra e IRISnet.

Pensamientos Finales

Como motor de cadena de bloques, Tendermint ha llamado la atención de numerosas partes interesadas en la esfera de las criptomonedas, desde desarrolladores hasta usuarios finales. Si el software continúa ganando terreno, muy bien podría servir como la columna vertebral de una Internet de cadenas de bloques. Como hemos visto, ya se han lanzado varios proyectos con Cosmos SDK para hacer realidad esta visión.

Binance

Artículos Relacionados

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.