Los contratos inteligentes

¿Qué son los “smart contracts”?
Para no presentar una definición compleja e ir directo al grano, podemos decir que un contrato inteligente o “smart contract” 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.
Los Oráculos
Al ver esta definición nacen algunas preguntas: ¿cómo se puede cumplir solo un contrato?, ¿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 intermediario 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 condición implicita en un contrato inteligente. En estos momentos se está trabajando para que los Oráculos sean lo más descentralizados posible y para ello se verifican 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.
Comparando lo “tradicional” y lo “inteligente”
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. Los contratos deben cumplan tres requisitos para ser considerados válidos:
- Consentimiento de las partes involucradas.
- Objeto del objeto.
- Una causa lícita y posible.
Los contratos inteligentes también cumplen estas tres condiciones aunque con ciertas diferencias:
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. En los contratos inteligentes, mediante 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 depositar fondos como garantía para aseguar que cumplirán con sus obligaciones. Así mismo, existe 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.
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:
- Prestaciones de dar, hacer y no hacer.
- Prestaciones de medio o de resultado.
- Prestaciones para la transmisión de un derecho.
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 es 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 a la “Internet de las Cosas” (IoT) 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 plasmarlas en un contrato inteligente. Por muy descabellada que puede parecer la idea, el sector empresarial ya se está preparando para estos cambios (construcción, seguros, farmacias, etc).
Diferencias de forma
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 programas y se escriben por medio de código. Además, estos últimos no requieren la revisión de un juez o un notario que de validez al acuerdo alcanzado y ello es debido a que el contrato se cumple por sí solo.
¿Son legales?
Uno de los temas de discusión en estos momentos es si los “smarts contracts” pueden tener la misma aplicación que un contrato tradicional escrito entre las partes. Para algunos juristas 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 de una forma para-legal. 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. El debate sigue abierto.
¿Cuando apareció el primer “smart contract”?
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 smart contracts 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 smart contracts 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 ordenadores mas potentes, el concepto de contratos inteligentes volvió a ponerse sobre la mesa y ahora tenemos la posibilidad de que su aplicación sea una realidad y no una quimera.
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 (bitcoins), 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 múltiples aplicaciones: sistemas de identidad y reputación, resguardo de archivos de forma descentralizada, organizaciones autónomas descentralizadas (DAO), mercado descentralizado blockchain, apuestas P2P, sistemas de custodia con múltiples garantes y muchas otras posibilidades. La verdad es que las aplicaciones planteadas por Vitalik fueron tan solo una mínima parte de lo que hoy está disponible.
¿Cómo se hacen los contratos inteligentes en Ethereum? La realidad es que no se escriben igual que un contrato tradicional, debemos de recordar que 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 mucho más compleja que la red de Bitcoin y su lenguaje “Bitcoin Transaction Language”. Esto 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 el problema de que se consume mayor poder computacional para realizar estas operaciones y ello implica un gran aumento en los costos para su utilización.
¿Son totalmente seguros?
Debido al boom de los smart contracts, muchos han llegado a afirmar que son programas infalibles ante cualquier ataque o error, pero eso no es cierto. Al igual que cualquier programa, los contratos inteligentes pueden tener errores dentro de su configuración. Hay que recordar el caso del hackeo “The DAO” en Ethereum, uno de los casos más emblemáticos en este entorno. Se llegaron a perder 50 millones de dolares que a día de hoy no se han recuperado.
Los errores en la programación de un contrato inteligente pueden generar errores sensibles de ser aprovechados por hackers y estos pueden llegar a robar el dinero depositado dentro del contrato. Ello requiere que la programación de los contratos deba ser hecha con mucho cuidado. 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 incluido en la red. Todo lo que acordemos plasmar dentro del contrato inteligente es irreversible y debemos atenernos a las consecuencias de ello.
Fuente: agujero.net
COMENTARIOS