La Verdad sobre los Contratos Inteligentes

Muchos creen que los contratos inteligentes van a revolucionar un gran número de industrias. Pero hay otros que dudan de su verdadero potencial…

Federico Ast
Astec
Published in
7 min readJul 22, 2018

--

Este artículo es una versión traducida y adaptada del original “The Truth about Smart Contracts” escrito por el inversor Jimmy Song.

Por Jimmy Song

Al igual que las palabras “blockchain”, “inteligencia artificial” y “nube”, el término “contrato inteligente” ha recibido mucha atención en los últimos tiempos. Después de todo, ¿qué puede ser mejor que confiar en una tecnología que nos brinda previsibilidad total sobre la ejecución de un acuerdo en lugar del sistema judicial?

Los smart contracts prometen ejecución automática de contratos, sin confiar en terceras partes y de manera imparcial. Remueven a intermediarios de la redacción y ejecución de contratos, eliminando, de esta forma, a los abogados.

Cuánto más eficientes serían las cosas si pudiésemos remover la necesidad de confiar en la otra parte, ¿verdad?

En este artículo, examinaré mitos y realidades de los contratos inteligentes, para entender cuál es verdaderamente su potencial.

¿Qué es un Smart Contract?

Un contrato tradicional es un acuerdo entre dos o más partes que las compromete a algo en el futuro. Alice podría acordar pagar a Bob algo de dinero a cambio del uso de su casa (alquiler). Charlie podría acordar reparar cualquier daño en el auto de Denise a cambio de un pago mensual (seguro de automóvil).

La innovación del smart contract es que las condiciones son evaluadas y ejecutadas por código de computadora, sin la necesidad de confiar en un intermediario. Si Alice acuerda pagar 500$ a Bob por una entrega de un sofá tres meses en el futuro (futuro de sofá), unas líneas de código pueden determinar si las condiciones son verdaderas (¿Le pagó Alice a Bob? ¿Ya pasaron tres meses?) y realizar la ejecución (entregar el dinero) sin que la otra parte tenga la posibilidad de retractarse.

La característica fundamental del smart contract es que su ejecución no requiere confianza. No se necesita confiar en una tercera parte para ejecutar sus condicions. En lugar de confiar en que la otra parte cumplirá con su palabra (o confiar en abogados y el sistema legal cuando algo sale mal) un smart contract ejecuta lo que se supone que debe pasar de manera inmediata y objetiva.

Los Smart Contracts son Bastante Tontos

La palabra “inteligente” parece implicar que estos contratos tienen algún tipo de inteligencia innata. Pero esto no es cierto. La parte inteligente de los smart contracts radica en no necesitar de la cooperación de la otra parte para ejecutar el acuerdo. En lugar de echar por la fuerza a los inquilinos que no pagan la renta, el contrato inteligente les cerraría automáticamente la puerta para que no puedan volver a entrar. La potencia de los smart contracts radica en su capacidad para ejecutar las consecuencias acordadas, no en la inteligencia del contrato.

Un contrato verdaderamente inteligente también tendría en cuenta las circunstancias atenuantes de un incumplimiento, entendería el espíritu del acuerdo y tomaría decisiones justas hasta bajo las circunstancias más difíciles. En otras palabras, un contrato verdaderamente inteligente actuaría como un buen juez.

Sin embargo, actualmente los contratos inteligentes no son para nada inteligentes. Están basados en reglas que siguen a rajatabla. Son incapaces de realizar consideraciones secundarias o de tener en cuenta el “espíritu” del acuerdo.

En otras palabras, hacer un contrato que no necesite de confianza en intermediarios significa que no puede haber espacio para la ambigüedad. Y esto nos lleva al siguiente problema.

Los Contratos Inteligentes son Difíciles

Existe la percepción de que los contratos inteligentes sólo existen en Ethereum. Esto es falso. Ya desde los comienzos, en 2009, el blockchain de Bitcoin tenía un lenguaje para escribir smart contracts llamado Script. De hecho, el concepto de contratos inteligentes se remonta a 1996, mucho antes de la creación del Bitcoin.

La diferencia entre el lenguaje de smart contracts de Bitcoin y el de Ethereum es que el de Ethereum es Turing completo. Solidity (el lenguaje de smart contracts de Ethereum) permite escribir contratos más complejos… al costo de volverlos más difíciles de analizar.

Contratos más complejos permiten escribir acuerdos sobre situaciones más complicadas. Pero genera el problema de que resulta más difícil garantizar que un contrato sea seguro. La seguridad significa controlar cada forma posible en que un contrato podría ser ejecutado y asegurarse de que el contrato efectivamente haga lo que el autor espera. Incluso en el mundo de los contratos tradicionales, mientras más complicado sea el contrato, más difícil se vuelve su ejecución y más lugar hay para la interpretación en una corte de justicia.

En un contexto Turing completo, la ejecución es extremadamente difícil de analizar. Garantizar la seguridad de un contrato inteligente es el equivalente de probar que un programa de computación no tenga errores. Esto es algo muy difícil, y casi todos los programas de computación tienen errores.

Escribir contratos tradicionales requiere años de estudio. Escribir contratos inteligentes requiere, por lo menos, el mismo nivel de preparación. Y, sin embargo, muchos son escritos por novatos que no son realmente conscientes de la importancia de la seguridad.

La solución de Bitcoin fue simplemente evitar tener un lenguaje completo de Turing. Esto hace que los contratos sean más sencillos de analizar ya que todos los posibles estados del programa son más fáciles de enumerar y examinar. La solución de Ethereum fue poner el peso sobre los creadores de los smart contracts. Son ellos los encargados de asegurarse de que el contrato haga lo que se espera de él.

(…)

Los Smart Contracts sólo Funcionan con Instrumentos Digitales

Una de las grandes promesas de los smart contracts es la siguiente. Alice puede probar que una casa le pertenece. Bob le envía dinero para comprar la casa y se transforma en el nuevo propietario. Todo esto ocurre sin que haya dudas sobre la propiedad, sin intermediarios, con ejecución inmediata, sin jueces ni burócratas. Suena fascinante, ¿cierto?

Pero aquí hay dos problemas.

Primero: La ejecución de un smart contract por un agente centralizado requiere confiar la ejecución en ese agente. Y esto elimina la gran ventaja de los smart contracts: la ejecución sin intermediarios de confianza. Para que los smart contracts puedan ejecutarse sin intermediación, se necesita una plataforma que sea realmente descentralizada. Y esto nos lleva al segundo problema.

Segundo: En un contexto descentralizado, los smart contracts sólo funcionan si existe una conexión entre el mundo digital y el mundo físico. Cuando la versión digital de la casa cambia de dueño, la versión física también debe cambiar de dueño. Se necesita que el mundo digital “sepa” sobre el mundo físico. Y esto es lo que se conoce como el “problema del oráculo”.

Cuando Alice transfiere la casa a Bob, el smart contract tiene que saber que ella efectivamente transfirió la casa. Hay diferentes maneras de hacer esto, pero todas tienen el mismo problema: debe haber cierta confianza en un tercero para verificar eventos en el mundo físico.

Por ejemplo, la casa podría ser representada por un token no fungible en Ethereum. Alice podría vender la casa con Bob a cambio de cierta cantidad de ether.

El problema, sin embargo, es que Bob tiene que creer que el token efectivamente representa la casa. Tiene que haber un oráculo que asegure que, tras la transferencia del token de la casa, ahora la casa le pertenece legalmente.

Incluso si el gobierno aceptara que el token realmente representa la casa, ¿qué pasa si el token es robado? ¿Ahora la casa pertenece al ladrón? ¿Qué pasa si el token se pierde? ¿La casa ya no puede venderse? ¿Debería el token poder emitirse de nuevo? ¿Por quién?

Todo esto pone de manifiesto un problema irresoluble a la hora de conectar activos digitales con activos (frutas, autos o casas) en un contexto descentralizado. Los activos físicos son regulados por la jurisdicción donde se encuentren. La posesión en el smart contract no significa necesariamente posesión en el mundo real. Esto significa que, para la ejecución, hay que confiar en alguien, además de el smart contract. Pero un contrato inteligente que tenga que confiar en una tercera parte para su ejecución, pierde la característica central de la no-confianza en intermediarios. Al fin y al cabo, sufre el mismo problema de confianza que los contratos tradicionales.

Otros activos digitales como los e-books, los registros médicos y las películas sufren del mismo problema. Los “derechos” a esos activos digitales son, al final del día, decididos por alguna autoridad. Y, para esto, es necesario confiar en un oráculo.

Los oráculos son versiones “tontas” de jueces. Así, en lugar de lograr una ejecución completamente realizada por máquinas, nos encontramos en una situación de seguir dependiendo del juicio humano. En otras palabras, al hacer un contrato “inteligente”, sólo lo hicimos más complejo de escribir y aún tenemos que confiar en alguien para su ejecución.

Los únicos activos que pueden funcionar sin un oráculo son los activos digitales al portador. Ambas partes de la transacción deben ser digitales. Es decir, la propiedad del token y la ejecución del acuerdo no puede depender de cosas que ocurran por fuera de la plataforma de contratos inteligentes. Sólo cuando un smart contract controla un instrumento digital al portador, puede funcionar sin intermediario y ser realmente inteligente.

Conclusión

Quisiera que los contratos inteligentes fuesen más útiles de lo que lo son realmente. Pero, lamentablemente, los contratos inteligentes son demasiado fáciles de escribir mal, muy difíciles de auditar y muy difíciles de usarse de manera que no requieran confiar en intermediarios. El único lugar donde los smart contracts realmente agregan un valor basado en no necesitar confiar en intermediarios, es con instrumentos digitales al portador en plataformas digitales como el Bitcoin.

Este artículo es una versión traducida y adaptada del original “The Truth about Smart Contracts” escrito por el inversor Jimmy Song.

--

--

Federico Ast
Astec
Editor for

Ph.D. Blockchain & Legaltech Entrepreneur. Singularity University Alumnus. Founder at Kleros. Building the Future of Law. @federicoast / federicoast.com