Cartesi es un proyecto de segunda capa (Layer 2) que busca ofrecer funciones avanzadas para la creación de dApp mediante un sistema de computación distribuida verificable, apoyado en la tecnología blockchain y con enormes capacidades de escalabilidad y seguridad.
El mundo de las dApps se está transformando rápidamente, y cada vez son más los proyectos que se interesan en el mismo. Uno de ellos es Cartesi, un proyecto de segunda capa (Layer 2) que está centrado en ofrecer capacidades únicas para el despliegue de dApps avanzadas bajo el concepto de computación distribuida verificable, un revolucionario concepto que puede cambiar radicalmente la forma en cómo interactuamos y cómo funcionan las dApps en ecosistemas blockchain.
¿Qué es Cartesi?
Cartesi es una plataforma especializada en el despliegue de dApps mediante una Layer 2. La intención de este proyecto es permitir que las dApps puedan ser ejecutadas on-chain y off-chain, con los mismos resultados gracias a que sus operaciones pueden ser completamente verificadas una vez alcanzan la red.
Para lograr esto, Cartesi utiliza un sistema híbrido que permite un funcionamiento de nodos a nivel on-chain y off-chain. El funcionamiento on-chain es idéntico al que podemos ver ahora en plataformas como Ethereum (ETH) o Solana (SOL), donde las dApps está en uno o más smart contracts repartidos en varias direcciones de la red, y a la que podemos acceder para interactuar. La ejecución de este tipo de dApps es posible gracias a las Máquinas Cartesi, que son no son más que «máquinas reproducibles» que se encargan de ejecutar el código de la dApps y bajo cualquier circunstancia, ofrecen un resultado idéntico que luego es verificado por los actores de la red y almacenado en la blockchain.
Sin embargo, las Máquinas Cartesi permiten que estas dApps también pueden ejecutarse off-chain y luego cuando tengan una conexión, enviar esos datos a la red para su verificación. De esta forma, se hace posible usar dApps de forma off-chain, realizar las operaciones que deseemos y, al final, enviar todos esos datos para que la red verifique los mismos y los incluya en el historial de la blockchain de forma segura, dado que si se encuentra algún fallo, este puede ser corregido sin problemas.
El lado positivo de este funcionamiento ofrecido por Cartesi es que sus «máquinas reproducibles» pueden usar todo el poder de procesamiento disponible de los nodos y dispositivos que están conectados a la red. Es decir, podemos usar el poder la CPU, GPU y demás recursos computacionales de los que dispongamos, logrando que la ejecución de smart contracts sea extremadamente rápida.
Historia de Cartesi
Cartesi (CTSI) es un proyecto que inició en el año 2018 gracias a Erick de Mora, Augusto Teixeira, Colin Steil y Diego Nehab. De estos cuatro personajes, Augusto Teixeira es una figura conocida en el mundo cripto, ya que fue uno de los creadores de IOTA. La idea inicial tras el proyecto era tomar lo mejor de la capacidad de IOTA, su altísima integración hardware y llevarla a un extremo aplicable a nuevos campos de tecnología blockchain como lo es la IA sobre blockchain, o de sistema de cómputo distribuido sin confianza. Esa fue la semilla de lo que luego se convertiría en Cartesi.
La idea llamó la atención de dos grandes empresas: Microsoft y ETH Zurich, quienes ya tenían experiencia en el campo y que vieron una oportunidad única de investigar un nuevo campo tecnológico. El resultado de todo este esfuerzo era crear un sistema blockchain reproducible (donde Microsoft aportó su conocimiento) y que utiliza una arquitectura libre y sobre la cual podrían apoyar su desarrollo (donde ETH Zurich es un gran conocido industrial por su apoyo a RISC-V y la creación de otras iniciativas libres de arquitecturas del tipo RISC).
Así fue como el proyecto evolucionó hasta convertirse en una infraestructura de dos capas en el entorno Linux totalmente versátil. Esto con el objetivo de superar los principales problemas de escalabilidad e infraestructura para las aplicaciones ejecutadas en la cadena de bloques.
¿Cómo funciona Cartesi?
Cartesi (CTSI) es un proyecto blockchain que permite crear aplicaciones descentralizadas altamente escalables. Para lograrlo, Cartesi crea una estructura de funcionamiento híbrida en la que:
- Existe una blockchain (en segunda capa) donde se comparten y almacenan datos sobre transacciones y smart contracts desplegados en la red. Dicha red funciona gracias al protocolo de consenso de Proof of Stake (PoS) y que es impulsado por el token nativo CTSI del tipo ERC-20 desplegado en Ethereum.
- Existe una máquina reproducible (Máquina Cartesi), capaz de funcionar off-chain y sobre la que ejecutan los smart contracts de forma separada al resto de nodos de la red, aligerando la carga de consenso, lo que mejora la escalabilidad y velocidad de respuesta general de la red.
Todo esto mientras se construye usando tecnologías libres, seguras, privadas, portables y que garantizan la descentralización en todo momento. De esta manera, Cartesi puede ofrecernos dApps potentes, flexibles y con capacidades no vistas hasta el momento. Pero ¿Cómo funciona todo esto?
¿Qué es una máquina reproducible en Cartesi?
Podemos asimilar a una máquina reproducible de Cartesi como un conjunto de software que es capaz de mimetizar el funcionamiento de una máquina computacional de forma perfecta, y que cumple con tres condiciones:
- Es que dicha máquina o conjunto de software, puede construirse desde cero por dos o más individuos, en distintas condiciones y locaciones, sin comunicación entre sí, y obtener como resultado el mismo conjunto de software y la máquina relacionada con el mismo.
- Si ejecutamos un mismo conjunto de instrucciones en todas esas máquinas construidas, sin importar las condiciones, el resultado final será el mismo.
- El resultado final podrá ser verificable en cada uno de sus pasos, y contará al mismo tiempo con stamps temporales y criptográficos que ayuden a probar su validez en cualquier otra máquina reproducible de su tipo.
Las tres condiciones pueden ser difíciles de entender, así que veámoslo con el siguiente ejemplo:
Supongamos que tenemos las instrucciones para construir una calculadora. Esas instrucciones nos dicen cómo debe funcionar el software y hardware de la calculadora en todo momento. Motivados por la curiosidad, Carlos, Ana y Miguel deciden cada uno construir en sus respectivas casas una calculadora usando dichas instrucciones. ¿Resultado? Las han construido, las calculadoras son idénticas tanto a nivel de software como de hardware, y cualquier operación que realizan en ellas tiene el mismo resultado sin importar en cuál calculadora se realice. Todas son máquinas reproducibles.
Importancia de las máquinas reproducibles
Claro, el ejemplo es sencillo, pero te ofrece una idea de lo que es una máquina reproducible y de su utilidad. De hecho, el ser humano siempre ha buscado patrones reproducibles para distintas cosas. Por ejemplo, en un principio tratamos de hacer las mediciones de tiempo utilizando el Sol, luego cambiamos a dispositivos mecánicos, electromecánicos e, incluso, nucleares. De todos ellos, curiosamente el más reproducible es el nuclear, porque la naturaleza del átomo permite crear una máquina que indique el valor de un segundo con una exactitud inimaginable.
En informática ocurre lo mismo. Programas tan comunes como Firefox o Chrome cumplen con el paradigma de «construcción reproducible» que permite que dichos programa se puedan construir a través de una serie de instrucciones y que, al final, la construcción pueda ser exacta a cualquier otra que se realice del mismo programa y versión.
Todo esto resulta muy útil como «medida anti trampas» ya que, al ser reproducible, podemos reconocer fácilmente si el programa, máquina o resultado ha sido alterado, lo que nos ayuda a incrementar la seguridad en todo momento. Cartesi hace lo mismo, genera software y máquinas reproducibles, que nos garantiza que no se pueda hacer trampa, y une dicha funcionalidad a toda la seguridad que ya blockchain nos ofrece, sin duda, un paso más en pro de la seguridad.
¿Qué hay dentro de cada Máquina Cartesi?
Cada Máquina Cartesi es en realidad una máquina virtualizada que utiliza la arquitectura RISC-V. Esta máquina virtual está escrita en C/C++, con el fin de brindar la mayor velocidad y acceso a hardware posible. De esta manera, un nodo Cartesi ejecuta una máquina Cartesi mediante todo el potencial que pueda brindar el hardware donde se ejecuta dicha máquina.
Para interactuar con la máquina, Cartesi ha diseñado una interfaz gRPC (parecida a la que usa Ethereum con su RPC Web3) y que permite el control remoto de la máquina Cartesi. Esta interfaz es nuestra puerta de entrada para interactuar con la máquina y los smart contracts que se ejecuten en ella.
Como toda máquina, la máquina Cartesi cuenta con un procesador, memoria, almacenamiento y demás elementos que funcionan por medio de virtualización, y que son capaces de acceder a hardware directo si así se le permite. En todo caso, la máquina virtualizada es controlada por un sistema operativo Linux, que se encarga de realizar todas las operaciones que le son solicitadas: desde iniciar la máquina, hasta cargar el smart contract que está almacenado en ella.
Instrucción de las máquinas Cartesi
Ahora bien, sabemos que las máquinas Cartesi ejecutan código que le ofrecemos ¿Pero qué código es el que ejecutan? Pues bien, si en Ethereum utilizan Solidity para sus smart contracts, en Cartesi se puede usar cualquier lenguaje que se desee.
Las máquinas Cartesi no están limitadas a un lenguaje pueden usar el que deseen, siempre y cuando esté soportado por el sistema. Esto es posible porque cada máquina Cartesi es en realidad una construcción reproducible de un sistema operativo Linux usando una arquitectura conocida como RISC-V.
El uso de RISC-V va en consonancia de hacer la máquinas Cartesi muy portables y de pequeño tamaño, y el uso de Linux ayuda a que la generación del sistema sea software libre y con un rápido desarrollo. Además, la elección ayuda a que se puedan generar dApps usando lenguajes como C/C + +, Python, Lua, Perl, e incluso Vala. A esto se le pueden unir frameworks conocidos como GTK, QT muy conocidos en el mundo Linux o .NET Framework, desarrollado por Microsoft. Y eso, es sólo una parte de las posibilidades de este sistema.
En definitiva, Cartesi permite a los desarrolladores de dApps utilizar todos los lenguajes de programación, herramientas, bibliotecas, software y servicios con los que ya están familiarizados y que estén soportados por las arquitecturas disponibles en las máquinas Cartesi. De esa manera, al trasladar la mayor parte de la compleja lógica de sus dApps a componentes portátiles fuera de la cadena, los desarrolladores se liberan de las limitaciones e idiosincrasias impuestas por las cadenas de bloques. De este modo, Cartesi permite a los desarrolladores seleccionar el mejor entorno de ejecución en el que alojar cada parte de sus DApps.
Ventajas de las máquinas Cartesi
¿Qué ventajas nos supone todo esto? Pues bien entre ellas podemos mencionar:
Escalabilidad
Las dApps se ejecutan dentro de las Máquinas Cartesi pueden procesar cantidades prácticamente ilimitadas de datos, y a un ritmo más de 4 órdenes de magnitud más rápido. Esto es posible porque las Máquinas Cartesi funcionan fuera de la cadena, libres de la sobrecarga impuesta por los mecanismos de consenso utilizados por las cadenas de bloques.
En un escenario típico, una de las partes involucradas en una dApp ejecutará la Máquina Cartesi off-chain y reportará sus resultados a la blockchain. Las diferentes partes no necesitan confiar entre sí porque la plataforma Cartesi incluye un mecanismo de disputa automático para sus máquinas. Todas las partes interesadas repiten el cálculo fuera de la cadena y, si sus resultados no coinciden entran en una disputa. El mecanismo garantiza que siempre ganará una parte honesta frente a cualquier parte deshonesta.
Para permitir este mecanismo de disputa, las Máquinas Cartesi se ejecutan dentro de un virtualizador especial que contiene tres propiedades únicas:
- Las Máquinas Cartesi son autocontenidas: Se ejecutan aisladas de cualquier influencia externa en el cálculo;
- Son reproducibles: dos partes que realizan el mismo cálculo siempre obtienen exactamente los mismos resultados;
- Son transparentes: exponen todo su estado para su inspección externa.
Productividad
Gracias a que Cartesi es capaz de «liberalizar» el desarrollo de dApps mediante herramientas conocidas y bien asentadas, además de acceder a todo el potencial del hardware donde se ejecuta, es posible mejorar la productividad tanto a nivel de desarrollo como de uso en dichas dApps.
Cartesi ha elegido la arquitectura RISC-V por que la considera una arquitectura madura, rápida y con futuro prometedor. RISC-V es la primera arquitectura de procesadores que no nació en el seno de una empresa privada, sino de una universidad, la UC Berkeley y, cuyo ISA (Conjunto de Instrucciones) es completamente libre. RISC-V es apoyada fuertemente por su comunidad y un conjunto de empresas busca convertir dicha arquitectura en un fuerte oponente a ARM (la arquitectura de los smartphones y Mac) y X86 (la de los PC y portátiles).
Token CTSI de Cartesi
El token Cartesi (CTSI) es el token encargado de hacer funcionar la red sidechain que une a todos los nodos de la red Cartesi. Esta red sidechain recibe el nombre de Noether, y es impulsada por un protocolo de consenso del tipo Proof of Stake (PoS).
Entre las funciones del token podemos destacar:
- Sirve para dar recompensas a los staker que apoyan a la red con sus tokens.
- Los nodos usan CTSI para medir el poder de voto de los mismos y con ello elegir a quien será el validador de transacciones de un bloque en su historial.
- Sirve para el pago de comisiones dentro de la red.
- Permite el uso en dApps en la red Cartesi.
El suministro total está limitado a 1.000.000.000 CTSI. De este total :
- El 25% de los tokens están destinados al sistema de recompensas.
- El 57,33% se destina al equipo de la red, a los asesores y a la reserva de la fundación.
- En el año 2017 se vendió el 2% del suministro total en una ICO durante todo el mes de agosto.
- Dos años después, en una “Private Sale Token” se vendió el 5% del suministro total. En el mismo año se recaudaron 200.000 USD en una “Strategic Sale Token” con el 0,67% del suministro total de tokens.
- Por último se destinó el 10% restante a un “Launchpad Sale” donde se recaudó 1.500.000 $.
Conclusiones
Cartesi es un proyecto único en su estilo con capacidades para hacer realidad conceptos como la IA y Machine Learning sobre blockchain, la construcción de nubes computacionales autocontenidas, metaversos y más, de tal manera que su ejecución sería cientos de veces más rápida que siguiendo el esquema de funcionamiento que actualmente tienen las cadenas de bloques.
Cuenta con una construcción compleja, pero con una proyección enorme demostrada en proyectos como Carti, Creepts o SimRacer. En todo caso, se trata de una tecnología que aún debe evolucionar y seguir mejorando para poder explotar todo su potencial.