Analizando de cerca la investigación de Cardano, segunda parte. A continuación, más información sobre el innovador modelo EUTXO de Cardano y sobre cómo facilita unos smart contracts más eficientes.
En nuestro anterior entrega de esta serie de artículos hablamos de la investigación en la que se basan algunos de los elementos centrales de Cardano, como el staking, la delegación y el reparto de recompensas. En esta ocasión, resumimos los trabajos que ayudaron a establecer una plataforma de smart contract funcional para el desarrollo de aplicaciones descentralizadas (DApp), habilitada por el modelo de contabilidad
Extended Unspent Transaction Output (EUTXO).
UTXO vs modelo basado en cuentas
Bitcoin y Ethereum están entre las blockchain más populares en la actualidad. Emplean dos modelos de contabilidad de libro mayor bastante diferentes para hacer un seguimiento de la distribución y la propiedad de los fondos de los usuarios. Ambos modelos son el modelo de salida de transacciones no gastadas (UTXO) de Bitcoin y el modelo basado en cuentas, empleado por Ethereum entre otros blockchain.
El modelo UTXO ofrece una garantía de seguridad en el núcleo de las actividades financieras. Mientras que el modelo semántico de UTXO se mantiene simple en un entorno informático complejo, concurrente y distribuido, es bastante limitado en su apoyo a los smart contracts. Ethereum escogió el modelo basado en cuentas explícitamente para facilitar contratos inteligentes más expresivos.
Respondiendo a la pregunta de si es posible tener contratos inteligentes expresivos manteniendo la simplicidad semántica del modelo UTXO, los investigadores del IOG propusieron las soluciones ‘El modelo UTXO extendido’ y
‘Tokens nativos personalizados en el modelo UTXO extendido’. Los dos trabajos de investigación se publicaron en 2020 y describen completamente el modelo EUTXO implementado en Cardano.
Según Manuel Chakravarty, científico de Lambda y arquitecto de Plutus en Input Output Global, Inc:
El modelo de libro mayor UTXO [ledger], largamente probado por Bitcoin, sigue siendo el estándar de oro en cuanto a seguridad y escalabilidad. Creamos el modelo UTXO ampliado (EUTXO) para obtener el nivel de expresividad de los smart contracts, en el que fue pionero Ethereum, sin dejar de mantener la seguridad y la escalabilidad inigualables de UTXO. Sencillamente, ¡queríamos lo mejor de ambos mundos!
La investigación “The Extended UTXO Model” evidencia la capacidad de EUTXO para mantener continuamente el estado del contrato y utilizar el mismo código de contrato a lo largo de toda la secuencia de transacciones. Otra potente característica del modelo EUTXO es que las tarifas requeridas para una transacción válida pueden predecirse con precisión antes de contabilizarla. Esta es una característica única impulsada por el diseño determinista del modelo EUTXO, que no se encuentra en los modelos basados en cuentas.
Plutus
Los smart contract son el motor de la ejecución de las transacciones en Cardano. Son autoejecutables, por lo que no dependen de terceros.
Durante la Conferencia Internacional sobre Programación Funcional de ACM SIGPLAN (ICFP’19), Manuel Chakravarty habló de las blockchain funcionales y, en particular, presentó Plutus como un enfoque funcional de los smart contracts:
Avanzar rápido y romper cosas no es la forma correcta de construir una plataforma blockchain. Las cosas rotas no se pueden arreglar fácilmente. Por lo tanto, Plutus fue construido sobre la sólida base matemática de la programación funcional. Es una plataforma de programación para contratos inteligentes, que incluye elementos como bibliotecas Haskell para escribir contratos inteligentes, un compilador de Haskell a código Plutus Core on-chain, y varias herramientas para ayudar al desarrollo.
La mayoría de las plataformas de programación de blockchain dependen de un lenguaje personalizado, como el Solidity de Ethereum. Plutus se ha realizado sobre Haskell. La elección de Haskell permitió a los equipos de investigación e ingeniería del IOG reutilizar la infraestructura, las bibliotecas y las herramientas existentes de Haskell con un historial establecido para el software de alta seguridad. Haskell facilita un código conciso y reutilizable, al tiempo que simplifica el razonamiento informal, las pruebas y el uso de métodos formales para alcanzar el nivel de seguridad deseado. Los métodos formales, como la forma más estricta de razonamiento sobre la corrección del código, son de especial interés para los smart contracts de alto valor y están bien respaldados por el paradigma de la programación funcional.
Los equipos de investigación e ingeniería del IOG entregaron contratos inteligentes Plutus basados en documentos como ‘El modelo UTXO ampliado’,
‘Tokens nativos personalizadas en el modelo UTXO ampliado’,
‘Desentrañando la recursividad: compilación de un IR con recursividad al sistema F’, y
‘El sistema F en Agda, por diversión y beneficio’. En conjunto, estos documentos establecen el modelo de libro mayor habilitado para contratos inteligentes de Cardano, así como la representación en la cadena del código de los contratos como los llamados términos lambda. ‘System F in Agda, for fun and profit’ incluye una rigurosa definición matemática, que fue comprobada por ordenador con la ayuda del prover de teoremas de Agda.
Plutus se ha convertido en una plataforma de programación viva y en evolución para los smart contracts en Cardano. El equipo de educación de IOG también ha lanzado el Programa Pionero de Plutus para reclutar y formar a desarrolladores en Plutus para el ecosistema de Cardano. Puede encontrar más información sobre el programa aquí.
Marlowe
Mientras que Plutus es un lenguaje de programación de contratos inteligentes funcionales, Marlowe es una plataforma basada en la web para construir y ejecutar contratos inteligentes financieros de bajo coste de forma visual, sin necesitar conocimientos profundos de programación. Abre un abanico de casos de uso para que los no programadores puedan ejecutar contratos sencillos y optimizados para las transacciones financieras.
El primer documento de investigación que presenta Marlowe, “Marlowe: contratos financieros en blockchain”, se publicó en 2018. En este artículo se explora el diseño de un lenguaje de dominio específico dirigido a la ejecución de contratos financieros. Presenta una semántica ejecutable de Marlowe en Haskell, un ejemplo de Marlowe en la práctica, y describe la herramienta que permite a los usuarios interactuar en el navegador con simulaciones de contratos Marlowe.
Más adelante, en 2020, el equipo de investigación del IOG publicó un documento sobre ‘Análisis estático eficiente de los contratos Marlowe’, en el que se presenta el resumen del trabajo de optimización del análisis estático de los contratos Marlowe. ‘Marlowe: implementación y análisis de contratos financieros en blockchain’ siguió para describir la implementación de Marlowe en Cardano y el entorno de desarrollo y simulación basado en la web del Marlowe Playground. El documento también muestra que los contratos de Marlowe pueden ser analizados exhaustivamente antes de ejecutarlos, ofreciendo así fuertes garantías a los participantes en el contrato.
Marlowe ya se encuentra disponible para que las personas lo prueben dentro del Marlowe Playground - un entorno sandbox basado en el navegador donde se puede desarrollar, simular y probar el proceso de escritura de smart contracts. El IOG se está preparando actualmente para el lanzamiento de la red de pruebas de Marlowe y utilizará el Programa de Pioneros de Marlowe para recoger opiniones y casos de uso en todo el conjunto de productos de Marlowe. El equipo ha entregado recientemente la herramienta Marlowe CLI para permitir a los usuarios enviar transacciones e interactuar con los contratos de Marlowe utilizando una interfaz de línea de comandos. Cuando se lancen a la red principal, los contratos Marlowe abrirán un abanico de posibilidades de DeFi.
Ahora que hemos hablado de las características del modelo EUTXO de Cardano y de cómo facilita el desarrollo de smart contracts en Cardano, seguiremos hablando de la investigación que permitió el soporte de múltiples activos. Esté atento a la próxima entrega de esta serie de artículos.
Traducción al español de “Overview of the research enabling smart contract support on Cardano”, escrito por @Olga_H ryniuk, Escritora Técnica en IOG, el 22 de junio de 2022.
Notas del traductor
-
Corchetes del traductor.
-
indica que el enlace apunta a un contenido en idioma inglés.
-
indica que el enlace apunta a un contenido en idioma español.