Contratos inteligentes en Marlowe
Marlowe es un lenguaje especĂfico de dominio para contratos
inteligentes financieros seguros que está siendo desarrollado por IOHK para las
capacidades de Goguen de la cadena de bloques Cardano. Veremos los detalles del lenguaje y las diversas formas de escribir contratos
inteligentes de Marlowe a medida que avanzamos hacia la era de las finanzas
descentralizadas (DeFi).
Marlowe en pocas palabras
Marlowe es un lenguaje pequeño, con un puñado de constructos que, para cada contrato, describen un comportamiento que involucra un conjunto finito y fijo de roles .
- Un contrato en ejecuciĂłn puede realizar un pago a un rol o a una clave pĂşblica.
- De forma complementaria, un contrato puede esperar una acción de uno de los roles, como un depósito de moneda, o una elección entre un conjunto de opciones. Fundamentalmente, un contrato no puede esperar indefinidamente: si no se ha iniciado ninguna acción en un tiempo determinado (el tiempo de espera ), el contrato continuará con otro comportamiento, como el reembolso de los fondos del contrato.
- Dependiendo del estado actual de un contrato, puede elegir entre dos cursos de acciĂłn futuros, que en sĂ mismos son contratos.
- Cuando no se requieran más acciones, el contrato se cerrará y se reembolsará cualquier moneda restante en el contrato.
Cuando se ejecuta un contrato, los roles que implica los cumplen los participantes , que son identidades en la cadena de bloques. Este modelo permite que se transfiera un rol durante la ejecuciĂłn del contrato, de modo que los roles en un contrato en ejecuciĂłn puedan intercambiarse . Cada rol está representado por un token en la cadena, y transferir esto transfiere la capacidad de realizar las acciones del rol. Llevando esto más allá, podemos representar un solo rol con mĂşltiples tokens, permitiendo asĂ que el rol se comparta: esto podrĂa denominarse 'titulizado'.
El sistema de Marlowe
Elegimos deliberadamente hacer el lenguaje lo más simple posible, para que sea sencillo de implementar en Cardano y en Marlowe Playground. Marlowe describe el flujo de criptomonedas entre los participantes, y para que esto se implemente en la práctica en la cadena de bloques de Cardano, el código debe ejecutarse tanto dentro como fuera de la cadena: recuerde, sin embargo, que solo un contrato de Marlowe describe ambas partes. Fuera de la cadena, el contrato de Marlowe se presentará a través de la interfaz de usuario y la billetera, ofreciendo o, de hecho, automatizando depósitos y opciones y recibiendo pagos en criptomonedas.
Figura 1. Marlowe Playground simula las formas en que se comportan los contratos
En el playground podemos simular el comportamiento del contrato, de modo que los usuarios potenciales puedan recorrer las diferentes formas en que evolucionarán los contratos, de acuerdo con las diferentes acciones tomadas por los participantes. La simulación de billetera permite a los usuarios ver el comportamiento desde la perspectiva de un participante en particular, simulando asà cómo ese usuario interactuará con el contrato en ejecución una vez que se implemente en la cadena de bloques.
La simulaciĂłn, el análisis estático y la prueba proporcionan niveles complementarios de garantĂa para un contrato en el que los usuarios comprometerán activos para garantizar que el contrato se comporte como deberĂa.
RedacciĂłn de contratos de Marlowe
Hemos visto cĂłmo los contratos de Marlowe se pueden analizar de varias maneras, pero ¿cĂłmo escriben los autores contratos inteligentes en Marlowe? El playground ofrece varias formas de producir contratos de Marlowe. Los usuarios pueden escribir a Marlowe directamente, pero los principiantes a menudo optan por crear contratos visualmente, utilizando un editor interactivo de Blockly. La Figura 2 muestra una secciĂłn de un contrato de depĂłsito en garantĂa.
Figura 2. Un contrato de depĂłsito en garantĂa en el editor interactivo Blockly de Playground
Trabajar en este editor visual tiene la ventaja de mostrar
todas las opciones a medida que selecciona cĂłmo completar una parte del
contrato que se está desarrollando. Alternativamente, puede desarrollar
contratos en Haskell, porque Marlowe DSL está integrado en Haskell. La Figura 3
muestra el mismo contrato en Haskell: las partes azul y violeta son Marlowe, y
los componentes negros están definidos en Haskell, como abreviaturas que hacen
que el contrato general sea más legible.
Figura 3. El contrato de depĂłsito en garantĂa en Haskell
Este enfoque permite a los usuarios crear un contrato inteligente paso a paso a partir de los componentes. En el cĂłdigo que se muestra en la Figura 3, se pide a los roles, Alice y Bob, que tomen una decisiĂłn: si sus elecciones coinciden, están de acuerdo y el contrato se desarrolla de una manera; si no es asĂ, se le pide a una tercera participante, Carol, que arbitre entre ellos.
Los usuarios también podrán escribir sus contratos financieros inteligentes utilizando JavaScript, sin dejar de disfrutar de todas las ventajas del análisis, la simulación y la prueba, tal como lo proporciona la implementación de Marlowe.
Oráculos
Una de las primeras preguntas que nos hacen cuando describimos a Marlowe es sobre los oráculos financieros o cómo podemos obtener un contrato para tener en cuenta los valores de datos externos, como el tipo de cambio entre ada y bitcoin.
De manera abstracta, un oráculo es como un participante que toma una decisión, por lo que la semántica de Marlowe ya puede lidiar con valores externos. Sin embargo, planeamos respaldar los valores de oráculo como parte de la implementación, permitiendo que los contratos accedan a los valores directamente desde un ticker del mercado de valores o una fuente de datos como Coinbase. Al mismo tiempo, el equipo de Plutus está investigando la mejor manera de lidiar con los oráculos en general, y podemos esperar apoyo para eso a su debido tiempo, aunque tal vez no en la primera versión completa de Marlowe y Plutus Application Framework.
¿QuĂ© es Marlowe?
https://liberlion.blogspot.com/2020/10/que-es-marlowe.html
TraducciĂłn/ Extracto.
12 de octubre de 2020 Prof.Simon Thompson
https://iohk.io/en/blog/posts/2020/10/13/actus-financial-smart-contracts-in-marlowe/
Comentarios
Publicar un comentario