Smart contracts: contratos inteligentes

Autor: Dudatis.com

Smart contracts: contratos inteligentes

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?

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. 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.

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 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.

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.

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.

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:

  1. Se genera un clave pública que usuario y página web deben compartirse mutuamente.
  2. El usuario crear una primera transferencia, por ejemplo de 1 BTC, sin emitirla. Esta transacción se crear en un OUTPUT necesario para que el usuario y la página web puedan firmarlo.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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 es 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 encargan de producir bloques.

Como ves, los smart contracts son el futuro. ¿Estás preparado para ello?


0 Comentarios

En Dudatis.com, nos encanta que participes y expreses tus opiniones. Tu voz es importante para nosotros. Siéntete libre de comentar y compartir tus ideas. Esperamos con interés tus comentarios.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Apreciamos tu participación, y te pedimos que respetes nuestras normas. Recuerda que los campos marcados con * son obligatorios.