Traducción al español de Cardano Smart Contracts
Publicado por Cardanians en su blog de Medium, el 16 de Octubre de 2019.
En este artículo describiremos qué problemas resuelven los contratos inteligentes, y por qué los necesitamos. También explicaremos cómo funcionan. Finalmente, hablaremos de los lenguajes que se implementaron para los contratos inteligentes de Cardano: Plutus y Marlowe.
La forma antigua de crear un contrato
La idea sobre los contratos inteligentes es probablemente más antigua de lo que crees. Los contratos inteligentes fueron propuestos por primera vez por Nick Szabo, quien acuñó el término en 1994. Puedes leer su trabajo original, aquí.
¿Qué es un contrato?
En primer lugar, echemos un vistazo a la definición del diccionario de un contrato:
"Acuerdo escrito u oral, especialmente uno concerniente a empleo, ventas o tenencia, que se pretende que sea exigible por ley".
Un contrato es un acuerdo entre dos partes que acuerdan mutuamente comportarse o actuar como lo establece el contrato. Por lo general, el contrato debe tener una forma específica (fecha, condiciones, nombres, firmas) y si alguna de las partes no está de acuerdo con la actuación o no actuación de la otra parte, entonces la ley debe comprometerse a resolver la cuestión.
La cuestión es que en el mundo real un contrato en papel no puede imponer el comportamiento correcto u honesto de los participantes. Debe haber un tercero que resuelva todos los posibles problemas. Así pues, existen los denominados contratos jurídicamente vinculantes. “Legalmente vinculante” significa que las partes deben obedecer los términos escritos en el contrato y cumplir con sus obligaciones contractuales como se indica. Si no lo hace, puede tener consecuencias legales, como una indemnización por daños y perjuicios.
Podemos evitar el intermediario cuando queremos enviar una transacción. Una red distribuida puede actuar como intermediario y garantizar que una transacción enviada por Alice a Bob se procese como se espera si se cumplen todas las condiciones. Bitcoin lo hace bastante bien.
¿Por qué contratos inteligentes?
¿Y si pudiéramos crear un contrato digital y usarlo de manera similar como una transacción entre Alice y Bob? ¿Qué pasaría si Alice y Bob pudieran crear un contrato digital entre ellos, utilizando una red distribuida como intermediario, que asegure la correcta ejecución y haga que ambos actúen con honestidad? Esto es exactamente lo que un contrato inteligente puede hacer. Veamos lo que Nick Szabo escribió al respecto en su trabajo:
“También vemos que para implementar una transacción completa entre cliente y proveedor, necesitamos algo más que el protocolo del dinero digital; necesitamos un protocolo que garantice que el producto será entregado si se realiza el pago y viceversa. Los sistemas comerciales actuales utilizan una amplia variedad de técnicas para lograr esto, como el correo certificado, el intercambio cara a cara, la confianza en el historial crediticio y las agencias de cobranza para otorgar créditos, etc. Los contratos inteligentes tienen el potencial de reducir en gran medida los riesgos de fraude y la aplicación de la ley de muchas transacciones comerciales. Los protocolos del dinero digital utilizan varios de los nuevos y sofisticados building blocks que provienen de los campos de la criptografía y la informática. La mayoría de estos componentes aún no han sido ampliamente explotados para facilitar los acuerdos contractuales, pero el potencial es enorme”.
…
“Por último, podemos extender el concepto de contratos inteligentes a la propiedad. Las propiedades inteligentes pueden crearse mediante la integración de contratos inteligentes en objetos físicos. Estos protocolos integrados darían automáticamente el control de las llaves para la operación de la propiedad al agente que posee legítimamente esa propiedad, en base a los términos del contrato. Por ejemplo, un coche puede quedar inutilizable a menos que se cumpla con el protocolo adecuado de reclamación-respuesta con su propietario legítimo, evitando así el robo. Si se solicitaba un préstamo para comprar ese coche y el propietario no hacía los pagos, el contrato inteligente podía invocar automáticamente un derecho de retención, que devuelve el control de las llaves del coche al banco”.
Nick Szabo
Como puedes ver, Nick expuso claramente que necesitamos algo más que un simple sistema de transacciones para garantizar que el producto se entregará si se realiza el pago correspondiente.
Funciona bien con fiat ya que existe la ley. Si una tienda en línea no te entrega un producto por el que ya has pagado, entonces involucrarás a la ley. Llamarás a la policía o te pondrás en contacto con la autoridad nacional competente. Tienes en tus manos un acuerdo firmado en papel y es lo que la autoridad necesita para proceder. Puede tomar algún tiempo, pero eventualmente, probablemente recibirás tu dinero de vuelta, o la tienda deshonesta será cerrada.
La red Bitcoin no es capaz de garantizar la confianza en tareas tan sencillas como comprar en línea, o incluso enviar un valor a una persona desconocida. Tienes que crear confianza con la contraparte si deseas realizar transacciones mutuas. Por ejemplo, puede funcionar para la relación empleador-empleado. Aún así, si el empleador decide no pagarte después de que hayas trabajado todo el mes, tendrás que volver a recurrir a la ley.
Incluso si lo haces a través de una cuenta de depósito en garantía, las partes deben encontrar a una persona a la que ambos confíen. Sigue siendo demasiado complicado y continúa requiriendo de confianza.
Así que si realmente queremos utilizar todo el potencial de las redes distribuidas, necesitamos resolver los mencionados problemas de pago, y establecer confianza entre las partes. Es lo que los contratos inteligentes pueden hacer por nosotros.
¿Cómo funcionan los contratos inteligentes?
Un contrato en papel es sólo un acuerdo y las partes son responsables de su ejecución. Por ejemplo, si Alice le promete a Bob pagarle $1000 por 4 acciones de Tesla, entonces ambos son responsables de entregar el dinero y las acciones. Pueden hacerlo en persona si están cerca el uno del otro. Si no, Alice podría pagar por adelantado y Bob enviará acciones una vez que reciba el dinero de Alice. En este caso, Alice debe confiar en que Bob es honesto y que enviará las acciones. Alice está en desventaja.
Un contrato digital inteligente es responsable también de la parte de ejecución del acuerdo.
Un contrato inteligente se encarga de la ejecución
La situación será mucho mejor para Alice y Bob si utilizan un contrato inteligente. En primer lugar, hacen un acuerdo y crean una forma digital del mismo. En el contrato inteligente, se detallará la dirección de Bob para el pago y la cantidad de dinero que Alice debe enviar. También se indicará una dirección de Alice donde recibir las acciones y la cantidad esperada. Una vez que el contrato es desplegado, lo que es un proceso similar a la firma de un acuerdo en papel, la parte de ejecución está totalmente en control de la red distribuida que procesa el contrato inteligente y nadie es capaz de cambiarlo o detenerlo. Ni Alice y Bob, ni nadie más en el mundo.
El contrato inteligente es 100% justo y hace exactamente lo que se supone que debe hacer. No importa el orden en que Alice y Bob envíen los bienes prometidos. El contrato inteligente es capaz de mantener el dinero digital y existencias en una cuenta temporal dedicada. Una vez que el contrato inteligente es capaz de intercambiar los activos, lo hace. Si una de las partes no envía el activo, después de un tiempo especificado, el contrato devuelve el activo que está en la cuenta temporal al propietario original. Nadie puede hacer trampas y nunca sucederá que una de las partes tome posesión de ambos activos y la otra se quede sin ninguno. El contrato inteligente es un intermediario fiable y confiable. Ten en cuenta que no hay razón para contratar a una autoridad legal, en ningún momento. El contrato inteligente está libre de conflictos, lo que significa que si se escribe correctamente, tiene en cuenta todos los resultados posibles, y todas las partes saben exactamente qué sucede en determinadas condiciones y cuándo. Los contratos inteligentes se comportan de manera determinista.
¿Qué es un contrato inteligente?
Un contrato inteligente es un código de computadora escrito mediante un lenguaje de programación especial destinado a contratos inteligentes. En otras palabras, un contrato inteligente es un conjunto de reglas ejecutables automáticamente que se proporcionan a través de un programa informático.
El código es escrito fuera de la cadena (off-chain) por un programador y luego tiene que ser desplegado, lo que es un proceso similar a enviar una transacción. Una transacción también se construye en una billetera y luego se envía a la red. Una vez desplegado el contrato, se almacena en la cadena de bloques y se ejecuta mediante un software especial llamado máquina virtual (VM).
Las máquinas virtuales se ejecutan en nodos de la red distribuida, y ejecutan contratos inteligentes. El resultado de la ejecución se incorpora y se debe lograr un consenso mutuo entre los nodos. Esto es muy similar a lo que sucede con las transacciones. Puedes imaginarlo como una gran computadora global que consiste de muchos nodos distribuidos. Así que el contrato entre Alice y Bob se procesa en muchas computadoras, y se debe lograr el consenso para tener una sola versión de la verdad y/o el comportamiento.
Un código de contrato inteligente permite la automatización descentralizada al facilitar, verificar y hacer cumplir las condiciones de un acuerdo subyacente. Durante la ejecución de contratos inteligentes, se verifica si se cumplen todas las condiciones para producir algún resultado esperado, o realizar alguna acción predefinida.
Los contratos inteligentes serán más beneficiosos en las relaciones comerciales, donde las partes pueden acordar algo, construir un contrato y dejar que se ejecute automáticamente. Es útil para cualquier tipo de ventas, préstamos, compras, apuestas y más. Los contratos inteligentes reducen el riesgo de fraude o manipulación, y como no hay terceros involucrados, los costos también se reducen.
Los contratos inteligentes de Cardano usan el lenguaje de programación Plutus
Los contratos inteligentes de Cardano tendrán que ser escritos en Plutus o IELE, y tienen la finalidadd de proporcionar un mayor nivel de seguridad. Plutus es un lenguaje para contratos inteligentes que utiliza el lenguaje de programación Haskell. Haskell es reconocido a nivel académico y por desarrolladores por su combinación de grado académico y e industrial con compatencias clave dentro de las ciencias de la computación. Por ello, la programación de contratos inteligentes será más segura y fiable que cualquier otro lenguaje de contratos inteligentes. Plutus Platform es una biblioteca de Haskell, y será una caja de herramientas accesible para que los desarrolladores creen contratos inteligentes que correrán dentro y fuera de la cadena. Debido a la revisión por pares y a la alta seguridad, el código para los contratos inteligentes de Cardano es seguro, probado y documentado. En definitiva es este enfoque, basado en la investigación y llevado a cabo por un equipo profesionalmente acreditado de académicos y expertos en criptografía, el que separa los contratos inteligentes de Cardano de los demás en el espacio.
Código en Plutus
Echa un vistazo a Plutus, y trata de escribir, compilar y probar un contrato inteligente desde internet, usando Plutus Playground.
Marlowe
Marlowe es un nuevo lenguaje para modelar instrumentos financieros basados en contratos inteligentes para la cadena de bloques. Ha sido diseñado para ingenieros de negocios o expertos en la materia en lugar de desarrolladores experimentados. Se trata de un lenguaje de dominio específico (DSL) que comprende un pequeño número de poderosos building blocks que pueden ser ensamblados en contratos financieros expresivos. Está embebido en el lenguaje Haskell, que tiene su propio ecosistema y framework de pruebas. No necesitas experiencia en programación para usar Marlowe, y puedes explorar sus bloques de código financieros mediante su editor de contratos y su simulador, ambos basados en navegador web.
Marlowe
Marlowe interactúa con datos del mundo real y permite contactos inteligentes expresivos. Está dirigido a productos financieros de duración fija, tales como coberturas, depósitos a plazo fijo, swaps de crédito y crowdfunding. Marlowe es ideal para startups financieras, analistas, o para aquellos de la comunidad fin-tech, así como para universidades que podrían utilizarlo para realizar pruebas dentro de sus cursos financieros. Con Marlowe, puedes escribir contratos inteligentes para instrumentos financieros que son fáciles de leer, escribir y entender sin experiencia en programación.
Echa un vistazo a Marlowe Playground.
Conclusión
Como dijo Charles Hoskinson en una entrevista: "Uno de los mayores problemas de Bitcoin, es que es ciego, sordo y mudo, y eso fue por diseño ". Bitcoin nunca tuvo la intención de replicar los sistemas financieros actuales y cumplir con ellos. Sin embargo, lo necesitamos desesperadamente para seguir construyendo un mundo descentralizado. No será nada fácil y nos queda un largo camino por recorrer. Para construir contratos inteligentes fiables, las personas deben aprender nuevos lenguajes de programación y conocer los principios de la cadena de bloques. Tienen que saber que lo que se despliega una vez, no se puede cambiar y detener. No hay espacio para los errores humanos. Pasará mucho tiempo antes de que Alice y Bob usen un contrato inteligente para intercambiar activos. Sin embargo, creemos que pronto lo veremos en el mundo de los negocios.
Considera la posibilidad de delegar tus monedas ADA en Cardanians.
Si te gustan nuestros artículos, puedes apoyarnos con una donación en ADA:
DdzFFzCqrhseNP1C9XEs1MA82rgnVZwNpeiNCbLxrJfRzwaceXB9VYqPFYyRrYegc67SERjcQ1xvwB6jryp5vgGUf1cvzbeZP2a92tQe