🇪🇸 Los contratos pueden ser más inteligentes en Cardano

:es: Traducción al español de Contracts can be smarter on Cardano por Rodrigo.

Publicado por Cardanians, el 13 de Noviembre de 2020.


IOG ha decidido cambiar el parámetro K, y esto impactará no sólo en los operadores de pools, sino también en los delegantes. Apoya nuestro trabajo y delega en el pool CRDN1 (pool estable con grandes resultados y sólo 2% de comisión) - ¡Gracias! :heart:

o.948ce112ac8a518cfa1248d2343b8a72

La blockchain se utiliza como una red transaccional. El gran paso adelante sería si las tecnologías blockchain se utilizaran también para los acuerdos. Es un paso natural y lógico, y el dinero programable será un estándar en el futuro.

El futuro del dinero

Los acuerdos en papel entre las partes pueden ser percibidos como una capa por encima del dinero. Cada intercambio de dinero tiene un contexto. El contexto puede tener muchas formas. Puede ser verbal e informal cuando las condiciones son simples, las partes se conocen bien, se ven en un lugar, o no se esperan disputas. Por ejemplo, cuando se paga en la caja, ambas partes se ven. El contexto puede ser formal y puede tener una forma escrita. Es necesario cuando las partes no se conocen ni confían en la otra. Es habitual en el mundo de los negocios. Por ejemplo, cuando un socio comercial paga por una casa cuando los datos se actualizan en catastro.

Actualmente, usamos la blockchain como red de transacciones. Se puede decir que el procesamiento de las transacciones está descentralizado. En lo que respecta a los contextos de las transacciones, no suelen estar descentralizados. Funciona bien en contextos verbales e informales. Sin embargo, funciona peor en contextos formales o complejos. Es posible utilizar transacciones descentralizadas y atenerse a la actual forma centralizada de los acuerdos. Por ejemplo, es posible crear un contrato en papel que establezca que una parte pagará una obra de arte mediante criptos. Esto tiene algunas desventajas:

  • Se mezclan los mundos descentralizado y centralizado, lo que probablemente no funcionará bien ya que el marco legal no tiene poder para hacer cumplir la ley en el mundo digital de la blockchain. Sin embargo, una parte puede ser castigada en el mundo físico.
  • Las identidades deben ser siempre conocidas en el mundo centralizado.
  • Puede funcionar bien en un contexto local, pero puede ser lento, costoso y más difícil para los socios comerciales mundiales. Principalmente cuando se producen disputas.
  • Enviar una transacción en la blockchain es una tarea muy fácil. Puede ser un poco engorroso tratar con un acuerdo en papel.
  • Puede ir en contra del principio fundamental de todo el movimiento de descentralización. No hay razón para utilizar criptodivisas para los pagos y seguir confiando en los sistemas financieros y jurídicos actuales. La descentralización tiene que ver con la transparencia, la resistencia a la censura y posiblemente la privacidad. El sistema legal puede ser corrompido y siempre dependerá de las decisiones de los individuos. Por lo tanto, nunca será totalmente confiable y fiable.

Es obvio que tener la posibilidad de confiar en tecnologías blockchain en relación con los acuerdos puede ser muy beneficioso y aumentar significativamente la independencia de las actuales estructuras centralizadas. Es ingenuo pensar que podemos descentralizar la infraestructura y seguir utilizando sistemas lentos, costosos, poco fiables y a veces corruptos. Si se puede utilizar la blockchain para el envío descentralizado de transacciones y somos capaces de innovar y mejorar las capacidades de la misma, entonces básicamente debemos intentarlo. La descentralización no es un interruptor binario. Cuando mejoramos las habilidades de la descentralización mejoramos la libertad, la independencia, la privacidad y la autonomía.

Los acuerdos en papel son una herramienta del mundo financiero tradicional y son una parte inevitable de nuestras vidas financieras. Al menos en los países occidentales. Debemos tratar de crear tecnologías que nos ayuden a descentralizar los acuerdos en papel. Afortunadamente, la tecnología ya ha sido inventada y probablemente han oído hablar de ella. Su nombre es contrato inteligente.

El futuro del dinero está en la capacidad de ser programable. Como verás más adelante, necesitaremos contratos inteligentes para establecer la confianza entre partes que no confían entre sí, o que ni siquiera se conocen. Probablemente será necesario utilizar los contratos digitales más a menudo en un mundo descentralizado que en un mundo centralizado. Hay varias razones para ello. La más importante es la posibilidad de evitar la dependencia del sistema jurídico actual, o de reducir drásticamente la necesidad de depender de él. Veamos ahora cómo se ven los acuerdos en papel. Probablemente lo conozcas bien, pero repasémoslo rápidamente.

adapools.org!ext!static.php!v=epoch_summary&pool=e5b20e8f9661506710a159e561d40ceb54449fdea1d1130b3bd

Acuerdo en papel

Aunque los acuerdos verbales son legales y vinculantes en muchas situaciones, a menudo son difíciles de hacer cumplir en los tribunales. Por eso es inteligente tener un acuerdo escrito. Es básicamente un documento que especifica claramente los derechos y obligaciones de cada parte. En el mundo de los negocios, un acuerdo escrito es imprescindible aunque la ley no lo exija explícitamente.

Cada acuerdo contiene la identificación legal de las partes. Debe quedar claro quién es responsable de cumplir las obligaciones que se establecen en el contrato. También debe quedar claro quién tiene los derechos legales para exigir el cumplimiento. El cuerpo del acuerdo debe especificar los derechos y obligaciones de cada parte, y deben estar todos los detalles necesarios del contrato. En el mundo del derecho contractual, un juez es sólo un tercero que sólo puede leer el acuerdo en papel y naturalmente no sabe lo que se ha acordado verbalmente. Puede ser imposible o muy difícil probar algo que no ha sido escrito. Si un derecho o condición no está escrito y las partes dan una variante diferente de la historia, entonces no se puede hacer cumplir legalmente. Un buen acuerdo suele contener información sobre el manejo de las controversias. Si las partes se encuentran en diferentes Estados, entonces se debe elegir la ley de uno de los Estados. Esa ley se aplicará para resolver las controversias.

Las cosas más importantes están relacionadas con los pagos. Un acuerdo especifica quién paga a quién. Luego, cuándo deben hacerse los pagos y las condiciones para hacerlos. Las partes deben ser muy cuidadosas en cuanto a la cantidad exacta, la fecha, las horas, el método de pago y las condiciones para hacer los pagos.

Cómo describir un acuerdo

En realidad es muy fácil describir un acuerdo y los fundamentos son siempre casi los mismos. Es sólo un conjunto de patrones repetidos y el procesamiento puede ser descrito por algoritmos. Un acuerdo es un conjunto de variables y una descripción de los eventos esperados, incluyendo su orden. En el mundo financiero, los oficinistas a menudo tienen una plantilla de papel similar que se rellena. La gente puede encontrar muchas plantillas de acuerdos en Internet. Un acuerdo en papel puede ser creado bastante rápido. El comportamiento esperado de los participantes es siempre el mismo o muy similar para un caso dado. Sólo la identificación de las partes, la fecha y la hora, y las cifras relacionadas con los pagos, son diferentes. Todo eso son variables. Si Alice quiere vender un coche a Bob, entonces Alice puede descargar una plantilla de acuerdo y rellenar las variables junto con Bob. El cuerpo del acuerdo es una descripción del comportamiento esperado (el orden de los eventos). Una vez que firmen el acuerdo se espera que actúen en consecuencia.

Un acuerdo puede ser percibido como una colección de pagos o una descripción del contexto de los pagos. El objetivo de un acuerdo es proteger a las partes contra el comportamiento malicioso de la contraparte. Así pues, los acuerdos contienen derechos y obligaciones. Por ejemplo, cuando Alice envía un pago a Bob esperando que Bob actúe según lo dictado por el acuerdo y Bob no actúa, entonces Alice puede ponerse en contacto con una tercera parte para hacer cumplir la ley. Las autoridades legales ayudarán a Alice a conseguir el coche de Bob. El acuerdo se utiliza como la descripción del comportamiento esperado y como prueba de que Bob prometió actuar acorde.

Contratos inteligentes digitales

Una blockchain es una gran herramienta para enviar pagos. Hoy en día, el dinero es sólo números digitales. Las criptodivisas son lo mismo. ADA, BTC, o monedas estables son sólo números. Las monedas digitales son números en la blockchain, que se pueden mover de una dirección a otra. Alice puede enviar fácilmente un pago a Bob. Lo único que Alicia necesita es la dirección de Bob a la que enviar las monedas.

Un contrato inteligente necesita cosas similares a las que necesita un contrato en papel. Estas cosas son la identificación de las partes, los detalles del pago, el orden de los eventos esperados, y el tiempo que se espera hasta que los pagos sean enviados. A diferencia de los contratos acordados en papel, un contrato inteligente no puede esperar por los pagos indefinidamente. Cuando una parte no envía un pago a tiempo, los contratos necesitan reembolsar a los participantes, o realizar otra acción definida con, los fondos enviados.

Cuando Alice y Bob utilizan un acuerdo en papel, Alice envía dinero directamente a Bob. Acordaron no utilizar la tercera parte que guardaría el dinero hasta que se produzca la entrega del coche. Cuando se utiliza un contrato inteligente, siempre está el servicio de depósito en garantía que proporciona el propio contrato. Es necesario y es realmente muy útil. Bob no recibirá el pago hasta que demuestre que Alice es la dueña del auto. Por lo tanto, Bob está motivado para actuar honestamente para obtener el pago de Alice. Si Bob no entrega el coche, entonces Alice recupera automáticamente su dinero del contrato inteligente. Por lo tanto, el tercero físico o árbitro no es necesario.

adapools.org!ext!static.php!v=epoch_summary&pool=e5b20e8f9661506710a159e561d40ceb54449fdea1d1130b3bd

La pregunta es cómo Bob probará al contrato inteligente que Alice es la nueva dueña del auto. Existen más opciones. Por ejemplo, Alice puede informar al contrato inteligente que ella es realmente la nueva propietaria del coche. De esta manera, el contrato inteligente liberará el dinero del depósito. ¿Qué pasa si Alicia se convierte en la propietaria del coche y no informa al contrato inteligente? Alicia puede especular que puede quedarse con el coche y también con el dinero del depósito de garantía. Bueno, el contrato inteligente debe ser informado de que Bob ha cumplido con todos los pasos necesarios para entregar el coche. Sólo Bob puede hacer eso. Cuando lo haga, o crea que lo ha hecho, informará al contrato inteligente. El contrato inteligente nunca entregará el dinero del depósito a Alice. Así que el orden de los eventos puede ser así. Bob informará al contrato inteligente de que ha entregado el coche a Alice, y entonces Alice tendrá que confirmarlo. Si Alice no lo confirma, entonces el dinero será enviado a Bob. Por lo tanto, Alice está motivada para informar al contrato inteligente si es verdadero o falso. En realidad, sólo necesita hacerlo cuando no es la propietaria del coche. Cuando Alice se convierta realmente en la dueña del auto, entonces será el fin de la historia.

El único caso que no puede ser resuelto por el contrato inteligente es cuando Bob afirma que le ha entregado el coche a Alice, pero en realidad no lo ha hecho. Bob todavía se queda con el coche. Alice informa al contrato que no tiene un coche a pesar de que Bob ha informado al contrato inteligente que ella es la propietaria. Aquí, o Alice o Bob mienten. Lo único que puede hacer el contrato inteligente es enviar los fondos de Alice a una dirección de arbitraje.

El problema es que el coche es un artículo físico. La posible solución aquí es darle un token al coche. Si fuera posible probar la propiedad de los artículos físicos mediante la posesión de los correspondientes tokens no fungibles, entonces sería una tarea fácil para el contrato inteligente. Una vez que las acciones, los bonos, el CBDC y otros instrumentos financieros sean tokenizados, los contratos inteligentes serán muy útiles en el mundo financiero. Volvamos al coche. Otra posible solución sería la entrada de la tercera parte. En muchos países, la propiedad del coche se puede encontrar en los registros. En este caso, los Oráculos pueden proporcionar la información al contrato inteligente.

Tenemos otra solución muy simple que funcionará bien también para los artículos físicos. Las partes actuarán honestamente cuando estén económicamente motivadas para hacerlo. Cuando hay penalidades definidas por comportamiento deshonesto o equivocado, entonces es probable que nadie quiera perder dinero. Alice y Bob pueden enviar el 10% o incluso el 50% del precio del coche a un depósito, y se les devolverá por partes iguales sólo si el contrato termina como se esperaba. Pueden acordar que si un tercero tiene que decidir, el ganador se lleva todo. Bob no puede simplemente afirmar que ha entregado el coche a Alice si no es cierto, y se puede probar fácilmente. Alice no puede simplemente afirmar que no tiene el coche cuando realmente lo tiene, ya que no se le devolvería el dinero que se utiliza para la posible penalización.

Elementos básicos de los contratos inteligentes

Los contratos inteligentes han estado aquí por algunos años, pero todavía es un desafío escribir uno que sea seguro y confiable. Un contrato inteligente no puede ser cambiado una vez que se despliega. Por lo tanto, es necesario asegurar que un contrato haga exactamente lo que se espera en todos los casos posibles. La simplicidad es la clave de la seguridad. El equipo de IOG ha desarrollado un lenguaje de dominio específico llamado Marlowe y ha creado una gran herramienta gráfica llamada Blockly. Blockly permite a los usuarios crear programas de manera similar a como se juega con los rompecabezas. Marlowe está diseñado para expertos en un dominio determinado. Por ejemplo, para expertos en el dominio de las finanzas. En lugar de habilidades de programación, una persona que usa Marlowe necesita habilidades de campo. Marlowe está diseñado de manera que protege a los usuarios de escribir un mal programa. Debido a eso, un programa escrito en Marlowe difícilmente pueda ser explotado. Los usuarios pueden revisar el programa a fondo y ver todos los caminos posibles de desarrollo.

Pueden preguntarse cómo es posible. Es simple. Cuando se usa Blockly, un programa de Marlowe se construye combinando un pequeño número de bloques de construcción. Cada bloque describe una pequeña pieza del rompecabezas. Por ejemplo, hay bloques para los pagos, observaciones, acciones, esperando hasta que una determinada condición se haga realidad, etc. Cuando un usuario selecciona un determinado bloque, se ve obligado a conectar otros bloques. Por ejemplo, hay un bloque para definir un depósito. Cuando se utiliza un bloque de depósito entonces es necesario definir la parte, la cantidad, la moneda y el rol. Los usuarios no se olvidarán de proporcionar alguna información que se necesita, a su vez que mantiene el desarrollo simple. Cuando dos partes deben depositar fondos, se utilizan dos bloques de depósito. Los usuarios pueden definir las partes llamándolas simplemente Alice y Bob. Marlowe obliga a los usuarios a definir todos los caminos de desarrollo posibles en el contrato.

Expliquemos con palabras simples cómo funciona un programa que está escrito por ejemplo en Java o Solidity. Un programa consiste en unos pocos elementos básicos como variables, condiciones y acciones. Las variables se usan para describir el mundo físico. Así que puedes describir tu cuenta bancaria, nombre de usuario, cantidad de pago, etc. La acción puede ser un pago que utiliza las variables. Por ejemplo, la acción puede ser un pago a una cuenta bancaria determinada. Los elementos condicionales se utilizan para describir las condiciones que deben cumplirse para ejecutar las acciones. Por ejemplo, un pago se envía sólo cuando otro pago se ha liquidado.

Marlowe permite a los usuarios redactar un contrato inteligente sin necesidad de comprender qué son las variables, las condiciones y las acciones. Los usuarios, en este caso, expertos en el campo de las finanzas, sólo necesitan saber que es necesario definir las partes y especificar los pagos y las condiciones. Para crear un contrato inteligente simple para intercambiar dos activos digitales, los usuarios necesitan utilizar dos bloques de depósito, dos bloques de pago, y complementarlos con otros bloques para especificar detalles sobre las partes y los pagos.

Cuando los usuarios quieren escribir programas más complejos pueden usar Marlowe, Javascript y Plutus. Te sugerimos encarecidamente que pruebes Marlowe Playground. Te permite crear un programa, ejecutarlo dentro de un simulador, y ver lo que sucede cuando se envían transacciones.

Resumen

Los contratos inteligentes extenderán las capacidades de la tecnología blockchain. La gente es capaz de usar la blockchain para transacciones, por lo que será fácil para las personas usar contratos inteligentes. No será una opción sino una necesidad, una vez que la descentralización se convierta en la norma. La descentralización se trata de nuestra propia responsabilidad en nuestras vidas, y para poder hacerlo necesitamos sustituir los actuales sistemas financieros y legales. Las transacciones en la blockchain son insuficientes para alcanzar el objetivo, ya que nunca se sabrá si la contraparte actuará con honestidad. Además, cuando él o ella desee ser anónimo, entonces debe existir algún mecanismo que establezca la confianza entre las partes. Los contratos inteligentes son capaces de hacerlo. Si queremos una mayor privacidad entonces necesitamos usar contratos inteligentes. La programabilidad es el futuro del dinero.


¿Has disfrutado de la lectura de nuestro artículo? :nerd_face:

Puedes compartir este artículo en Twitter o Facebook, o convertirte en un orgulloso Cardanian en Patreon :heart:

Si te gusta nuestro trabajo, apreciaremos cualquier donación :pray:

Cardano [ADA]: Ae2tdPwUPEZKXn3Qr2jButWgRJRB4S8TrnQvsy6uFnDCbGwc9XgtUSvbxKG
Bitcoin [BTC]: 13rxBopLWDqdUS3KzG3Jj1JNZoK43sLXde
Ethereum [ETH, ERC20]: 0x448AC9321B12490Ac8faf121B40fc6c7CDBa8fA4
Ripple [XRP]: rUi2KPLRgCG7ZeAmujDXe8QWueDUEBdpsS

¡Gracias por el apoyo!

1 Like