Smart Contracts: introduccion

octubre 28, 2019 VICTOR HUGO LAZARTE 0 Comments



Con cada vez más frecuencia escuchamos ese concepto: contratos inteligentes (smart contracts). Son contratos que tienen la capacidad de cumplirse de forma automática una vez que las partes han acordado los términos. Pero seguramente tienes en mente el clásico papel firmado, así que, ¿cómo es posible que un contrato se pueda hacer cumplir a sí mismo? Pues bien, lo cierto es que los contratos inteligentes son un poco distintos a los contratos en papel.
Ambos son acuerdos en los que dos o más involucrados se comprometen a cumplir una serie de condiciones, y sus elementos fundamentales son los mismos: el consentimiento voluntario de todas las partes, el objeto del contrato (bien o servicio), y una causa justa, verdadera y lícita. Ahora bien, ambos difieren en tres factores: el modo de escritura, su implicación legal y el modo de cumplimiento.
Los contratos en papel son escritos en lenguaje natural. Es decir, basta con redactar las condiciones y términos en el idioma implicado. Si todas las partes están de acuerdo, firman para asegurar su promesa, lo cual nos lleva a su implicación legal: un contrato en papel tiene costes. Según la jurisdicción donde se encuentren los involucrados, o bajo la que quieran llevar a cabo el contrato, es muy probable que tengan que cumplir con ciertos requisitos, como recurrir a una notaría. Por otro lado, su modo de cumplimiento está sujeto a la interpretación de las partes, que puede llegar a favorecer a una más que a la otra.
Los contratos inteligentes, en cambio, son programas informáticos. No están escritos en lenguaje natural, sino en código virtual. Son un tipo de software que se programa, como cualquier otro software, para llevar a cabo una tarea o serie de tareas determinadas de acuerdo a las instrucciones previamente introducidas. Su cumplimiento, por tanto, no está sujeto a la interpretación de ninguna de las partes: si el evento A sucede, entonces la consecuencia B se pondrá en marcha de forma automática. Su implicación legal ha caído —como toda la tecnología relacionada a Bitcoin— en una zona gris. No se requiere de ningún intermediario de confianza (como una notaría), pues este papel lo adopta el código informático, que asegurará sin dudas el cumplimiento de las condiciones. Por tanto, se reducen tiempo y costes significativos.

Smart Contracts, IoT y blockchain

Aquí podemos detenernos un momento. Los contratos inteligentes parecen ser un gran concepto, pero, ¿cómo es posible que un software se conecte con activos reales? Digamos que quiero comprar una casa y para ello necesito un contrato. Un notario puede asegurarme que el vendedor me dará el título de propiedad una vez que pague lo acordado, pero, ¿cómo puede asegurarme eso un software? Además, el manejo de dinero tiene fuertes regulaciones. ¿Estas no afectan de igual modo a los contratos inteligentes? ¿Y qué hay de la manipulación informática? ¿No puede alguna de las partes manipular a su beneficio la computadora donde el contrato fue escrito o inclusive el código de su software?
Todos estos problemas fueron con los que se topó su creador original, Nick Zsabo (sospechoso, por cierto, de ser Satoshi Nakamoto), cuando propuso por primera vez la idea a principios de los 90. La tecnología de ese momento no podía resolver estos inconvenientes, y por ello la idea se quedó a la espera de un futuro mejor.
Afortunadamente, ese futuro mejor, con la consecuente tecnología que permite a los contratos inteligentes aplicarse, ya está llegando a todas partes del mundo: se trata de la blockchain o contabilidad distribuida y el Internet de las Cosas (IoT).
Repasemos los problemas a resolver en el siglo pasado: la manipulación informática, las limitaciones regulatorias para el manejo de dinero y la conexión el software con los activos reales. Pues bien, sólo la blockchain puede resolver casi por completo estos tres problemas.
Al tratarse de una base de datos cifrada e inmutable, mantenida no sólo por un ordenador sino por cientos o incluso miles, donde puede registrarse literalmente cualquier cosa —incluso un programa informático como los contratos inteligentes—, la manipulación informática queda descartada. En cuanto al manejo de dinero, hay que decir que la blockchain ha permitido el surgimiento de las criptomonedas, un tipo de activo digital y descentralizado, es decir, no ligado a ningún gobierno o entidad, disponible para cualquiera en cualquier parte del mundo sin regulaciones territoriales añadidas; cosa que facilita bastante la transferencia de dinero. Por último está la conexión con activos reales. Y si bien en la blockchain pueden registrarse documentos, bonos, acciones, aplicaciones y cualquier otro tipo de activo digital, aún nos queda el problema de conexión a la casa (por ejemplo). ¿Cómo el contrato inteligente funcionará para la compra de una casa?
Es ahí donde entra el Internet de las Cosas. Según un informe de IBM, para el 2020 en todo el mundo habrán más de 34 billones de dispositivos conectados a Internet, y al menos dos tercios de ellos no serán computadores ni teléfonos móviles. Serán objetos cotidianos: desde una lavadora y un bombillo hasta una estufa o una cerradura. Y por tanto, al estar conectados a Internet, podrán controlarse de forma digital.

Funcionamiento

Volvamos así al ejemplo de la compra de la casa. Digamos que María quiere comprar la casa de Pedro a crédito, pagando cierta cantidad de cuotas mensuales. Entonces Pedro y ella utilizan alguna plataforma de contratos inteligentes (como Ethereum o SmartContract) para programar el contrato con los términos establecidos. Entre ellos, que María pagará X cantidad antes de cierta fecha cada mes, o de lo contrario la cerradura de la puerta de la casa se bloqueará, y que Pedro cederá irrevocablemente el título de propiedad registrado en la cadena de bloques a María cuando la cantidad acordada se alcance. Entonces el contrato inteligente actuará, sin necesidad de intermediarios, y llevará a cabo justamente esas instrucciones, al pie de la letra, sin que María ni Pedro puedan intervenir.
Ahora bien, pongamos otro ejemplo donde se requiere más información externa, como una apuesta deportiva. Digamos que María quiere apostar X bitcoin al equipo A, y Pedro quiere apostar la misma cantidad al equipo B. Depositan los fondos en un contrato inteligente para asegurarse de que, tras el resultado, el ganador realmente se quede con ellos. Pero, ¿quién le dice al contrato cuál de los equipos ganó?
La respuesta es el oráculo (oracle). Estas son herramientas informáticas que permiten actualizar el estado de los contratos inteligentes con información del exterior, como los precios de las divisas, la cotización de las acciones o si ganó el equipo A o el B. Aunque, por supuesto, la fuente de ese oráculo sigue siendo una tercera parte, un intermediario fuera de la blockchain y fuera del contrato y por tanto sujeto a la confianza. Este es un problema a resolver, pues precisamente lo que se quiere eliminar con los smarts contracts y la blockchain es la necesidad de confianza. Sin embargo, ya existen opciones para ello: algunos proyectos, como Oraclize, comparan la información de todas las fuentes que se les indique para determinar su validez.
Pongamos un último ejemplo. Imaginemos que Pedro y María quieren ahorrar mediante pagos mensuales cierta cantidad en un plazo determinado y gastarla en un producto o servicio común. El contrato entonces bloqueará esos fondos hasta alcanzar esa cantidad, pero en ese momento, ¿qué asegura que María o Pedro no la retiren por su cuenta? Esta vez la respuesta no es el oráculo, sino la función multifirma. Esta permite configurar el contrato para que todas las partes tengan el deber de aprobar una transacción. De este modo, una sola de ellas no puede disponer de los fondos.
En conclusión a esto, así funciona un contrato inteligente: las partes configuran los términos del contrato, este se almacena en una dirección específica de la blockchain, el evento contemplado en él ocurre (una transacción o información recibida) y la consecuencia anteriormente establecida se lleva a cabo. BBVA lo explica con un diagrama:

Ventajas y desventajas

Las ventajas son obvias, y pueden reducirse a tres palabras: autonomía, seguridad y confianza. Utilizando contratos inteligentes ya no resulta necesario recurrir a un tercero —como un abogado o un notario—, que además de estar propenso a errores, ocasiona gastos significativos. La blockchain es capaz de resguardar la información en una red cifrada que puede consultarse desde cualquier lugar del mundo, por lo que la velocidad y seguridad saltan a la vista.
Por otro lado, y como todo en realidad, este tipo de programas también tienen ciertas desventajas, o más bien obstáculos que superar. El primero consiste en las tecnologías de las que se vale: IoT y blockchain. Mientras que el IoT puede permitir una verdadera vinculación con activos reales, lo cierto es que aún le queda un largo camino en seguridad. Los dispositivos IoT son fácilmente hackeables, algo que grandes empresas ya se han unido para solventar. La blockchain, por su parte, es más que segura, pero es inmutable. Una vez acordados los términos, no se pueden cambiar después, algo ciertamente desventajoso para un contrato: María puede tener algún inconveniente algún mes, y entonces se quedaría fuera de la casa sin que Pedro pudiera evitarlo. Para esto también se están desarrollando soluciones: Accenture, por ejemplo, está construyendo una blockchain editable.
Los expertos en programación de contratos inteligentes tampoco abundan como para promover una adopción masiva, e incluso cabe mencionar que en ocasiones ellos se equivocan. Estos programas son delicados, y si se queda tan sólo un error en su programación (bug) es posible que un tercero con malas intenciones robe los fondos almacenados en el contrato. Ya sucedió con DAO el año pasado, pero dado que esta es una tecnología nueva, tales incidentes pueden resultar comunes al inicio.

Con cada vez más frecuencia escuchamos ese concepto: contratos inteligentes  (smart contracts) . Son  contratos que tienen la capacid...