En una sociedad eminentemente tecnológica como la actual aparece un nuevo tipo de contratos, los llamados Smart contracts o contratos inteligentes. En este post te explicamos en qué consisten esos contratos, la legalidad y la seguridad de los mismos.
¿Qué son los Smart contracts?
Los contratos inteligentes consisten en programas informáticos programados para ejecutar automáticamente acuerdos establecidos entre dos o más partes. Se sujeta el contrato al alcance de un término (llegada de un día concreto) o al cumplimiento de una determinada condición (que ocurra un cierto hecho). Al cumplirse ese término o condición se ejecuta automáticamente el contrato sin que exista una autoridad o un juez que reclame ese cumplimiento.
Esto nos lleva a hacernos algunas preguntas.
¿Cómo es posible que el contrato pueda cumplirse solo?
¿Cómo puede saberse que la condición a la que estaba sometido ese contrato se ha cumplido?
En definitiva, ¿cómo funcionan los smart contracts?
Para responder a estas cuestiones están los llamados Oráculos. Se trata de programas informáticos que verifican información confiable en Internet lo que les permite conservar actualizados los contratos. Ese Oráculo de un Smart contract es similar a un tercero que hace de intermediario entre las partes que suscriben un contrato.
El Oráculo puede comprobar cualquier cosa que se encuentre en Internet. Desde un determinado precio en el mercado hasta la llegada de una fecha o la realización de un hecho concreto. Es decir, puede verificar cualquier circunstancia a la que las partes hayan supeditado el cumplimiento del contrato inteligente.
Lo que se pretende es descentralizar los Oráculos todo lo posible para que estos puedan comprobar diversas fuentes de información establecidas por los participantes en el contrato y así verificar los datos. Existe un proyecto basado en Blockchain que pretende esa descentralización mediante la comprobación de una multitud de bases de datos.
Diferencias entre Smart contracts y contratos tradicionales
Un contrato es definido legalmente como un acuerdo entre dos o más partes que tiene la finalidad de crear, modificar o finalizar una relación jurídica de carácter patrimonial.
Para ser válidos legalmente, los contratos deben incluir tres elementos:
- Consentimiento de las partes intervinientes
- Establecimiento del objeto del contrato
- Causa posible y lícita
Los Smart contracts también deben tener esos elementos, pero con algunas diferencias destacables. También existen diferencias respecto a la formalidad en los Smart contracts. A continuación vamos a ver cada una de ellas.
Consentimiento de las partes
Un contrato inteligente también requiere el consentimiento de las partes intervinientes pero la identificación de las mismas no es igual que en los contratos tradicionales. Al ser un programa informático escrito en un código, las partes se deben identificar a través de un algoritmo o código, según lo que pretenda el contrato.
Para ratificar ese consentimiento es necesario que las partes realicen un «Doble depósito» en la dirección establecida por el contrato. Esto significa que los participantes deber realizar un depósito de fondos como garantía de que cumplirán con sus obligaciones.
Por otro lado, existe también una herramienta llamada «Función Multifirma». Este programa exige que las partes del contrato confirmen las transacciones internas de ese contrato. De esta forma se evita que alguna de las partes utilice o retire los fondos depositados para la ejecución del contrato sin cumplir las normas establecidas.
Objeto del contrato
El objeto del contrato en los contratos tradicionales se refiere a las obligaciones incluidas en esos contratos. Estas obligaciones pueden ser:
- Acciones de hacer, de dar o de no hacer
- Transmisión de un derecho
- Servicios de resultado o de medio
En los Smart contracts el objeto está referido a una obligación que tenga un apoyo digital, esa obligación debe poder cumplirse en el entorno digital.
Por ejemplo, un contrato con un albañil para reformar mi casa no puede realizarse como contrato inteligente ya que esa obligación no puede cumplirse en un entorno digital ni es posible controlarla digitalmente.
Estos impedimentos del mundo real intentan solucionarse a través del Internet de las cosas. Mientras más objetos comunes estén conectados a Internet, más sencillo será tener un apoyo digital de las obligaciones para establecerlas en un contrato inteligente. En la actualidad, por muy raro que parezca, una gran parte de las empresas están preparándose para esos cambios. Por ejemplo, los seguros, las farmacias o el sector de la construcción.
Otra de las diferencias entre los contratos tradicionales y los inteligentes es que los primeros se celebran por escrito y se formalizan ante notario o ante un juez. Los Smart contracts se escriben mediante códigos al ser programas informáticos y no necesitan que un juez o notario los revise para darles validez. Esos contratos se cumplen por sí solos.
Legalidad de los Smart contracts
Una de las cuestiones más polémicas actualmente es si los contratos inteligentes pueden tener la misma validez que los tradicionales, celebrados por escrito entre las partes. Los expertos en el sector de las criptomonedas consideran que esos contratos inteligentes colisionan con los tradicionales ya que pretenden cumplir las mismas funciones pero al margen de la legalidad.
Sin embargo, otros juristas consideran que los Smart contracts en España sí pueden adaptarse al derecho vigente sin problemas. Así, hay quien considera que los contratos inteligentes se aplican según las normas de Derecho Internacional Privado. A través de este sector del derecho pueden estudiarse los elementos de conexión del contrato para poder establecer cuál es la jurisdicción nacional aplicable para interpretar ese contrato.
Para otros juristas no todos los Smart contracts son contratos legales. Únicamente se consideran conformes a la ley cuando incluyan el contenido y los términos de los contratos tradicionales, o cuando regulen una obligación contractual entre dos o más partes. En caso de considerar al contrato inteligente como un mero programa informático, no estaría sujeto a ninguna jurisdicción por lo que no sería un contrato legal.
Para considerar los contratos inteligentes como legales o no no es necesario establecer una nueva regulación de la normativa existente. Es posible verlos como una nueva manera de aplicar los conocidos contratos tradicionales en nuestro ordenamiento jurídico.
También hay quien considera estos contratos inteligentes como una opción de arbitraje donde las partes intervinientes eligen voluntariamente regirse por las disposiciones establecidas en el propio contrato.
Origen de los Smart contracts
El concepto de smart contract comenzó a utilizarse por primera vez hace 26 años. Entonces se establecía que esos contratos debían unir protocolos con interfaces de usuario para asegurar y formalizar relaciones mediante redes informáticas hacer más normales las relaciones en el ámbito digital.
Era necesario incluir una comprobación de los elementos, las consecuencias en caso de incumplimiento y una constatación automática para su cumplimiento para que estos contratos se consideren válidos y legales.
En los 90 surgió un proyecto de criptomoneda llamado DigiCash y se consideran los Smart contracts como un proyecto adecuado para garantizar la correcta transacción con criptomonedas.
En ese momento aún estaba lejos de la realidad la aplicación de los contratos inteligentes debido a que la tecnología no estaba adaptada suficientemente para cumplir los requerimientos de esos contratos.
Al surgir la tecnología Blockchain y los ordenadores más potentes volvió a aparecer el concepto de Smart contracts y en la actualidad es mucho más fácil su aplicación. De hecho, el uso de smart contracts en blockchain es cada vez más habitual
Smart contracts en Ethereum
El creador de Ethereum consideró que dentro de esta red, con la tecnología Blockchain y el sistema descentralizado, podrían aplicarse los contratos inteligentes.
Estos contratos eran considerados como aplicaciones complejas a través de las cuales podían controlarse activos digitales mediante códigos con reglas arbitrarias. Y se entendía que los contratos inteligentes podían crear sistemas ilimitados, pudiendo utilizarse sobre todo en tres tipos de aplicaciones:
- Financieras
- Semi financieras
- No financieras
Dentro de esas aplicaciones pueden utilizarse en:
- Sistemas de identidad y reputación
- Conservación de archivos de forma descentralizada
- Mercado descentralizado Blockchain
- Organizaciones autónomas descentralizadas
- Sistemas de Escrow con múltiples garantes
- Apuestas cruzadas, etc.
Solidity
Los contratos inteligentes en Ethereum no se escriben igual que los tradicionales. Al ser programas informáticos deben ser programados como tales.
El lenguaje utilizado para escribir este tipo de contratos en Ethereum se llama Solidity. Se trata de un complejo lenguaje informático con el que es posible resolver complicados problemas informáticos y ejecutar tareas mediante instrucciones.
Con este tipo de lenguaje la red Ethereum es más compleja que la red de Bitcoin. La parte positiva es que eso permite incorporar elementos más complejos como los Smart contracts. Pero la parte negativa de todo esto es que se produce un mayor consumo de energía en los ordenadores, lo que conlleva un incremento considerable de los costes por su utilización.
¿Son seguros los contratos inteligentes?
Muchos consideran estos programas como totalmente seguros ante cualquier error o ataque. Pero eso no es del todo cierto. Los contratos inteligentes pueden tener errores o fallos en su configuración, al igual que cualquier programa informático.
El principal ejemplo de la vulnerabilidad de esos contratos inteligentes fue el hackeo producido al Smart contract de la Organización autónoma descentralizada de Ethereum. Este ataque ocasionó pérdidas de casi 4 millones de Ethers, conflictos dentro de la comunidad de Ethereum e incluso la separación de Ethereum Classic.
Los fallos en la programación de un contrato inteligente pueden provocar de alguna forma, un ciberataque a la empresa con el fin de robar el dinero que se ha depositado dentro de ese contrato. Por eso la preparación de estos contratos debe realizarse con mucho cuidado para evitar cualquier fallo que pueda ser aprovechado por un ciberdelincuente.
Al estar configurados en la red Blockchain, una vez preparados, esos smart contracts no pueden ser modificados o reescritos. Si existe algún tipo de error respecto a los términos y condiciones o las cifras del contrato no podremos arreglarlo. Lo incluido en el contrato inteligente es irreversible por lo que debemos atenernos a las consecuencias de ello.
¿Cómo crear un smart contract?
Imagina que quieres hacer un depósito de Bitcoins o de otra criptomoneda en alguna página web o servicio que acepte este método de pago. Lógicamente, no querrás ser estafado ni perder tu dinero. En ese caso, la solución es crear un smart contract.
Estos son los pasos para crear un smart contract:
- Se genera un clave pública que usuario y página web deben compartirse mutuamente.
- El usuario crear una primera transferencia, por ejemplo de 1 BTC, sim emitirla. Esta transacción se crear en un OUTPUT necesario para que el usuario y la página web puedan firmarlo.
- A continuación el usuario envía el hash de la transacción a la página web. Este hash funciona como un algoritmo matemático que convierte un bloque aleatorio de datos en una nueva serie de caracteres, los cuales tienen una longitud definida.
- La página web realiza una segunda transacción en la que se devuelve la primera transacción al usuario a través de la clave proporcionada en el primer paso. Sin embargo, la operación no estaría completa, ya que esa primera transacción requería las firmas tanto del usuario como de la página web.
- En relación al punto anterior, ahora es cuando se crea el parámetro nLockTime, el cual permite establecer una fecha futura para la transacción de los Bitcoins. Por ejemplo, si se pone de nLockTime un mes, no se podrían añadir fondos a una transacción antes de que pase ese período de tiempo.
- La página web devuelve la transacción sin firmar al usuario. De esta forma, el usuario puede comprobar que se le ha devuelto la transacción íntegra y que todo el proceso se ha realizado correctamente y el importe volvería a su posesión, eso sí, pasado el mes que se colocó en el nLockTime.
- *Colocando la función Secuence Numer en 0, ambas partes podrían modificar la fecha del contrato en el futuro si lo creen conveniente.
Ahora, imagina que la página web desaparece o que no hay manera de contactar con sus administradores. ¿Se podrían recuperar los fondos?
La respuesta es sí. El script del INPUT, esto es, las instrucciones de cada operación, todavía no ha terminado. El lugar destinado a la firma del usuario sigue formado por una serie de ceros. Por tanto, falta la firma del usuario en el smart contract.
Una vez que el usuario haya puesto su firma y pasado el mes de límite que se estableció, se transmitirían tanto la primera como la segunda transacción, es decir, el BTC que el usuario añadió a los fondos de la web en la primera transacción le serían devueltos
Explicado con palabras puede resultar complicado de entender, pero en la práctica es más fácil de lo que parece y funciona de manera muy natural. Además, existen plataformas diseñadas para este tipo de transacciones con contratos inteligentes.
Plataformas para crear contratos inteligentes
Ya te hemos hablado de Ethereum, pero hay muchas otras plataformas destinadas a la configuración de contratos inteligentes. Dos ejemplos son Tron y EOS.
Tron
Tron es una plataforma de smart contracts fundada en el año 2017 por Justin Sun. Está orientada a facilitar y mejorar la ejecución y escalabilidad de apps descentralizadas.
Esta plataforma utiliza un código extraído de una rama de Ethereum y configura los smart contracts mediante una copia del lenguaje de contratos inteligentes de Solidify.(el más empleado por Ethereum).
Sin embargo, los mecanismos de consenso que emplea Tron son diferentes a los que emplea Ethereum. Mientras ésta empleaba un sistema llamado Prueba de Trabajo, en la que los usuario producían bloques para la red, Tron emplea un mecanismo denominado Prueba de Estaca o DPos. En este caso, los bloques para la red son producidos por 27 Super Representantes, lo que le permite realizar transacciones de forma mucho más rápida.
EOS
Otra de las plataformas para smart contract más conocidas en EOS. Esta herramienta nació a mediados del año 2018 y desde entonces ha obtenido un éxito considerable. En este caso también usa como mecanismo de consenso la Prueba de Estaca o de participación delegada, en la que 21 Super Productores elegidos por la propia comunidad se encargar de producir bloques,
Como ves, los Smart contracts son el futuro. ¿Estás preparado para ello?
yo estoy actualmente haciendo contratos con GramFree.net, y no dice el vencimiento de los contratos por ningun lado. Saben algo de esta web??
Buenos días Luis, la web no es segura y no incluye ni política de privacidad ni aviso legal