Explorando Tendermint y Tendermint Core

Es posible que ya haya oído hablar de Tendermint y Tendermint Core en relación con la red Cosmos, o si ha seguido de cerca el mercado de las criptomonedas. En esencia, Tendermint busca ofrecer una alternativa de código abierto para lanzar blockchains. Es más, Tendermint Core es el middleware líder autoproclamado “Tolerante a fallas bizantino” cuando se trata de construir blockchains. Funciona en coordinación con Cosmos y es ventajoso para los desarrolladores porque pueden escribir sus aplicaciones en cualquier idioma.

Ahora, nos damos cuenta de que el primer párrafo por sí solo plantea muchas preguntas. Por ejemplo, ¿qué es la tolerancia a fallas bizantina? ¿Qué es Cosmos? Y si eres nuevo en todo esto, es posible que incluso te preguntes qué es una cadena de bloques. No te preocupes. Lo cubriremos todo.

Si desea aprender aún más sobre varias cadenas de bloques diferentes y la industria de las criptomonedas, ¡debe inscribirse en Ivan en Tech Academy! El blog Ivan on Tech Academy ofrece artículos diarios en profundidad que cubren todo lo que hay que saber sobre el ecosistema blockchain más amplio. Además, la Academia tiene docenas de cursos de blockchain que pueden llevarlo desde cero conocimientos previos hasta convertirse en un desarrollador de blockchain completo. ¿Que estas esperando? ¡Únase a más de 30.000 estudiantes en Ivan on Tech Academy!

¿Qué es la tolerancia a fallas bizantinas?

Para comprender la importancia de lo que hace Tendermint, primero debemos retroceder en el tiempo para ver cómo y por qué evolucionó.

En 1982, una científica informática llamada Leslie Lamport publicó un artículo que detallaba el problema de los generales bizantinos de lanzar un ataque coordinado contra una ciudad enemiga. Para entenderlo, uno debe imaginar divisiones de soldados bizantinos rodeando una ciudad con cada división comandada por un general. La única forma de comunicarse en esos días era por mensajero. Entonces, para coordinar un ataque simultáneo, los mensajes entre los generales tenían que ser válidos. Esta situación, naturalmente, planteó el problema de los traidores. ¿Y si los traidores plantaran mensajes falsos para interrumpir la comunicación entre los generales?

Lo que necesitaban los generales era una forma de garantizar que la información que recibían fuera correcta. No podían tener una pequeña cantidad de traidores que les impidieran llegar a un acuerdo ni los engañaran para que actuaran con un plan de acción equivocado. Pero resolver el problema de los traidores fue complicado porque nadie sabía quiénes podrían ser los posibles traidores.

Los Cypherpunks

Este problema de los generales bizantinos permaneció en el ámbito académico hasta que aparecieron los Cypherpunks en la década de 1990. Los Cypherpunks tenían que ver con la criptografía sólida y las tecnologías que mejoran la privacidad. Además, en su celo por el cambio social y político, querían crear una moneda global descentralizada sin ninguna autoridad o clase privilegiada de personas dirigiendo el espectáculo.

Sin embargo, la comunicación rápida solo era posible a través de una red, y eso trajo a colación el problema de los generales bizantinos una vez más. ¿Cómo se puede determinar el consenso cuando no hay forma de medir las identidades ni de determinar si un alto porcentaje de los participantes en una red de este tipo no eran todos la misma persona?

¿Qué es una Blockchain?

La solución a este problema llegó a través de la creación de blockchain. Una cadena de bloques es un libro de contabilidad digital, y las partes pueden compartir este libro sin depender de las figuras de la autoridad central. Cada parte almacena una copia del libro mayor y la actualiza de acuerdo con las reglas de protocolo de la cadena de bloques individual.

Sin embargo, al igual que los generales bizantinos, ¿cómo podría este libro de contabilidad digital proteger contra los traidores que difunden información falsa para enriquecerse? Para que la cadena de bloques funcione correctamente, necesitaba validadores porque cuando los nodos (computadoras en la red) recibían bloques de transacciones, tenían que tener una forma de verificar que cada transacción fuera válida.

Por lo tanto, la tecnología blockchain tenía que garantizar que el libro mayor digital se replicara correctamente para que cada nodo honesto pudiera ver la misma versión del libro mayor en cualquier momento.

Definiciones basicas

Antes de seguir adelante, definamos algunos de los términos anteriores. Una “máquina de estado” es un programa que contiene un estado. A medida que recibe entradas, modifica el estado. Dependiendo de la aplicación, un estado puede representar cosas como saldos de tokens. Por ejemplo, cuando el programa gasta tokens, cambia el estado para mostrar un saldo de menos tokens.

“Determinista” significa reproducir las mismas transacciones del estado de génesis siempre termina con el mismo estado resultante. Por último, “seguridad por consenso” se refiere a replicar la máquina de estado en nodos honestos. Cada nodo honesto, independientemente de la ubicación geográfica, debería ver el mismo estado al mismo tiempo.

Capas de Blockchain

A continuación, veamos las tres capas conceptuales de una cadena de bloques:

Capa de aplicación:

Actualiza el “estado” después de procesar las transacciones.

Capa de red:

Esta capa propaga transacciones y mensajes relacionados con el consenso.

Consenso:

Ocurre cuando los nodos están de acuerdo con el estado actual.

Por lo tanto, la máquina de estado define el estado de la aplicación y es la misma que la capa de la aplicación. Las otras capas replican la máquina de estado en todos los nodos.

“Estado replicado” es lo que hacen las redes blockchain. Replican estados en todos los nodos. Independientemente de dónde se ejecute un nodo en todo el mundo, obtendrán la misma cadena de bloques. Además, la seguridad está garantizada siempre que menos de un tercio de los validadores sean bizantinos (maliciosos).

¿Estás listo para profundizar en la tecnología blockchain? Comience hoy mismo con una educación blockchain de clase mundial en Ivan on Tech Academy.

La historia de Bitcoin

Ahora que comprende mejor la cadena de bloques, surge la pregunta de cómo llegamos allí. No pasaremos por todas las iteraciones de la evolución de la cadena de bloques desde el momento en que Leslie Lamport escribió sobre los generales bizantinos hasta los Cypherpunks y la creación de la primera cadena de bloques.

Baste decir que Satoshi Nakamoto hizo un gran avance en 2008 al incorporar el consenso distribuido tolerante a fallas bizantinas en un esquema de cadena de bloques. Una vez que eso sucedió, lo que había sido principalmente una curiosidad académica se trasladó a una aplicación del mundo real.

Bitcoin fue la primera cadena de bloques y utiliza Prueba de trabajo (PoW), que fue un mecanismo de consenso novedoso. Esta solución surgió de una manera que Vitalik Buterin (cofundador de Ethereum) describe como “criptoeconomía”. Es un concepto complejo que implica agregar aspectos económicos básicos y conocimientos del espacio de las criptomonedas, como criptografía, sistemas distribuidos, matemáticas, teoría de la información, algoritmos de consenso, funciones hash, pruebas de conocimiento cero y más.

Pero para nuestros propósitos, debemos comprender el hecho de que uno puede usar recursos económicos para determinar identidades.

Prueba de trabajo (PoW)

Esto nos lleva al consenso de PoW, donde aquellos con suficiente poder computacional para resolver complejos acertijos matemáticos se convierten en identidades confiables. Resuelve un rompecabezas y obtendrás una identidad. Con el mecanismo de consenso de Bitcoin, los mineros compiten para agregar nuevos bloques, y la probabilidad de éxito de cada minero es proporcional al esfuerzo computacional que realizan.

El documento técnico de Bitcoin propuso PoW, pero el concepto fue inventado anteriormente por Cynthia Dwork en 1993. Su caso de uso original fue un elemento disuasorio para los ataques de denegación de servicio y otros abusos, como la lucha contra el correo no deseado.

PoW era una idea revolucionaria cuyo momento había llegado mediante el cual los mineros podían intercambiar recursos computacionales por identidad. Entonces, en cuanto al problema bizantino de separar a los mensajeros honestos de los traidores, convertirse en un traidor en Bitcoin significaba tener que comprar mucho poder hash. Los posibles traidores maliciosos todavía tienen que lidiar con otras personas que también tienen mucho poder de hash invertido en hacer que Bitcoin prospere, lo que hace que sea inasequible destruirlo.

No pasó mucho tiempo antes de que otros se dieran cuenta del potencial de las aplicaciones descentralizadas (dApps), pero tampoco pasó mucho tiempo antes de que las limitaciones de Bitcoin se hicieran evidentes. Por un lado, el código base era monolítico, lo que significa que mezclaba las tres capas (aplicación, redes y consenso). Además, el lenguaje de secuencias de comandos de Bitcoin limitaba lo que los desarrolladores podían hacer con él.

La historia de Ethereum

En 2014, Ethereum apareció con una nueva forma de crear dApps. Esta cadena de bloques no vino con un lenguaje de programación limitado como Bitcoin. Solidity es un lenguaje completo de Turing que permite a los desarrolladores crear cualquier aplicación que puedan imaginar.

Ethereum convirtió la capa de la aplicación en la Máquina Virtual Ethereum (EVM), y la EVM podría procesar contratos inteligentes que los desarrolladores implementaron en la cadena de bloques Ethereum, permitiendo así que multitudes de desarrolladores comiencen a crear las últimas y mejores dApps. Sin embargo, pronto también se hicieron evidentes algunas limitaciones de Ethereum.

Usabilidad

EVM es una caja de arena que debe adaptarse a todos los casos de uso. Por lo tanto, se optimiza para el caso de uso promedio, lo que limita a los desarrolladores a unos pocos lenguajes de programación y podría obligarlos a comprometer la eficiencia y el diseño de su dApp.

Escalabilidad

Las dApps creadas en Ethereum están limitadas al competir por su parte de 30 transacciones por segundo con todas las demás dApps en una sola cadena de bloques. Para obtener más información sobre lo que Ethereum está haciendo sobre el problema de escalabilidad, lea nuestro artículo “Comparación de soluciones de capa 2 para Ethereum”.

Soberanía

Cada dApp comparte el entorno subyacente de Ethereum, lo que significa que hay esencialmente dos capas de gobernanza: la capa de aplicación y el entorno subyacente. Entonces, si la dApp tiene un error, la solución también debe cumplir con la aprobación del gobierno de Ethereum. Este requisito no es específico de Ethereum solo, sino de cualquier cadena de bloques que intente crear una única plataforma que se adapte a todos los casos de uso.

Aprenda todo sobre Ethereum en Ivan on Tech Academy. ¡Comience con el curso Ethereum 101!

La Solución Cosmos

Toda esta información de fondo nos lleva al Cosmos. No se preocupe, llegaremos a Tendermint, pero primero comprenda que Cosmos es un ecosistema de cadenas de bloques, o como se llaman a sí mismos, “el Internet de las cadenas de bloques”.

Las cadenas de bloques construidas en Cosmos pueden escalar y son interoperables entre sí. Antes de que apareciera Cosmos, las cadenas de bloques no podían comunicarse entre sí, solo podían manejar pequeñas cantidades de transacciones por segundo (TPS) y eran difíciles de construir.

Sin embargo, el sueño de Cosmos no es apoderarse del universo criptográfico como buscan otros proyectos. Cosmos se trata de conectar todo. Después de todo, no es probable que el futuro sea uno en el que una sola cadena de bloques se coma todo lo demás. El futuro en el que está apostando Cosmos es uno con muchas cadenas de bloques específicas de aplicaciones adaptadas de manera única para satisfacer las necesidades de los desarrolladores y usuarios individuales.

¿No crees que es hora de apostar por tu propio futuro? Aprenda cómo convertirse en un desarrollador de blockchain y únase a un mercado laboral al rojo vivo. Un buen lugar para comenzar es el curso Crypto for Beginners en Ivan on Tech Academy.

Cosmos quiere conectar cadenas de bloques a otras cadenas de bloques existentes, con el objetivo de conectar una gran cantidad de computadoras para que parezcan una sola computadora.

Cosmos Hubs y Zonas

En el ecosistema Cosmos, tenemos lo que se llama “centros” y “zonas”. Las zonas son cadenas de bloques soberanas (ya sean públicas o privadas), mientras que los centros actúan como coordinadores. Las diferentes zonas intercambian valor entre sí mediante transacciones a través de hubs. Entonces, si una zona quiere enviar monedas a otra zona, debe conectarse con un concentrador compartido. El protocolo que logra estas conexiones se llama Inter-Blockchain Communication (IBC).

Crear zonas y conectarlas a través de hubs es la característica sobresaliente de Cosmos. Y para los desarrolladores, crear una zona para el comercio descentralizado en Cosmos es relativamente fácil. Pero, ¿qué sucede si una zona se vuelve demasiado popular y se congestiona con el tráfico? Ahí es donde entra en juego la escalabilidad.

Escalabilidad de Cosmos

Cosmos presenta dos tipos de escalabilidad que pueden permitir que las dApps alcancen millones de usuarios.

Escalabilidad vertical:

Esta forma implica escalar la propia cadena de bloques.

Escalabilidad horizontal:

Este tipo de escala implementa múltiples cadenas de bloques. Es necesario porque cada una de las cadenas eventualmente choca contra un muro con respecto al rendimiento transaccional. La solución, por lo tanto, es tener múltiples cadenas paralelas ejecutando la misma aplicación. Estas cadenas deben ser monitoreadas por validadores comunes, pero teóricamente hace que las cadenas de bloques sean infinitamente escalables.

Un desarrollador puede crear una nueva zona que se ejecute en paralelo a la primera zona, y esa es la función de escala horizontal de Cosmos.

Entonces, Cosmos es un mundo de muchas zonas y centros que están interconectados y son escalables. Pero, ¿qué tiene que ver todo esto con Tendermint? Will Tendermint puede ayudar a que estas cadenas de bloques alcancen miles de TPS.

¿Qué es Tendermint?

La larga introducción fue necesaria porque Tendermint y Cosmos no se pueden separar. Los dos van de la mano. Sin embargo, para que cada uno sea distinto en su mente, piense en Tendermint como el software y en Cosmos como la cadena de bloques. Cada uno hace que el otro sea más valioso.

Cosmos es el centro de Internet de las cadenas de bloques creadas por los desarrolladores de Tendermint. Para describir esto con mayor precisión, Tendermint es un algoritmo de consenso, mientras que Tendermint Core representa la integración del algoritmo de consenso Tendermint BFT junto con el motor Tendermint Core.

Cosmos y Tendermint

Como se mencionó anteriormente, las cadenas de bloques vienen conceptualmente en tres capas:

Solicitud
Redes
Consenso

Antes de que apareciera Tendermint, crear blockchains significaba construir las tres capas desde cero, lo que requería mucho tiempo y esfuerzo. El objetivo de Tendermint era proporcionar un motor estándar que se ocupara de las capas de red y consenso, por lo que lo único en lo que los desarrolladores tenían que centrarse era en la capa de aplicación.

Entonces, Tendermint es un motor blockchain que sirve como puerta de entrada al ecosistema Cosmos. Además, las zonas que mencionamos anteriormente pueden ser cualquier cosa que los desarrolladores puedan crear con Tendermint.

Eso significa que Tendermint permite a los desarrolladores construir redes abiertas, distribuidas e interoperables. También significa que cada blockchain en Cosmos está impulsada por el consenso de Tendermint tolerante a fallas bizantino. Por lo tanto, no hay necesidad de una autoridad única y confiable y, como ya sabe, la tolerancia a fallas bizantina significa que Tendermint puede manejar hasta 1/3 de las máquinas que fallan (lo que incluye comportamiento malicioso).

Prueba de participación (PoS)

Pero volvamos a Bitcoin. El problema con PoW como mecanismo de consenso es que es un gran desperdicio de energía que no augura nada bueno en la era moderna del cambio climático. Había que explorar otras soluciones.

El foro BitcoinTalk discutió una de esas soluciones, Proof-of-Stake (PoS), en 2011. Pero fue Jae Kwon (inventor de Tendermint) quien comenzó a hablar sobre la aplicación de la investigación de tolerancia a fallas bizantinas a una cadena de bloques de PoS en 2014.

El PoS de investigación inicialmente buscaba lograr la misma seguridad que un PoW sin consumir recursos escasos (energía) para hacerlo. Por lo tanto, solucionar los problemas de escalabilidad, los altos costos generales y las preocupaciones ambientales de ejecutar mineros PoW impulsaron la investigación de PoS.

Altos riesgos frente al trabajo duro

La solución a esto es PoS, donde la red puede usar grandes riesgos en lugar de trabajar duro para asegurarla. Cosmos Proof of Stake es un mecanismo de consenso creado con Tendermint que permite a cualquiera participar en la apuesta.

Además, los desarrolladores pueden agregar módulos Staking y Slashing para admitir un sistema de prueba de participación más avanzado. Cortar es otra idea de Jae Kwon, como una forma de castigar a los actores maliciosos cortando su participación.

No profundizaremos en PoS con sus características de replanteo y recorte en este artículo, pero para obtener más información, lea.

Hay más funciones de las que tenemos tiempo, pero una de las principales conclusiones es que, debido a que Tendermint se encarga de todo menos de la lógica de la aplicación, los desarrolladores pueden crear cualquier cadena de bloques que deseen (siempre que la aplicación sea determinista). Todo esto se suma para hacer que la construcción de blockchain sea más rápida y fácil, lo que significa un sinfín de posibilidades para el futuro.

¿Estás listo para comenzar tu viaje para convertirte en un desarrollador de blockchain? Si quieres aprender a crear dApps increíblemente creativas, ¡inscríbete en Ivan on Tech Academy ahora!

Autor: MindFrac

CriptoMundo

CriptoMundo.com es un medio digital independiente que difunde noticias y contenido sobre criptomonedas y tendencias emergentes de tecnologías financieras. Ofrece noticias, guías, artículos de opinión y gráficos en tiempo real.

Monedas

Bitcoin

Ethereum