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


Visita
CARDANO Community Hub- España / Uruguay / Argentina (Centro de Comunidad)
Ăšnete   
Delega en el Stake Pool ADA BOOSTER  👉Ticker: [BOOST] para apoyar a la comunidad.
 
 
Sitio web asociado, Cardano en  Argentina http://cardano.ar

 

TraducciĂłn/ Extracto.

12 de octubre de 2020  Prof.Simon Thompson

Prof Simon Thompson

https://iohk.io/en/blog/posts/2020/10/13/actus-financial-smart-contracts-in-marlowe/

 

Comentarios

Entradas populares de este blog

¿QuĂ© es el ROI o ROA?

¿QuĂ© es Cardano?

Variable fee and rewards