ACTUS y Marlowe
Este tutorial ofrece una introducción a la idea general de las normas ACTUS para la representación algorítmica de los contratos financieros, además de ejemplos implementados en Marlowe.
ACTUS
La ACTUS Financial Research Foundation https://www.actusfrf.org ha creado una norma para los contratos financieros, clasificados mediante una taxonomía y descritos en una especificación técnica detallada.
Las normas ACTUS se basan en el entendimiento de que los contratos financieros son acuerdos legales entre dos (o más) contrapartes sobre el intercambio de flujos de efectivo futuros. Históricamente, estos acuerdos legales se describen en un lenguaje natural que conduce a la ambigüedad y a la diversidad artificial. Como respuesta, las normas ACTUS definen los contratos financieros por medio de un conjunto de términos contractuales y funciones deterministas que mapean estos términos en obligaciones de pago futuras. De este modo, es posible describir la gran mayoría de los instrumentos financieros mediante un conjunto de poco más de 30 tipos de contrato o plantillas modulares, respectivamente.
Las especificaciones de ACTUS proporcionan una gran cantidad de ejercicios para su implementación en Marlowe, e ilustramos una forma de hacerlo en el siguiente ejemplo.
Ejemplo de Bono Simple de Cupón Cero
Un bono de cupón cero es un título de deuda que no paga intereses (un cupón), sino que se emite con un descuento, lo que hace que se obtengan beneficios al vencimiento cuando el bono se amortiza por su valor nominal completo.
Por ejemplo, un investor puede comprar un bono que cuesta 1000 Lovelace con un 15% de descuento. Le paga 850 Lovelace al emisor del bono antes de la hora de inicio, aquí 10.
Más tarde, después de la fecha de vencimiento, el tiempo 20 aquí, el inversor puede canjear el bono por su nocional completo, es decir 1000 Lovelace.
Este contrato tiene un inconveniente importante. Una vez que el investor ha depositado los 850 Lovelace, se pagarán inmediatamente al issuer (si el investor no invierte a tiempo, el contrato termina). Después de esto, son posibles dos resultados
- el issuer deposita 1000 Lovelace en la cuenta del investor, y esto se paga inmediatamente al investor en su totalidad;
- si el issuer no hace el depósito, entonces el contrato se cierra y se devuelve todo el dinero del contrato, pero no hay dinero en el contrato en este momento, por lo que el investor pierde su dinero.
¿Cómo podemos evitar este problema del incumplimiento del issuer ?
Hay al menos dos maneras de resolver esto: podríamos pedir al issuer de depositar el importe total antes de que comience el contrato, pero eso anularía el objetivo de emitir la fianza en primer lugar. De forma más realista, podríamos pedir a un tercero que fuera garante de la operación.
Ejercicio
Da una variante del contrato zeroCouponBond en la que es necesario que el issuer ponga el valor total del cupón antes de la emisión del bono.
Ejercicio
Da una variante del contrato zeroCouponBond que también incluye un guarantor quién pone la totalidad del pago antes de la emisión del bono, y quién pagará a esa contraparte si el emisor incumple; si el emisor realiza el pago a tiempo, el garante recuperará su dinero.
Ejemplo de Bono de Cupón Garantizado
Este bono más complejo implica a un investor que deposita 1000 Lovelace, que se pagan inmediatamente al issuer. El issuer entonces tiene que pagar como interés 10 Lovelace cada 10 slots. Al vencimiento, el inversor debe recibir los intereses más el valor total del bono.
Ejercicio
Da una variante del contrato zcouponBondFor3Month12Percent que también incluye un guarantor quién pone la totalidad del pago antes de la emisión del bono, y quién pagará a esa contraparte si el emisor incumple; si el emisor realiza el pago a tiempo, el garante recuperará su dinero.
IOHK tiene previsto aplicar la norma ACTUS completa utilizando Marlowe y Plutus durante el próximo año.
© Copyright 2020, IOHK Revision 7ab62ce9.
Encuentra una copia oficial de este documento aquí:
https://alpha.marlowe.iohkdev.io/doc/marlowe/tutorials/actus-marlowe.html
https://docs.cardano.org/projects/plutus/en/latest/marlowe/tutorials/actus-marlowe.html
Más traducciones de Cardano en: Cardano For The World