BTC
ETH
LTC
SOL
BCH
USDC
USDT

¿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

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

contrato-mineroCuando 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:

  1. Contratos de firma digital
  2. Contratos que requieren confirmación por voz
  3. 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.

smart-contract-españaLos 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

  1. Se programan las condiciones,
  2. Se firman por ambas partes implicadas
  3. Y se ‘coloca’ en una blockchain para que no pueda modificarse.

Y por otra parte, tienen como objetivo principal:

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.

Contratos-inteligentes-ethereumUna 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:

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

como-hacer-contratos-inteligentesAdemá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.

alquiler-propiedad-smart-contractA 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:

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:

smart-contracts-logica

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.

smart-contracts-ethereum-solidity

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.

multifirma-contratos-ethereumUna 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.

que-aplicaciones-tiene-ethereumO 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

Servicios de la salud

Servicios de propiedad intelectual

Servicios energéticos

Servicios del sector público

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?

aprender-solidity

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:

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.