Contratos Inteligentes o Smart Contracts

Seguro que más de una vez has oído hablar de los Smart Contracts o Contratos Inteligentes. Qué si van a revolucionar el mundo, van a cambiar completamente ciertas industrias tal y como las conocemos o van a reemplazar el sistema financiero de hoy en día.

Pero, ¿Qué son estos contratos? ¿Cómo funcionan? ¿Pueden realmente tener tanto impacto y cambiarán el mundo? 

¡Veámoslo!

Los Smart Contracts no son tan complicados como parecen

¿Qué son los Smart Contracts?

Un contrato inteligente es una pequeña aplicación que se puede ejecutar por sí misma y obligar al cumplimiento de ciertas reglas programadas. Su objetivo principal es la automatización y eliminación de intermediarios.

Estas aplicaciones se almacenan dentro de una blockchain, como por ejemplo la red Ethereum.

Los Smart Contracts permiten realizar transacciones seguras, rastreables e irreversibles sin necesidad de intermediarios.

Esto ofrece una seguridad superior a los contratos legales tradicionales y reduce los costes. Por ejemplo, al prescindir de intermediarios cuya función es asegurar el cumplimiento del contrato.

Los contratos inteligentes eliminan el factor humano a la hora de tomar decisiones, que generalmente es lo más propenso a errores. Y esto precisamente los convierte en un complemento e incluso en algunos casos un reemplazo de los contratos tradicionales.

Estos contratos inteligentes también permiten almacenar, enviar y recibir fondos, así como contactar con otros contratos automáticamente. Siguen una semántica sencilla If … Then. Es decir, si ocurre un cierto evento predefinido, entonces ejecuta cierta acción.

Ejemplos de Contratos Inteligentes

Pero, esto no parece una tecnología tan revolucionaria, no? Vamos a ver algunos ejemplos.

El más sencillo de comprender probablemente sea una máquina expendedora. Estas máquinas tienen unas reglas muy sencillas, metes unas monedas y te entregan un refresco. Si no metes suficientes monedas, no te dan el refresco, y si metes más monedas de las necesarias te devuelven el resto. Esto, al igual que los smart contracts es un sistema determinista. Esto quiere decir que siempre va a actuar igual ante las mismas condiciones, monedas recibidas, refresco entregado. Quizá parezca un ejemplo un poco tonto, pero pensemos que un contrato similar puede ser aplicado por ejemplo a la hora de comprar activos digitales, de vendedores desconocidos, reduciendo la brecha de la desconfianza.

Diagrama de una máquina expendedora determinista

Quizá conozcas alguna empresa de crowdfunding, como por ejemplo Kickstarter. A esta empresa acuden generalmente start ups en búsqueda de inversores para el desarrollo de algún producto o proyecto.

Se publica el anuncio en la plataforma entonces los pequeños inversores pueden aportar capital para participar en el proyecto ofertado.

En este punto pueden ocurrir dos situaciones, que Kickstarter recolecte el valor total solicitado por el proyecto, entregando estos fondos, a la start up tras descontar una comisión por el servicio ofrecido, o que no se alcance el valor esperado. Dado este caso, se devolverá el dinero aportado por cada inversor.

En este escenario tanto la empresa en busca de fondos como los pequeños inversores tienen que confiar en Kickstarter

Este es un sistema perfectamente reemplazable por un smart contract. Reduciría los problemas de credibilidad, puesto que no habría que confiar en un tercero. Aumentaría la velocidad del proceso, ya que en el momento se cumplen las condiciones, se transfieren los fondos a un destinatario u otro.

Ejemplo diagrama crowfunding, reemplazable por un smart contract

Si nos paramos a pensar, las áreas de aplicación son prácticamente infinitas. 

Podemos pensar en sistemas similares como pueden ser juegos de lotería completamente autónomos evitando las comisiones de terceros y con una transparencia absoluta. Con un paso más tendríamos juegos de casino online con juegos como la ruleta o el blackjack siendo ejecutados desde smart contracts de forma completamente justa y transparente.

Extrapolando el escenario del casino, los contratos inteligentes también pueden automatizar el sector de apuestas deportivas. 

Uno de los sectores más propicios a adoptar los cambios ofrecidos por estos contratos inteligentes es el sector financiero. No sólo por los ecosistemas de finanzas descentralizadas DeFi, si no por las mejoras en los ámbitos de validación y trazabilidad. Podemos utilizar este tipo de contratos para evaluar y conceder hipotecas y préstamos, gestionar alquileres, automatizar herencias o incluso aportar credibilidad en ecosistemas de economía colaborativa. Algunos ejemplos de estos servicios pueden ser el alquiler vacacional de apartamentos como Airbnb, los vehículos de transporte con conductor como Uber, o el carsharing tipo blablacar, donde diferentes viajeros se organizan para compartir gastos en un mismo trayecto.

¿Dónde está la información?

Los contratos inteligentes pueden utilizar información del blockchain o información externa. Por ejemplo, de los ejemplos anteriores, la máquina expendedora, la plataforma de crowdfunding o la lotería se basan en información fiable que existe en la blockchain. Ya sea porque es algo implícito que genera el contrato, como el número ganador de la lotería, o porque la insertan los consumidores e interesados en la aplicación, como las ofertas realizadas en el caso de kickstarter.

Por otra parte, algunos de los casos planteados anteriormente están basados en información externa del mundo real, como el caso de las apuestas deportivas, donde el resultado de cada evento se tiene que trasladar de forma segura a la blockchain. Esto puede parecer algo sin importancia, pero la realidad es que la ventaja de la fiabilidad y veracidad de los contratos se puede ver afectada si las fuentes de datos no son confiables o pueden ser alteradas.

Para atajar este problema se utilizan los llamados oráculos, sistemas que crean puentes de conexión entre los datos del mundo real y los datos proveídos al blockchain. Existen proyectos muy grandes que se encargan de que esto ocurra de la forma más segura posible, como por ejemplo ChainLink, que con un fuerte sistema de incentivos y penalizaciones a los proveedores de datos, permite que la información llegue a las cadenas de bloques de forma muy confiable.

Posibles fuentes de información para un contrato inteligente. oraculos

Ethereum, el gran precursor

No podemos hablar de smart contracts sin hablar de Ethereum.

Este proyecto es un buen ejemplo de blockchain que permite a cualquier desarrollador escribir sus propios contratos inteligentes en la red. Utiliza un lenguaje de programación relativamente sencillo llamado Solidity que se creó para este fin.

Sin embargo Ethereum no inventó los Smart Contracts, que fueron mencionados por primera vez en una publicación de Nick Szabo en 1995. Muchos creen que Nick es en realidad la persona detrás del pseudónimo de Satoshi Nakamoto, creador de Bitcoin.

De hecho, Bitcoin también permite ejecutar contratos inteligentes en un lenguaje llamado sCrypt. Sin embargo, en la red bitcoin los contratos son mucho menos flexibles que en Ethereum, hecho que se hizo a propósito por razones de seguridad.

Tras Ethereum, han aparecido diferentes plataformas que permiten la ejecución de smart contracts, como puede ser la apuesta de Binance, Binance Smart Chain, Cardano, TRON, Tezos o EOS.

Blockchains alternativas a Ethereum para ejecutar programas

Los casos de uso de los contratos inteligentes son muy amplios y pueden mejorar muchos sectores tal cual los conocemos hoy en día.

Facilitar pagos por internet, mejorar la trazabilidad y seguridad de cadenas de suministro, crear transparencia en plataformas de recaudación de fondos o donaciones, sistemas de votación, análisis y concesión de hipotecas, seguros y finanzas en general, en particular la nueva industria DeFi, así como las aplicaciones descentralizadas o dApps.

Smart Contracts ¿La solución a todos los problemas?

Viendo esto parece que los Smart Contracts son la panacea y esto tampoco es así, puesto que también tiene sus riesgos.

Bugs en el código

Uno de los problemas más difíciles de resolver son los bugs de código en los contratos. Como en cualquier otro tipo de programa, pueden aparecer problemas inesperados, que en el caso de los smart contracts, al ser inmutables, conllevan una problemática mayor en comparación con el desarrollo de software tradicional.

Uno de los casos más resonados, fue el hack de DAO, cuando se robó el equivalente a más de 60 millones de USD en Ether utilizando una vulnerabilidad de un Smart Contract. Esto causó grandes discusiones en la comunidad de ethereum, que terminó por bifurcar el proyecto con un “hard fork” en lo que hoy conocemos como Ethereum y Ethereum Classic. Tras este ataque la seguridad aumentó mucho, con múltiples revisiones y auditorías de los grandes proyectos, debido a la desconfianza generada.

Cambios en la blockchain

Un Smart Contract puede funcionar perfectamente de la forma esperada, sin embargo, cambios en la red blockchain subyacente, pueden resultar en comportamientos inesperados. Esto es algo bastante poco probable ya que también se intenta hacer todo con la máxima compatibilidad posible, pero no deja de ser algo a considerar. Un ejemplo, sería un upgrade de la blockchain de Ethereum.

Dificultades a la hora de traducir datos

Existen casos en los que es muy difícil traducir los datos del mundo real a la red blockchain, incluso para los ya mencionados servicios de oráculos. Por ejemplo, imaginemos un contrato inteligente para gestionar alquiler de una vivienda. Una vez termina este contrato, el inquilino ha causado ciertos daños a la vivienda, que hay que analizar y cuantificar. Como podemos imaginar, este escenario es muy difícil de cuantificar de forma justa y sin intervención humana para un Smart Contract.

Ventajas e Inconvenientes de los contratos inteligentes

Veamos ahora un breve resumen de los beneficios e inconvenientes de los Smart Contracts. El cuadro esquematizado sería algo como esto:

Ventajas e inconvenientes de los Smart Contracts

Ventajas:

  • Velocidad, eficiencia y precisión. Una vez se cumplen las condiciones, el contrato se ejecuta inmediatamente. Como estos smart contracts son digitales y están completamente automatizados, no es necesario realizar el papeleo administrativo de un contrato tradicional. También se eliminan posibles errores humanos como por ejemplo al rellenar documentos.
  • Credibilidad y transparencia. No hay un tercero involucrado en el proceso y los registros están encriptados y disponibilizados a los participantes del contrato. Esto aporta transparencia y evita que la información se pueda modificar con fines poco éticos o para un beneficio personal. A su vez esto aporta una fuerte herramienta contra el fraude.
  • Seguridad. Los contratos inteligentes viven dentro de una red blockchain. Los registros de transacciones están encriptados, lo que hace que sean muy difíciles de hackear. Dentro de una red blockchain, cada registro depende del anterior, lo que obligaría a modificar la cadena entera de bloques para modificar un solo registro.
  • Ahorro. Eliminando la necesidad de intermediarios para realizar la transacción, estamos consecuentemente reduciendo tiempo, tasas y posibles retrasos.
  • Inmutable. Una vez un contrato está en la blockchain, no se pueden alterar sus reglas, evitando ataques que cambien la lógica.
  • Distribuido. No existe un solo ordenador que controle el contrato, si no que cada nodo del blockchain tiene una réplica del mismo contrato con el mismo estado. 

Por la parte de las desventajas, tenemos las anteriormente mencionadas:

  • Bugs. 
  • Cambios de protocolo.
  • Dificultad para convertir información del mundo real.

Estas desventajas estoy convencido que tarde o temprano se acabarán reduciendo e incluso solucionando completamente.

Te dejo también un vídeo del canal donde explico este mismo artículo de forma más amena.

Y tú, ¿Crees que los Smart Contracts van a ir introduciéndose poco a poco en nuestras vidas? ¿Se te ocurren otros casos o industrias donde aplicar estos contratos? Déjamelo en los comentarios!