Los Contratos Inteligentes No Son “Trustless”, Ni Deberían Serlo by Federico Ast

in smartcontract •  6 years ago 

https://medium.com/la-disrupci%C3%B3n-del-blockchain/los-contratos-inteligentes-no-son-trustless-ni-deber%C3%ADan-serlo-e1c23e9d8c53

Recientemente, el divulgador de Bitcoin Jimmy Song escribió un artículo muy popular criticando a los contratos inteligentes. Si bien todas las críticas son útiles, es importante entender si Song está caracterizando correctamente a los smart contracts y si sus argumentos resisten a un examen minucioso.

En este ensayo, mostraré que Song utiliza una definición de smart contracts diferente de la tradicional y que, en última instancia, esta definición extrema lo lleva a no comprender la utilidad de los contratos inteligentes.

“Trustlessness”
Jimmy Song advierte que el propósito de los smart contracts es eliminar la necesidad de confianza. “Un smart contract que necesite confiar en una tercera parte”, dice, “remueve la característica fundamental de la trustlessness” del blockchain.

Sin embargo, la característica “trustless” absoluta no es un requisito de los smart contracts. Los contratos inteligentes buscan minimizar la cantidad de confianza necesaria, no eliminarla por completo (lo que sería, en la mayoría de los casos, una tarea imposible).

Una mirada rápida a las definiciones de smart contracts a lo largo de las décadas muestra que las terceras partes de confianza son comunes. En uno de sus famosos papers, Nick Szabo escribe:

“Con frecuencia, los contratos inteligentes involucran a terceras partes de confianza. Por ejemplo, un intermediario que esté involucrado en la ejecución y un árbitro que pueda ser invocado para resolver disputas surgidas de la ejecución (o falta de ella).”
No solo Szabo, el inventor de los smart contracts, nunca menciona el carácter “trustless”, sino que incluso señala la importancia de terceras partes de confianza en el funcionamiento de contratos inteligentes.

(…)

Si los smart contracts no son “trustless”, ¿qué son?
La inteligencia de los smart contracts no tiene nada que ver con la inteligencia artificial. Lo que hace inteligentes a estos contratos es el hecho de que puedan incorporarse en piezas de hardware y en software. Tampoco es requisito absoluto que corran en una blockchain. En su concepción original, la idea era que los smart contracts corrieran en servidores de confianza.

Para Szabo, los contratos inteligentes eran importantes por su capacidad de reducir radicalmente “costos de transacción mentales y computacionales”.

Los contratos tradicionales hacen que algunos acuerdos sean costosos, a veces de manera prohibitiva. Al reducir los costos de transacción, los contratos inteligentes pueden hacer que categorías enteras de interacciones humanas sean más sencillas de cumplir, a la vez que habilitan otras interacciones por primera vez. Este es el criterio por el que deberían juzgarse los smart contracts, no por el desafío imposible de alcanzar la “trustlessness”.

La definición de “trustless” surge de una mala comprensión de cómo funcionan las blockchains en relación con los smart contracts. Al reemplazar a un servidor centralizado, una blockchain puede ser una base resistente a la censura sobre la que correr programas. En otras palabras, gracias al blockchain, no necesitamos un servidor de confianza para correr un programa. En este sentido, es cierto que la tecnología de blockchain permite reducir la confianza necesaria para realizar transacciones.

Sin embargo, usar un blockchain es lento y costoso. Y no todos los smart contracts necesitan ese tipo de resistencia a la censura. En muchos casos, factores como la cantidad de transacciones por segundo pueden ser más importantes.

Crear y mantener un mecanismo es costoso. Por eso, el mecanismo elegido para la reducción de la confianza debe ser acorde a lo que está en juego. Una máquina expendedora es perfectamente adecuada para vender refrescos. Pero una máquina expendedora para vender diamantes tendría que diseñarse de manera muy diferente. Lo que Jimmy Song sugiere es el equivalente de decir que cualquier máquina expendedora “segura” debería tener las mismas medidas de seguridad que una máquina para vender diamantes. Pero esto no es realista.

Juicio Humano y Ambigüedad
Song argumenta que los contratos inteligentes, por definición, evitan la participación humana y no tienen “ningún espacio para la ambigüedad”. Sin embargo, el propósito de los contratos, tanto legales como inteligentes, no es eliminar por completo la ambigüedad. Sólo debe reducirla hasta el punto en que haya un conjunto de resultados predecibles.

Es verdad que el código por sí solo es insuficiente para el cumplimiento de muchos acuerdos. Por ejemplo, sería difícil que el código determine si un departamento cumple con una garantía implícita de “habitabilidad”. No muy caliente, no muy frío, no infectado de gusanos, etc.

Podemos imaginar un código que intente hacer esto. Un código que, de alguna forma, mida la cantidad de ratones capturados por día (esperemos que ninguno), que mida la temperatura, y que registre la calidad del aire y del agua. Sin embargo, este esfuerzo seguramente sea costoso y, al final del día, fútil, porque seguramente habrá alguna métrica importante que hayamos olvidado.

Este tipo de juicio sobre los eventos (como si una casa es o no habitable) es hecho de mejor manera por personas. Las máquinas son malas para tareas de reconocimiento de patrones, como demuestra el meme “perro o muffin”:

Entonces, ¿cómo reconciliamos la necesidad de flexibilidad en determinar qué eventos ocurrieron (ej. un departamento es habitable o no) con la necesidad de reducir la discreción y ambigüedad tanto como sea posible?

El profesor de derecho Oliver Goodenough ofrece una distinción entre dos tipos de ambigüedad que pueden ocurrir en un contrato: ambigüedad de regla y ambigüedad de evento.

La ambigüedad de evento tiene que ver con la tarea de reconocimiento. ¿Ocurrió este evento? ¿Es el departamento habitable?

La ambigüedad de regla, por otro lado, es la incertidumbre sobre qué reglas seguir. La ambigüedad de reglas es algo malo en un contrato. El propósito de los contratos es proyectar un orden previsible en un conjunto de interacciones futuras.

Como señala Goodenough, el término “habitabilidad” es un atajo para evitar tener que decidir exactamente qué significa. En otras palabras, no queremos ambigüedad. Queremos juicio humano para hacer las cosas más sencillas. La posibilidad de introducir un input basado en juicio humano es una característica importante de los smart contracts.

El Problema del Oráculo
Según Song, depender de un oráculo (una tercera parte que provea información sobre el mundo exterior al código de blockchain) hace que el smart contract se vuelva inútil. Nuevamente, la definición de Song es extrema y falla en respetar la definición histórica de smart contract, incluso la de los papers que introducen la idea.

Song dice:

“Al determinar lo que un smart contract ‘ve’ (controla el input del smart contract), el oráculo también controla lo que el smart contract hace como respuesta a esos inputs”.
Este fragmento confunde el reconocimiento del evento con el enforcement de las reglas. Supone que, como el oráculo tiene autoridad en un área, esto le da discreción completa sobre todo el contrato. Pero esto es falso.

Podemos imaginar un simple contrato para un marketplace online donde el comprador y el vendedor se pongan de acuerdo en contratar una tercera parte en caso de disputa. En la mayoría de los casos, el árbitro no tiene control sobre el contrato. La intervención del árbitro sólo es necesaria en caso de disputa entre comprador y vendedor. Esta intervención sólo es limitada a ciertos resultados específicos, como enviar los fondos de nuevo al comprador o pagar al vendedor.

Es imposible que el árbitro decida enviarse los fondos a sí mismo, o a cualquier otro que no sea el comprador o el vendedor. Es decir, el oráculo no tiene control total sobre el contrato.

Además, existen diferentes mecanismos que permiten evitar que la ejecución del contrato dependa de una tercera parte única. Si el contrato es por una apuesta sobre el resultado de un partido de NBA, el oráculo que provee el resultado podría elegirse al azar de entre un pool de miles de oráculos, reduciendo la probabilidad de soborno. O podría elegirse al azar cierta cantidad de partes, y el resultado solo usarse si todas las respuestas coinciden.

La ciencia económica puede proveer una gran cantidad de lecciones sobre la mejor forma de incentivar y estructurar los mecanismos de oráculo.

Smart Contracts y el Mundo Real
Por último, Jimmy Song sostiene que los contratos inteligentes no pueden trabajar con objetos del mundo real. Sostiene que sólo funcionan con instrumentos digitales al portador, es decir, activos digitales como el Bitcoin donde tener la posesión del activo implica ser su propietario.

Su argumento es que la transferencia de un activo del mundo real (por ejemplo, una casa) requiere de cierto reconocimiento por parte de los agentes del mundo real. Esto es cierto, pero así es como los títulos de propiedad ya funcionan actualmente — los registros de propiedad del gobierno dependen de que haya un consenso social acerca de su validez. Y en muchos lugares del mundo, el consenso social de quién es dueño de qué cosa es completamente diferente de los registros (en caso de que estos existan).

Los títulos de propiedad en el blockchain aún son un problema abierto. Pero no es imposible encontrar una solución. Usar un token en un blockchain permite una transferencia de propiedad segura en un smart contract, lo que ya representa una mejora en términos de costos de transacción sobre los contratos tradicionales.

De nuevo, la métrica que deberíamos usar para los smart contracts es si son (o pueden ser en el futuro) una mejora sobre el sistema actual. No deberíamos basarnos en la concepción poco realista y ahistórica de que los smart contracts deberían ser completamente “trustless” para que tengan utilidad.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you so much for sharing this amazing post with us!

Have you heard about Partiko? It’s a really convenient mobile app for Steem! With Partiko, you can easily see what’s going on in the Steem community, make posts and comments (no beneficiary cut forever!), and always stayed connected with your followers via push notification!

Partiko also rewards you with Partiko Points (3000 Partiko Point bonus when you first use it!), and Partiko Points can be converted into Steem tokens. You can earn Partiko Points easily by making posts and comments using Partiko.

We also noticed that your Steem Power is low. We will be very happy to delegate 15 Steem Power to you once you have made a post using Partiko! With more Steem Power, you can make more posts and comments, and earn more rewards!

If that all sounds interesting, you can:

Thank you so much for reading this message!

Congratulations @apezteguia! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!