¿Qué son los contratos inteligentes o \'smart contracts\'? Guía completa

  • Ezio Rojas
  • 18 ABR 2019
¿Qué son los contratos inteligentes o \'smart contracts\'? Guía completa

Cointelegraph

1.

¿Qué son los 'smarts contracts' o contratos inteligentes?

A lo largo del tiempo hemos podido ver Contratos que marcaron la historia. Armisticios de paz, contrataciones profesionales y ventas históricas han sido tan solo algunos de los Contratos que se han firmado para causar un cambio significativo. Ahora, en medio de los constantes cambios que vivimos en esta sociedad digitalizada, surge una nueva forma de ver los contratos, los denominados “Smart Contracts” o Contratos Inteligentes.

 

Definición

Para no presentar una definición compleja e ir directo al grano, podemos decir que un Contrato Inteligente es un Programa informático que se programa para que ejecute de forma automática acuerdos que hayan determinado dos o más partes. El Contrato queda ajustado a la consecución de un término (la llegada de un día exacto) o una condición (que suceda determinado hecho), en el caso de que alguno de ellos se presenta, el Contrato se ejecuta sin necesidad de que un juez o una autoridad exija su cumplimiento.

Oráculos

Al ver esta definición nacen las preguntas de ¿Cómo se puede cumplir solo un Contrato? O ¿Cómo se determina que ha sucedido el término o la condición a la que estaba supeditado el cumplimiento del Contrato? Para eso existen los denominados “Oráculos”.

Los Oráculos (también conocidos como “The Oracles”) son programas que se mantienen verificando información confiable en Internet para poder mantener actualizados los Contratos. El Oráculo de un Contrato Inteligente viene a ser el tercero que intermedia entre las partes involucradas en el contrato.

¿Qué puede verificar un Oráculo? Cualquier cosa que esté en la internet. La llegada de una fecha, un precio dentro del mercado, la sucesión de un hecho particular. En conclusión, pueden evaluar cualquier cosa que las partes en el contrato determinen la ejecución del Contrato Inteligente.

En estos momentos se está trabajando para que los Oráculos sean lo más descentralizados posible y para ello están planteando Oráculos que verifiquen varias fuentes de información, determinadas por todas las partes dentro del Contrato, para así confirmar los datos. Uno de estos proyectos es Oraclize, un proyecto vinculado con la red Blockchain de Ethereum y que plantea una descentralización de los Oráculos por medio de la verificación de una infinidad de bases de datos.

Contratos tradicionales

Legalmente, un Contrato se puede definir como un Acuerdo entre dos o más personas con el objetivo de constituir, modificar o extinguir una regulación jurídica de ámbito patrimonial. Pues bien, los Contratos cuentan con 3 elementos para considerarlos legalmente válidos: 1. Consentimiento de las partes involucradas en el Contrato. 2. Determinación del Objeto del contrato y 3. Una causa lícita y posible.

Comparación Contratos Inteligentes con Contratos tradicionales

Ahora, respecto a los elementos que acabamos de ver, ciertamente, los Contratos Inteligentes también los poseen, pero con ciertas diferencias que debemos destacar. Así mismo, los “Smart Contracts” poseen otras diferencias respecto a la formalidad que también hay que mencionar.

Consentimiento de las partes involucradas

Al igual que en los Contratos tradicionales, en los Contratos Inteligentes también se exige que expresen su voluntad dos o más partes, pero, la determinación de su participación no es igual. Al ser los Contratos Inteligentes un programa informático escrito en código, las partes se deben de identificar con un algoritmo, código o wallet, dependiendo de lo que persiga el contrato.

Para confirmar el consentimiento dentro del Contrato, las partes deben de realizar un “Doble depósito” en una dirección que el Contrato determine. Esto implica que todas las partes involucradas deberán de depositar fondos como garantía para que así pueda asegurarse que cumplirán con sus obligaciones.

Así mismo, contamos con una herramienta denominada “Función Multifirma”. Este programa nos va a exigir que, dentro de la configuración del Contrato, todas las partes aprueben las transacciones internas del contrato. Ello impide que alguna de las partes retire o maneje los fondos que han sido depositados en la dirección que maneja el Contrato sin seguir las reglas estipuladas dentro de él.

Objeto del Contrato

En los Contratos Tradicionales, el objeto del contrato hace referencia al objeto de las obligaciones que se plasmarán en el contrato.  Estas obligaciones pueden referirse a:

  1. Prestaciones de dar, hacer y no hacer.

  2. Prestaciones de medio o de resultado.

  3. Prestaciones para la transmisión de un derecho.

Ahora bien, en los Contratos Inteligentes, este Objeto debe referirse a una obligación que tenga un respaldo digital. Es decir, la obligación debe poder cumplirse dentro del ámbito digital. Por ejemplo, no puedo firmar un Contrato Inteligente con un pintor para que este pinte mi casa y ello debido a que la obligación no se cumple en ningún ámbito digital ni tampoco existe forma de controlar la obligación de forma digital.

Sin embargo, este impedimento se ha venido solucionando gracias al Internet de las Cosas y la tokenización de activos. En la medida que tengamos más objetos comunes conectados a Internet y respaldados por tokens, será posible respaldar las obligaciones dentro de un ámbito digital que nos permita plasmarla en un Contrato Inteligente. Y por muy descabellada que puede parecernos la idea, ya el sector empresarial se está preparando para estos cambios.

Sectores como el de la construcción, seguros y farmacias

Diferencia en su formalización

Los Contratos Tradicionales se realizan por escrito y se deben de formalizar con un notario o juez (dependiendo de la legislación). Los Contratos Inteligentes son, como dijimos anteriormente, programas computacionales y se escriben por medio de códigos. Además, estos últimos no requieren la revisión de ningún tipo de juez o notario que de validez al acuerdo alcanzado y ello debido a que el Contrato se cumple por sí solo.

2.

¿Son legales los Contratos Inteligentes?

Uno de los temas que más se discute en estos momentos es si los Contratos Inteligentes pueden tener la misma aplicación que un Contrato formal escrito entre las partes. Para algunos juristas, doctrinarios y estudiosos del mundo de las criptomonedas, los Contratos Inteligentes chocan con el sistema tradicional por cuanto buscan cumplir las mismas funciones y lo plantean hacer de una forma paralegal.

No obstante, no todos los abogados y especialistas en derecho piensan igual. Hay expertos que opinan que los Contratos Inteligentes se pueden ajustar a los ordenamientos jurídicos existentes sin mayores problemas.

Una de las posiciones más relevantes sobre la vinculación entre los Contratos Inteligentes y el sistema jurídico actual es la que sostiene la jurista Giesela Rühl. Para ella, los Contratos Inteligentes se aplican según las normas de Derecho Internacional Privado y por de esta rama del derecho se busca estudiar los factores de conexión del contrato y con esto lograr determinar cuál jurisdicción nacional es la que se debe de aplicar para interpretar el mismo.

Otros juristas como Stephan Meyer y Martin Eckert opinan que no todo Contrato Inteligente es un Contrato en el sentido estricto de la ley. Sólo en los supuestos que un Contrato Inteligente presente el contenido y los términos de un Contrato tradicional, o si plantea la regulación de una obligación contractual entre dos o más partes. Si lo vemos solo como un Programa computacional, un Contrato Inteligente no podría aplicarse según alguna jurisdicción y no puede tomarse como un Contrato legal.

Según lo que se plantea por estos juristas, no necesitaríamos una regulación nueva dentro de los distintos marcos normativos para determinar la legalidad o no de los Contratos Inteligentes, los podríamos ver como una nueva forma de aplicar los Contratos Tradicionales ya conocidos y aplicados en nuestro sistema ordinario.

Otra visión respecto a la legalidad de los Contratos Inteligentes es también la de considerarlos como una opción de arbitraje en la que las propias partes deciden, haciendo uso de su libre voluntad, regirse por las disposiciones que planteen dentro del Contrato.

3.

Primera vez que aparecieron los Contratos Inteligentes

El primero en utilizar el concepto de los Contratos Inteligentes fue Nick Zsabo en el año 1993 en su obra “Formalizing and Securing Relationships on Public Networks”. En ella explicó que los Contratos Inteligentes se encargan de combinar “protocolos con interfaces de usuario para formalizar y asegurar las relaciones a través de redes informáticas”. Así mismo, confirmó que se trataba de una forma para “formalizar las relaciones dentro del mundo digital”.

Para lograr estas combinaciones, Zsabo consideró varios elementos propios de los Contratos que permitieran que los Contratos Inteligentes tuvieran aplicación. Consideró la necesidad de la verificación de los elementos, penalidades por incumplimiento y la inclusión de una verificación automática para su cumplimiento.

De hecho, Zsabo hace referencia a DigiCash, uno de los proyectos primitivos de criptomoneda que surgió en los 90, y sobre ello explica que los Contratos Inteligentes podrían ser el protocolo necesario para garantizar que las transacciones se hagan correctamente con las criptomonedas. Realmente Zsabo tuvo una visión bastante avanzada para su época.

No obstante, el propio Zsabo afirmó en su obra que la aplicación de los Contratos Inteligentes estaba muy lejos de hacerse realidad porque para el momento la tecnología no estaba adecuada para atender a todos los requerimientos de los Contratos Inteligentes.

Con la llegada de la tecnología Blockchain y el surgimiento de mejores computadoras con mayor computo, el concepto de Contratos Inteligentes volvió a ponerse sobre la mesa y ahora tenemos la posibilidad de que su aplicación sea algo mucho más lógico que cuando se mencionó por primera vez.

Surgimiento de los Smart Contracts en Ethereum

Vitalik Buterin, uno de los principales creadores de Ethereum, observó el concepto de Zsabo y determinó que con la tecnología Blockchain y el sistema descentralizado que había planteado Satoshi Nakamoto, se podrían ejecutar los Contratos Inteligentes dentro de su propuesta, la red de Ethereum.

Vitalik consideraba que los Contratos Inteligentes eran aplicaciones complejas que generan que activos digitales se controlen por medio de códigos que apliquen reglas arbritarias. Como creador de Ethereum, propuso una red con un:

“lenguaje de programación Turing completo incorporado que se puede usar para crear "contratos" que se pueden usar para codificar funciones de transición de estado arbitrarias, permitiendo a los usuarios crear sistemas”.

Los sistemas que creía Vitalik que se podían crear con Contratos Inteligentes eran prácticamente ilimitados. Para el momento de la creación de Ethereum, planteaba que estos programas podían emplearse en tres tipos de aplicaciones: Aplicaciones financieras, Aplicaciones semi-financieras y Aplicaciones no financieras.

Entre esas aplicaciones, podemos encontrarnos usos para Sistemas de identidad y Reputación, Resguardo de archivos de forma descentralizada, Organizaciones Autónomas Descentralizadas (DAO), Mercado Descentralizado Blockchain, Apuestas Peer-to-Peer, Sistemas de Escrow con múltiples garantes y muchas otras características. La verdad es que las aplicaciones planteadas por Vitalik fueron tan solo algunas de las posibilidades que podían surgir dentro del mercado.

Solidity

¿Cómo se hacen los Contratos Inteligentes en Ethereum? ¿Es igual a escribir un documento normal? La realidad es que no se escriben igual, debemos de recordar que los Contratos Inteligentes son programas computacionales y requieren ser programados como tal. El código o lenguaje que se utiliza para escribir estos contratos dentro de la red de Ethereum se denomina “Solidity”.

Este programa es un lenguaje informático algo complejo que permite resolver complejos problemas informáticos, así como tener la posibilidad de ejecutar tareas por medio de instrucciones. A este tipo de códigos se les denomina lenguaje completo de Turing porqué está planteado para procesos con un alto poder de cómputo.

En cierta forma, la implementación de este lenguaje genera que la red de Ethereum sea más compleja que la red de Bitcoin y su lenguaje “Bitcoin Transaction Language”. Ello es positivo porque permite plasmar elementos más complejos dentro de la red Blockchain como son aplicaciones descentralizadas y los propios Contratos Inteligentes, pero también genera que se consuma mayor poder computacional para realizar estas operaciones y ello implica un aumento en los costos para su utilización.

4.

¿Son totalmente seguros los Smart Contracts?

Debido al boom de los Contratos Inteligentes, muchos han llegado a afirmar que son programas infalibles ante cualquier ataque o error, pero, eso no es están cierto. Al igual que todos los programas computacionales, los Contratos Inteligentes pueden tener fallas o errores dentro de su configuración.

Hay que recordar el caso del hackeo al Contrato Inteligente de la DAO de Ethereum, uno de los casos más emblemáticos que hemos visto sobre la vulnerabilidad de los Contratos Inteligentes, generando las pérdidas de 3,6 millones de Ethers así como disputas dentro de la comunidad de Ethereum y la bifurcación de Ethereum Classic.

Los errores en la programación de un Contrato Inteligente pueden generar parches o errores que pueden generar que hackers roben el dinero depositado dentro del Contrato. Ello requiere que la programación y preparación de los Contratos deba ser hecha con mucho cuidado y meticulosidad para evitar cualquier error que pueda ser explotable por un hacker.

Además, por el hecho de estar plasmados dentro de una red Blockchain, los Contratos Inteligentes no pueden ser reescritos o modificados una vez que se han establecidos entre las partes. Esto puede generar que tengamos problemas para arreglar algún tipo de error respecto a cifras, términos o condiciones que hayamos plasmado en el Contrato. Todo lo que acordemos plasmar dentro del Contrato Inteligente es irreversible y debemos atenernos a las consecuencias de ello.