¿Qué es Tezos (XTZ)?
La blockchain Tezos (XTZ) es una red blockchain diseñada con el fin de ofrecer smart contracts con una alta escalabilidad y con opciones de programación avanzadas en comparación con las que podemos encontrar en Ethereum (ETH).
Algo que este proyecto puede lograr gracias a su infraestructura modular, fácilmente actualizable y el uso de Prueba de Participación Líquida (Liquid Proof of Stake – LPoS) como su algoritmo de consenso para obtener un alto rendimiento. Adicional, sus smart contracts pueden ser programados tanto en su lenguaje nativo, como en otros lenguajes, lo que le brinda una flexibilidad enorme en este sentido.
Historia y orígenes de Tezos
Los orígenes de Tezos comienzan el 3 agosto de 2014, con la publicación del conocido “Position Paper” o “Papel de Posición”, del proyecto Tezos. El documento cuyo nombre completo es “Tezos: un libro mayor criptográfico auto-modificable” fue presentado por LM Goodman, el cual era el seudónimo de Arthur Breitman. En dicho documento quedaban asentados los objetivos del proyecto, los cuales eran cuatro:
- Primero, buscaba resolver el problema de los hard fork, el cual evita a la actualización dinámica de las blockchain, retrasando y dificultando la innovación.
- Problemas de costo y centralización planteados por el sistema de Prueba de Trabajo (Proof of Work – PoW) de Bitcoin (BTC).
- La expresividad limitada del lenguaje de transacciones de Bitcoin (Bitcoin Script), lo que ha llevado a los smart contracts hacia otras blockchains.
- Problemas de seguridad con respecto a la implementación de una criptomoneda.
Con la publicación de este documento, Breitman examinó a profundidad cada uno de estos problemas, y proponía soluciones para los mismos dentro de su proyecto Tezos. Sin embargo, no fue sino hasta el 2 de septiembre de 2014, cuando se liberaría el whitepaper de Tezos, dando así base completa a este proyecto.
En el whitepaper quedaba claro el objetivo de crear a Tezos como un “libro mayor criptográfico auto-modificable”. Algo que se lograría bajo las siguientes condiciones:
- Creando un protocolo de red que genera, verifica y valida bloques y transmite transacciones.
- Diseñando un protocolo de transacción especifica qué hace que una transacción sea válida.
- Diseñando un protocolo de consenso que forma consenso en torno a una cadena única.
Lanzando la ICO de Tezos
En todo caso, construir esta red apenas era una idea y hacerla realidad quería más que un documento técnico especificando en palabras lo que haría. Fue así como en 2017, nació la Fundación Tezos, una organización sin fines de lucro con sede en Suiza. La Fundación planificó una ICO con la cual logró recaudar un total de 232 millones de dólares.
Con el dinero en su poder, se puso en marcha el desarrollo real del proyecto. Sin embargo, el 22 de febrero tuvieron su primer revés, cuando el presidente de la Fundación Tezos, Johann Gevers tuvo que renunciar debido a una controversia sobre el uso de los fondos de la ICO. Pasados estos hechos, el desarrollo de Tezos continuó y fue el 30 de junio de 2018, cuando se dio inicio a la historia de la blockchain de Tezos, generando su bloque génesis.
Seed Protocol, el protocolo que maneja el funcionamiento de Tezos
El Seed Protocol o Protocolo Semilla, es el nombre que recibe el protocolo génesis de Tezos. Es por decirlo de una forma sencilla, una serie de reglas que rigen el funcionamiento de Tezos desde su origen hasta nuestros días. Las reglas del Seed Protocol reflejan la forma en como Tezos maneja todo lo referente a la generación de monedas, protocolo de consenso, la interactividad de sus validadores, el funcionamiento de sus smart contracts e incluso su gobernanza.
En ese sentido, el Seed Protocol tiene en su potestad el control de los elementos más relevantes de la blockchain, así que examinemos cada uno de ellos con mayor detenimiento.
Control de monedas
Tezos es una blockchain que usa un token para sus operaciones internas, el token Tezos (XTZ). Dicho token tiene una existencia limitada a 10 mil millones de monedas. Sin embargo, en su bloque génesis fueron liberadas al ecosistema cerca de 700 millones de moneda a un total de 32 mil direcciones Tezos, respetando los acuerdos de la ICO que dio financiación a esta criptomoneda.
El resto de monedas son liberadas al ecosistema mediante un sistema de ajuste a la emisión que tiene lugar dentro del protocolo. En la actualidad, dicha emisión por bloque está establecida en 40 XTZ por bloque. Sin embargo, en ningún momento esta inflación puede superar el 5% anual, esto siguiendo lo estipulado en el Seed Protocol de Tezos.
Otro punto relevante en el control de moneda de Tezos es que las monedas de una cuenta que no se movilizan por más de un año, son quemadas. Esto con el objetivo de mantener el sistema activo económicamente.
XTZ, el token nativo de Tezos
El token nativo de Tezos es el XTZ, y es un token multipropósito. Puedes adquirir el mismo y usarlo como medio de pago o como medio para interactuar con los servicios que hacen vida en la blockchain de Tezos y sus smart contracts.
Sin embargo, el potencial de este token se centra sobre todo en el control e interacción con smart contracts, la gobernanza de la blockchain y su proceso de generación de bloques. De hecho, el uso de este token en la blockchain es muy parecido al que el Ether tiene dentro de Ethereum. Cada interacción en Tezos genera un costo en “Gas”, que luego es traducido en su respectiva comisión en tokens XTZ.
Pero la comparación entre el Gas de Tezos y Ethereum termina allí, porque en Tezos la fórmula para calcular el costo de una comisión, es completamente distinta. Esa fórmula es la siguiente:
fees >= m_fees + (m_nanotez_per_byte * size) + (m_nanotez_per_gas_unit * gas)
Esto es:
- m_fees: es el fee mínimo dentro de la plataforma que equivale a 0,0001 ꜩ
- m_nanotez_per_byte: es la cantidad mínima nanotezos que puedes pagar por cada byte el cual es de 1000 nꜩ/B (0,000001ꜩ/b).
- size: hace referencia al tamaño en bytes que ocupa la operación.
- m_nanotez_per_gas_unit: es la cantidad mínima nanotezos que puedes pagar por cada unidad de gas la cual es de 100 nꜩ/gu (0,0000001 ꜩ/gu)
- gas: la cantidad de gas que usara por completo la operación.
Así, por ejemplo, si tenemos que una operación gastará unos 10000 Gas, y tiene un peso de 128 bytes, la comisión mínima de esa operación sería el siguiente:
Fee = 0,0001 ꜩ + (0,000001ꜩ/b * 125 bytes ) + 0,0000001 ꜩ/gu * 10000 g
Fee = 0,001225 ꜩ (aprox. 0,002 $)
Esto nos deja muy en claro que las comisiones en Tezos son muy económicas, incluso más que en Ethereum, y al mismo tiempo el papel fundamental de los tokens XTZ dentro de esta red. Por supuesto, este ejemplo es solo el mínimo, y sus tus comisiones son muy pequeñas, los validadores en medio de una alta demanda pueden no atender con prioridad tus transacciones haciendo que debas subir tus comisiones a los fines de ver verificada tu transacción.
LPoS, el protocolo de consenso de Tezos
Liquid Proof of Stake o Prueba de Participación Líquida (LPoS) es un algoritmo derivado de la Prueba de Participación (Proof of Stake – PoS). Este protocolo está pensado en permitir que los validadores extraigan un bloque, y luego necesiten un conjunto de firmas para ofrecer validez a dicho bloque, todo ello de forma aleatoria.
Es decir, un grupo de validadores generan un bloque, pero solo aquel bloque que logre alcanzar el conjunto de firmas necesarias en primer lugar, será el elegido para ser parte de la blockchain. El resto de bloques generados son rechazados, y se reinicia el proceso. Este proceso de generación de bloques es el que gana la recompensa de 40 XTZ, y quienes firman también ganan una pequeña recompensa.
Adicionalmente, LPoS incluye algunas protecciones contra la llamada doble firma, que es un evento en el que un validador intenta firmar y avalar dos bloques distintos al mismo tiempo, en una carrera por ganar comisiones a como dé lugar. En este caso, LPoS penaliza estas acciones con la pérdida de las ganancias de dicho bloque.
Baking, horneando el próximo bloque
El proceso de creación de un bloque en Tezos se llama Baking. Esto es así porque a los validadores se les da el nombre de “Bakers” o Panaderos. El trabajo de los Bakers, es disponer de poder computacional y un staking de tokens XTZ, que les da el derecho a producir bloques de acuerdo a su participación en el sistema. Este proceso se realiza bajo las reglas del protocolo de consenso LPoS descrito anteriormente.
Para convertirte en un Baker en Tezos debes contar con mínimo un staking de 8000 XTZ, pero mientras mayor sea tu participación, mayor será tu probabilidad de generar un bloque. Adicional a esto, para generar un bloque, el Baker debe hacer un depósito de seguridad (su “Prueba de participación”) de 512 XTZ por bloque.
Este depósito está bloqueado durante unos 14 días y es una protección contra trampas. Si el Baker realiza un doble firmado o doble generación de bloques, o rompe alguna otra regla dentro de LPoS, este Baker perderá todo su depósito de seguridad (512 XTZ). Sin duda una protección bastante fuerte contra este tipo de trampas, pero que no te sorprenda, pasa muy a menudo la verdad, como puedes ver esta imagen.
Delegación para el baking
Si alguien no tiene 8.000 XTZ o no quiere configurar una infraestructura informática para hacer baking, puede delegar sus monedas en un baker. Delegar permite que los poseedores de monedas “presten” sus monedas a un panadero. Como resultado, el panadero tiene una mayor probabilidad de ser seleccionado y, a su vez, el panadero comparte los ingresos adicionales con el poseedor de la moneda. Es importante destacar que este proceso en realidad no transfiere la propiedad de las monedas. El panadero no puede gastar el XTZ que le ha sido delegado y los bakers no pueden huir con el dinero de otras personas.
Han surgido grupos que ofrecen tarifas competitivas por sus servicios de repostería, y la mayoría cobra entre un 10% y un 20% de las recompensas que las personas obtienen al delegar en ellas.
Regla de elección de la bifurcación
La última clave que hay que entender sobre el algoritmo de consenso de Tezos es cómo el protocolo decide qué bifurcación de cadena es la “correcta”. La regla de elección de la bifurcación de Bitcoin es simple: la cadena más larga es la correcta o canónica. Tezos elige la cadena canónica basándose en la cantidad de bakers que respaldaron el bloque. Se ha mencionado anteriormente que los bakers tienen derechos de horneado para crear bloques, pero que los bakers también tienen la segunda responsabilidad de respaldar los bloques. En cada altura de bloque, se seleccionan 32 tiradas al azar para respaldar un bloque, y el bloque con más respaldos se trata como el canónico.
Cuando un panadero respalda un bloque que eventualmente se convierte en el bloque canónico, obtiene una recompensa de XTZ. Por lo tanto, se incentiva a los bakers a respaldar el bloque que creen que otros bakers también respaldarán, también conocido como bloques de alta prioridad. Al igual que para hornear, los bloques de endoso requieren que los bakers apuesten 40 XTZ por endoso. Esto evita el problema de nada en juego.
Smart Contracts dentro de Tezos
Otra parte importante del funcionamiento de Tezos son sus smarts contracts. De hecho, en este sentido los smart contracts son controlados de una forma muy parecida a los smart contracts de Ethereum. Es decir, las acciones y programación de los mismos tienen un determinado costo en Gas, que debe pagarse en tokens XTZ, a los fines de que puedan ejecutarse.
Pero lejos de este parecido, los smart contracts de Tezos son programados en el lenguaje Michelson, en lugar de Solidity como pasa en Ethereum. Michelson es el lenguaje específico del dominio que se utiliza para escribir contratos inteligentes en la cadena de bloques de Tezos. Dicho lenguaje está basado en pilas y no tiene variables. Los lenguajes orientados a pilas operan en una o más pilas, cada una de las cuales puede tener un propósito diferente. Esto le permite una enorme versatilidad a costa de ser mucho más complejo de manejar.
Pero adicional a esto, se pueden programar smart contracts en otros lenguajes usando una capa de abstracción. La primera capa es SmartPy el cual permite programar smart contracts para Tezos usando Python. Y la segunda es LIGO, que permite programar en lenguajes como Pascal, Camel y Reason. De hecho, el lenguaje de programación OCaml es el lenguaje nativo bajo el que está programado el core de Tezos.
En este punto te preguntarás ¿Por qué otro lenguaje de programación? Pues bien, en el caso de Tezos, el lenguaje Michelson es mucho más práctico. Con más potencia que Solidity, velocidad, estructuras de datos estándares built-in, una mayor precisión decimal, y una sintaxis mucho más limpia, Michelson es por mucho un lenguaje mejor estructurado. Adicionalmente, la capacidad de usar framework para programar smart contracts usando otros lenguajes, como el bien conocido Python o Pascal, le ofrece a Tezos una potencia que Solidity en Ethereum no ha alcanzado.
Adicional la existencia de smart contracts habilita a esta plataforma para la creación de tokens fungibles y no fungibles (NFT). En este punto, los tokens fungibles de Tezos son compatibles con el estándar ERC-20 de Ethereum, y están especificados en el TZIP-7. Lo mismo pasa con los tokens no fungibles (NFT), los cuales siguen a los estándares ERC-721 y ERC-1155 de Ethereum, y están especificados en el TZIP-12 de Tezos. De esta manera, Tezos puede crear puentes de comunicación entre los tokens de Ethereum y su blockchain de forma muy sencilla.
Gobernanza del proyecto
La gobernanza de Tezos recae en una estructura on-chain que permite a sus participantes proponer, seleccionar, probar y activar actualizaciones de protocolo sin la necesidad de un hard fork.
En términos simples, esto significa que Tezos es una cadena de bloques que puede mejorarse a sí misma con el tiempo al tener un proceso formalizado para actualizaciones de protocolo. En la práctica, esto es similar a la estructura de una corporación, donde los accionistas pueden votar sobre la dirección de la empresa.
Muchas otras cadenas de bloques no tienen este tipo de estructura de gobierno formal, por lo que la dirección de estos proyectos a menudo la decide un pequeño grupo de desarrolladores o una fundación, que puede o no representar a todas las partes interesadas de manera justa.
Este proceso es posible gracias al proceso de auto enmienda, que está dividido en cuatro periodos. El primer periodo, es el de propuesta donde se elevan las propuestas de cambios a la comunidad. Seguidamente, pasa el periodo de exploración de votación, momento en el cual, los bakers pueden votar sobre la propuesta mejor clasificada del período de propuesta anterior. Los bakers pueden votar “Sí”, “No” o “Abstenerse” en una propuesta específica.
El tercer periodo es el periodo de prueba, momento en el cual se inician las pruebas en testnet de la propuesta. Si la propuesta pasa esta etapa de pruebas, entonces pasa al último periodo. Este último periodo es el periodo de votación de la promoción, en el cual se vuelve a votar para decidir definitivamente si la propuesta entra o no al protocolo Tezos. Esto solo será posible si la propuesta alcanza una votación con una participación con un quorum mínimo (51% de todos los participantes) y una mayoría de bakers a su favor (80% de los bakers).
El hecho de que las mejoras se manejan de esta forma también nos indica que existe un repositorio de propuestas al estilo de los Bitcoin Improvements Proposals (BIP). Ese repositorio de propuestas o Tezos Improvements Proposals (TZIP) puede verse en este enlace.