¿Qué son los smart contracts?
Un gran paso adelante en la automatización, seguridad y garantías respecto a los contratos tradicionales.
Solidity
Aprende el lenguaje de programación de los contratos inteligentes para poder crearlos tú mismo o encontrar nuevas oportunidades de trabajo.
Ðapps
Las aplicaciones decentralizadas nos abren a un nuevo mundo de posibilidades en el que su aplicación será revolucionaria.
ÍNDICE
- Evolución de los contratos tradicionales
- ¿Cómo funcionan los Smart Contracts?
- Usos de los Contratos Inteligentes
- Beneficios de los Contratos Inteligentes
- ¿Cómo crear un Contrato Inteligente?
- Conclusión
Es un término que aparece innumerables veces cuando uno se adentra en el mundo del Bitcoin, las criptomonedas y la blockchain, así que hemos decidido adentrarnos en él y explicártelo de forma sencilla.
¿Qué son exactamente los contratos inteligentes o smart contracts?
Para entenderlos demos un paso atrás durante unos instantes:
Evolución de los contratos tradicionales
Cuando se habla de contratos nos viene a la mente el típico documento en papel con una serie de condiciones escritas, en el que si las partes implicadas están de acuerdo con ellas, escriben su firma en él comprometiéndose a cumplir dichas condiciones.
Todos hemos firmado alguno.
Hoy en día, aunque éste método sigue siendo el más utilizado en todo el mundo, también ha ido evolucionado ligeramente, encontrándonos con:
- Contratos de firma digital
- Contratos que requieren confirmación por voz
- Contratos Inteligentes
Los contratos de firma digital son los que te encuentras siempre cuando te registras como usuario en una web, en el que tienes que hacer click en el cuadro que marca “Acepto las condiciones de uso y política de privacidad”.
Cuando aceptas esos términos, automáticamente“firmas” ese contrato con ese sitio web.
Esto pasa en cualquier portal en el que tengas que darte de alta, como por ejemplo en redes sociales como Facebook o Twitter, tiendas online como Amazon, o plataformas de servicios como Airbnb.
Los contratos que requieren una confirmación por voz son aquellos en los que tu firma es tu propia voz aceptando los términos del contrato.
Esto se suele dar en compañías de telecomuniacaciones tales como Orange, Movistar o Vodafone, entre otras. Estas compañías llaman para ofrecer un servicio con unas condiciones.
Si el usuario está de acuerdo con esas condiciones, la compañía toma nota de los datos legales de esa persona (nombre, dirección, DNI…) y le hace responder “Acepto las condiciones”, grabando su respuesta como “firma” del usuario.
Los mencionados anteriormente forman el formato tradicional de contrato, sin embargo estos están evolucionando hacia lo que hoy en día ya son llamados contratos inteligentes.
A continuación, vamos a explicar detalladamente qué son, cómo se ejecutan y sus aplicaciones:
¿Qué es un smart contract o contrato inteligente?
Un contrato inteligente es un programa informático que ejecuta acuerdos establecidos entre dos o más partes haciendo que ciertas acciones sucedan como resultado de que se cumplan una serie de condiciones específicas.
Es decir, cuando se da una condición programada con anterioridad, el contrato inteligente ejecuta automáticamente la cláusula correspondiente.
Son contratos que se ejecutan y se hacen cumplir a sí mismos de manera automática y autónoma.
Los contratos inteligentes –smart contracts en inglés- llevan desarrollándose desde 1993, cuando el famoso criptógrafo Nick Szabo acuñó el término por primera vez.
Nick propuso este sistema de contratos por aquel entonces, sin embargo la infraestructura tecnológica del momento lo hacía inviable.
Era necesario un sistema de pagos que los pudiese llevar a la práctica y esa situación no apareció en escena hasta la creación del Bitcoin en el año 2009.
No obstante, Bitcoin no estaba pensado para nada más que ser una herramienta financiera: una criptomoneda.
Por el contrario, la tecnología con la que funcionaba – el blockchain o cadena de bloques-, sí que hacía posible estos contratos inteligentes y fue a principios de 2014, con la creación de Ethereum, cuando, por fin, pasaron a ser una realidad.
Estos smart contracts “viven” en una atmósfera no controlada por ninguna de las partes implicadas en el contrato, en un sistema descentralizado.
Esto significa que
- Se programan las condiciones,
- Se firman por ambas partes implicadas
- Y se ‘coloca’ en una blockchain para que no pueda modificarse.
Y por otra parte, tienen como objetivo principal:
- Implementar una estado de seguridad mayor al del contrato tradicional.
- Reducir costes.
- Reducir el tiempo asociado a este tipo de interacciones.
En otras palabras, buscan mejorar los contratos actuales siendo más seguros, más baratos, ahorrándonos tiempo y evitándonos fraudes.
Contratos tradicionales vs Contratos inteligentes
Cuando hablábamos de los contratos en papel, sabemos que éstos están escritos en un lenguaje natural: se puede escribir en cualquier idioma, pero en un lenguaje legal comprensible entre dos personas.
Una vez que se aceptan los términos y se firma, según las leyes aplicables, la responsabilidad legal de ambas partes tiene unos costes que usualmente provienen de un notario, dando validez a ese contrato.
También sabemos que su modo de cumplimiento depende del punto de vista de cada parte implicada: en un contrato, las cláusulas tienden a beneficiar a una de las partes por encima de la otra.
Por el contrario, los contratos inteligentes difieren en estos tres puntos anteriormente mencionados:
- El lenguaje no es natural, sino que es un lenguaje virtual, un lenguaje de programación informática. Al igual que cada programa de ordenador o cada aplicación móvil están programados para realizar una serie de tareas, los contratos inteligentes también realizan tareas bajo unas instrucciones introducidas previamente.
- Esto hace que en el modo de cumplimiento no haya diferentes puntos de vista, sino una única lectura: Si se da la condición establecida, el contrato ejecuta automáticamente la consecuencia a dicha acción.
- La responsabilidad legal del smart contract sigue en desarrollo. Lo que es indudable es que no requiere de un intermediario (como el notario) ya que el contrato en sí es el intermediario de confianza, reduciendo así los costes y el tiempo de las interacciones.
¿Cómo funcionan los smart contracts?
Imaginemos una máquina expendedora de comida como las que podemos encontrar en cualquier aeropuerto o en una estación de tren.
Esa máquina está programada para que cuando tu introduzcas cierta cantidad de dinero y pulses una combinación de números, automáticamente el producto seleccionado salga de la máquina para ser tuyo.
Además, otra orden que tiene programada es la de que, en caso de haber introducido más dinero del que costaba el producto, la máquina te devuelva el cambio, o de que en caso de no haber un producto seleccionado marque en la pantalla ‘Producto Agotado’.
Ésta programación de la máquina es lo que sería el contrato inteligente, y las partes implicadas sois la máquina y tú.
Las reglas del contrato inteligente son las reglas que hemos mencionado anteriormente y que son ejecutadas por sí solas si se cumplen las acciones correspondientes.
Esto funciona en el lenguaje informático como una sentencia llamada ‘if – then’, que significa “si… entonces…” y viene a simbolizar que:
“si se cumple el acuerdo… entonces se da la condición”.
En el ejemplo anterior, estos acuerdos con la sentencia ‘if – then’ serían algo así:
Si se cumple que el usuario introduce dinero suficiente y pulsa la combinación ‘032’, entonces saldrá la botella de agua. Si se cumple que el usuario ha introducido más dinero que el necesario, entonces se le devuelve la diferencia. Si el usuario introduce el dinero y pulsa ‘032’ pero no hay artículo, entonces poner mensaje de ‘Producto Agotado’.
Así funcionaría un contrato inteligente.
Pensarás: “¡Pero si estas máquinas existen desde hace muchísimos años!
¿Qué novedad hay aquí?”
No obstante, en este ejemplo y con una visión un tanto adelantada, el contrato inteligente que llevaría programado este tipo de máquinas sería el de que “si se acaba el producto ‘032’… entonces” -de forma autónoma y automática- la máquina mandará una señal al proveedor de botellas de agua para que vaya a reponerlas.
Esto elimina a un intermediario que tiene que estar vigilando la máquina, llamando a los proveedores y reponíendola por sí mismo, eliminando así también los costes de tiempo y dinero en dicho proceso y simplificando mucho más la tarea.
Por otra parte, este es un mini-contrato programado en una simple máquina expendedora. Imagina cómo se complica el asunto cuando hablamos de contratos de trabajo, contratos de alquiler de propiedades o contratos de compra-venta.
Otro ejemplo podría ser el alquiler de una propiedad.
Hoy en día ya existen cerraduras electrónicas que se abren con una tarjeta como las que hay en numerosos hoteles y empresas a lo largo del mundo. Mientras la tarjeta asociada a la puerta esté activa, tu puedes entrar y salir cuando quieras.
En el caso del hotel, imagina como sería con un contrato inteligente: si tu has pagado hasta el día 30 del mes en curso y las normas del hotel son que tienes que salir antes de las 11:00 de la mañana, la tarjeta funcionará hasta el día 30 a las 11:00 de la mañana.
A las 11:01h ya no podrás abrir la habitación. Esas serían las reglas del contrato que se ejecuta por sí mismo una vez pasa de esa hora.
Esto haría posible un Airbnb pero sin su mediación ni sus comisiones. Y lo mismo podría pasar con plataformas como Uber o Blablacar: actuar directamente entre la gente interesada (relaciones p2p, peer-to-peer, entre pares), mediante un contrato inteligente, ahorrándose las comisiones de dichas plataformas y el tiempo de gestión.
También podría existir el caso de la compra de una propiedad.
Por ejemplo, si Carlos quiere comprar la casa de Pablo en cuotas mensuales, y lo quieren hacer a través de un contrato inteligente de Ethereum, deberán llegar a un acuerdo en las reglas a cumplir tales como:
- La cantidad mensual.
- El día del mes que se debe realizar el pago.
- La cantidad total a pagar por la propiedad.
- Etc.
También datos importantes como que si Carlos no paga el dinero mensual establecido en la fecha establecida a Pablo, la cerradura de la casa se bloqueará hasta no realizar el pago, o que Pablo cederá el título de la propiedad a Carlos sin que se pueda echar atrás.
Una vez establecidas las normas del contrato y puesto en marcha, éste actuará de forma autónoma y automáticamente sin necesidad de que Carlos y Pablo interactúen ni busquen mediación en caso de desacuerdo.
A través del siguiente gráfico aportado por BBVA podremos entrever la lógica empresarial de los smart contracts:
A modo de resumen, un contrato inteligente funciona de forma que las partes configuran los términos del contrato, éste se almacena en Ethereum y cuando se dan los términos descritos, el sistema ejecuta el contrato y se dan las consecuencias descritas en el mismo.
¿Qué es el oráculo (oracle) y qué relación tiene con un contrato inteligente?
Continuemos con los ejemplos como método didáctico.
Digamos que Carlos y Pablo son aficionados al fútbol.
Carlos es del Real Madrid y Pablo es del FC Barcelona. Carlos quiere apostar 5 Ether (la criptomoneda de Ethereum) a que el Real Madrid gana el clásico y Pablo quiere apostar los mismos Ether a que lo gana el FC Barcelona.
Llevan a cabo la apuesta a través de un contrato inteligente, especificando las reglas del contrato y depositando los fondos en una cuenta.
Una vez se sepa quién gana, el contrato repartirá a uno u otro el total de Ether apostados automáticamente.
En este caso un ente externo al contrato le tiene que decir a éste quién ha ganado, y ese ente es el Oráculo (oracle en inglés).
Esta herramienta permite actualizar el estado de los contratos inteligentes con información externa, como por ejemplo qué equipo ganó el partido.
Es verdad que este ente es un ente externo a la cadena de bloques o blockchain, es un tercero, un intermediario en el que se debe confiar, y por lo tanto esto tiene un impacto en el aspecto centralización, algo totalmente opuesto a la tecnología blockchain.
Para solucionar esta introducción de un intermediario en la cadena y descentralizar la obtención de este resultado, hay proyectos que actúan como portadores de información entre los servicios externos (APIs) y Ethereum. Un ejemplo de ello es Oraclize.
Este proyecto lo que hace es combinar todos los portales de información que sean indicados en el contrato y relevantes para el mismo, y es Oraclice el que, en función de los resultados que obtenga, tomará su decisión final.
Función multifirma en contratos inteligentes
La función multifirma en los smart contracts es una función a través de la cual dos o más personas se deben de poner de acuerdo para hacer cumplir las condiciones de un contrato.
Imaginemos que Ana y Luis son dos amigos que quieren hacer un viaje juntos para recorrer el mundo durante un año. Es un viaje costoso por lo que tienen que ahorrar bastante dinero.
Deciden hacer un contrato inteligente en el cual cada uno tiene que poner una cantidad establecida de 500 euros al mes hasta que lleguen a 30.000 euros. El contrato inteligente bloqueará esos fondos hasta que se cumplan las condiciones del contrato.
Una vez se llegue a la cantidad de 30.000€, uno de los dos podría sacar todo el dinero por su cuenta y eso sería un problema, pero para que algo así no suceda existe la función multifirma.
Ésta permite que todas -o un %- de las partes deba aprobar la acción.
En este caso concreto, Ana no podría sacar el dinero sin que Luis esté de acuerdo, y viceversa. A través de la función multifirma son ambos los que tienen que estar de acuerdo, haciendo así que ninguno se pueda apoderar de la totalidad del dinero.
Dobles depósitos en los contratos ingeligentes
Esta es otra característica de los contratos inteligentes que hace que funcionen correctamente, eliminando al intermediario del proceso.
Permite a dos o más partes que no se conocen entre sí y que carecen de confianza el uno en el otro, realizar una transacción segura para ambos a través de un contrato inteligente.
Este contrato les obliga a depositar en una dirección de la cadena de bloques unos fondos para el cumplimiento del contrato.
El contrato tiene una duración determinada, y si no llegan a un acuerdo, el contrato inteligente mandará directamente los fondos que ambas partes tuvieron que abonar a otra dirección de la cadena de bloques de la que nadie podrá sacarlos nunca.
Lo que hace esta condición es forzar a cumplir a cada uno con su parte del contrato. De lo contrario, los fondos desaparecerían.
Vamos a pasar de la teoría a la práctica con un ejemplo:
Pongamos que Ramón quiere comprar un plato de comida tailandesa a Khalan que cuesta 10€.
En el método tradicional, si no pagas antes, no hay comida, pero entre particulares podría darse el caso de que Ramón pague los 10€ y Khalan no le envíe la comida, quedandose así con el dinero.
O que Khalan se fie de Ramón, le mande la comida antes de recibir el dinero y Ramón no le pague.
Habría un problema de confianza en la otra parte.
Mediante un contrato inteligente de doble depósito, Ramón pagaría 10€ en el contrato inteligente y otros 10 como depósito de seguridad.
Khalan pagaría 20€ también pero sólo como depósito de seguridad.
El contrato inteligente se ejecutará según las reglas que Ramón y Khalan hayan acordado, es decir, se ejecutará si Ramón recibe el plato de comida tailandesa y Khalan recibe los 10€.
Si ésto pasa -que ambos reciban lo que acordaron- las dos partes recibirán también su depósito de seguridad como compensación de haber hecho cumplir la seguridad del contrato.
En otras palabras, recibirán el dinero de vuelta por haber hecho las cosas como se acordaron. Si por el contrario, una de las dos partes (o ambas) no cumplen con lo acordado, nadie obtendrá dinero alguno, lo perderán como penalización por no haber cumplido con el trato.
En conclusión, este doble depósito con el deposito de seguridad hace que sea imposible que una de las partes gane sin que la otra lo haga, es decir, no se dan engaños y hace que la gente llegue a acuerdos amistosos.
Este tipo de métodos ya se han añadido en algunos mercados descentralizados. Los podemos ver en portales como Bithalo y Blackhalo.
Usos de los contratos inteligentes de Ethereum
Partiendo de la base de que la plataforma Ethereum, la teconología blockchain y los contratos inteligentes son herramientas novedosas, los usos de los smart contracts hoy no son ni mucho menos lo que serán en un futuro.
Al igual que Internet nunca se pensó para mandar correos electrónicos y sin embargo, hoy en día, seguimos descubriendo nuevos usos de la “Red de Redes”, los contratos inteligentes se podrán aplicar a prácticamente todas las cosas.
Los que encontrarás a continuación son sólo algunos de los posibles usos que se le podrían dar:
Servicios financieros
-
- Préstamos: si la persona que contrata el préstamo no realiza el pago en el tiempo estipulado, se ejecutaría el contrato para retirarle las garantías.
- Liquidación de operaciones: los contratos calculan importes de liquidación y transfiere fondos automáticamente.
- Pagos de cupones y bonos: los contratos calculan y pagan automáticamente de forma periódica los cupones y devuelve el capital al vencimiento de los bonos.
- Microseguros: Calculan y transfieren micropagos basados en datos de uso de un dispositivo conectado a Internet (por ejemplo, un seguro automotriz de pago por uso)
- Depósito en garantía en el registro de la propiedad: el contrato supervisa la información externa a la cadena de bloques y una vez transferida la propiedad de un vendedor a un comprador, el contrato ingresa automáticamente los fondos al vendedor.
- Herencias: una vez que el contrato puede verificar el fallecimiento de la persona, automáticamente las propiedades quedan repartidas y asignadas entre los herederos.
- Automatización de pagos y donaciones: se pueden acordar pagos o donaciones periódicas o puntuales a personas o entidades. El contrato inteligente lo que haría es verificar que se cumplen las reglas para realizar automáticamente la donación.
Servicios de la salud
-
- Expedientes médicos electrónicos: los contratos proporcionan transferencias y accesos a los historiales médicos tras la aprobación de múltiples firmas entre pacientes y proveedores.
- Acceso a los datos sanitarios de la población: se conceden a las organizaciones de investigaciones sanitarias el acceso a determinada información sanitaria personal. A cambio, a través de los contratos, se realizan micropagos automáticamente al paciente para su participación.
- Seguimiento de la salud personal: se realiza un seguimiento de las acciones relacionadas con la salud de los pacientes a través de dispositivos IoT -Internet of Things- (conectados a Internet). Los contratos generan automáticamente recompensas basadas en hechos específicos.
Servicios de propiedad intelectual
-
- Distribución de royalties: el smart contract calcula y distribuye los pagos de royalties a artistas y otras partes asociadas según los términos acordados.
Servicios energéticos
-
- Estaciones autónomas de recarga para vehículos eléctricos: el contrato procesa un depósito, habilita la estación de recarga y devuelve los fondos restantes una vez completados.
Servicios del sector público
-
- Votación: valida los criterios del votante, registra el voto en la cadena de bloques e inicia acciones específicas como resultado del voto mayoritario. Esto es posible en una votación tanto a nivel de encuesta como a nivel estatal.
- Apuestas: dos o más partes pueden apostar sin que se resienta su seguridad y sin necesidad de un tercero a través de un contrato inteligente que asegure unas condiciones concretas.
- Propiedades inteligentes: una casa, un coche, una nevera, una lavadora…todos los objetos que se puedan conectar a Internet se consideran propiedades inteligentes (del inglés, smart property). Y todos pueden ser gestionados con contratos inteligentes para poder venderlos o alquilarlos de forma automatizada.
Beneficios de los contratos inteligentes de Ethereum
Después de haber definido qué son, describamos los beneficios que tienen:
Autonomía
Estos contratos se dan siempre entre una o varias personas o entes legales, pero sin ningún intermediario. No es necesario alguien que valide el contrato, como podría ser un abogado. Por ello reducen, e incluso pueden llegar a eliminar cualquier persona extra que no esté implicada en el contrato.
Costes
Al ser contratos en los que no se depende de un tercero, se reducen los costes. Menos intervención humana resulta en costes reducidos.
Confianza
Todos los contratos inteligentes van directos a la cadena de bloques. Esto hace que: 1) esté encriptado, por lo que solo las personas implicadas pueden leerlo, y 2) permite la interacción entre personas que no se conocen entre sí sin que haya riesgo de estafa.
Velocidad
Los contratos inteligentes utilizan código de software para automatizar las tareas que de otro modo se realizarían por medios manuales. Por lo tanto, aumentan la velocidad de los procesos de negocio y son menos propensos a errores manuales.
Seguridad
Al basarse estos contratos inteligentes en la cadena de bloques pública de Ethereum no se pueden perder. Todo queda registrado de forma inmutable. Nada ni nadie lo puede hacer desaparecer y siempre se tiene acceso a ellos.
El proceso de ejecución descentralizado elimina el riesgo de manipulación, ya que la ejecución es gestionada automáticamente por toda la red, en lugar de por una parte individual.
Nuevos modelos de negocio
Los contratos inteligentes, a través de sus bajos costos para asegurar transacciones confiables, permiten nuevos tipos de negocios como el acceso automatizado a vehículos y unidades de almacenamiento.
Esto puede abrir nuevas vías de emprendimiento si lo juntamos con otras tendencias emergentes como el Internet de las cosas (IoT).
¿Cómo crear un contrato inteligente?
Al igual que los contratos en papel son creados por gente que conoce todo el ámbito legal alrededor de ellos, en los smart contracts sería necesario conocer el código informático, llamado Solidity (abre el enlace para aprender más sobre el mismo) o tener a alguien que sepa de ello.
Los mejores tutoriales sobre creación de smart contracts están en inglés y actualmente son éstos:
- Build your first Ethereum Smart Contract with Solidity
- A 101 Noob intro to programming Smart Contracts
- The Hitchhiker’s Guide to Smart Contracts in Ethereum
Hoy en día, no demasiadas personas tienen conocimientos de programación, lo cual puede llegar a suponer un problema de cara al desarrollo de estos contratos.
La demanda sería alta y la oferta no podría cubrirla.
Por suerte, hay plataformas que gestionan la creación de los contratos inteligentes. Una de ellas es SmartContract, donde se puede crear contratos inteligentes a través de Chainlink, su propia blockchain, que hace de nexo entre Ethereum y fuentes de datos externas a éste.
Conclusión
Muchos expertos sugieren que los contratos inteligentes entrarán en nuestra vida cotidiana en multitud de maneras distintas.
La más obvia es por supuesto, la sustitución de los contratos tradicionales por parte de los abogados, transformándolos en plantillas estandarizadas de contratos inteligentes o fusionándose en un híbrido de papel y contenido digital donde los contratos se verifican a través de blockchain y se corroboran mediante copia física.
Sin embargo como hemos visto anteriormente a lo largo del artículo, sus usos se van a expandir a prácticamente todos los ámbitos de la vida diaria:
En todas las áreas donde sea necesaria una comunicación entre dos o más partes (ya sean éstas entes vivos o máquinas) este tipo de contratos permiten que esa comunicación sea cien por cien veraz, segura, rápida y de bajo coste.