Smart Contracts

DefiantApp
6 min readNov 16, 2022

Por @sriosmaderna

Los contratos inteligentes son, sin dudas, una de las novedades tecnológicas más fascinantes de los últimos tiempos. Sin embargo, muchas veces se presentan como una cuestión compleja de entender. A lo largo de este artículo, vamos a intentar entender los conceptos más básicos de los smart contracts y su funcionamiento.

¿Qué es un smart contract o contrato inteligente?

Existen muchas definiciones sobre lo que es un smart contract. En definitiva, podemos decir que es un programa informático que se ejecuta, de manera inmutable, una vez producidas las condiciones previamente establecidas en el mismo. El objetivo principal de estos “nuevos contratos” es permitir que dos partes anónimas puedan transaccionar entre sí, sin que exista la necesidad de contar con un intermediario y sin que la confianza en la otra parte sea un elemento fundamental a la hora de decidir su celebración.
¿Cómo se ve un smart contract? Podés encontrar un ejemplo acá.
Si bien parece una idea novedosa, la realidad es que el concepto de smart contract surge en el año 1995, siendo ideada por el científico Nick Szabo. Szabo planteaba la idea del smart contract utilizando como ejemplo el de una máquina expendedora: el cliente pone el dinero en la máquina, selecciona lo que quiere adquirir y la máquina automáticamente le expende lo solicitado y abonado.

Con el posterior avance de la tecnología, la idea de Szabo pasó de ser justamente eso, una idea, a convertirse en una realidad. Primero, con el surgimiento de Bitcoin en el año 2009, y luego, con el nacimiento de Ethereum en 2015, la primera blockchain capaz de soportar la ejecución de contratos inteligentes.

Pero entonces, ¿los smart contracts no son contratos?

Hay una frase que dice “los contratos inteligentes no son contratos ni tampoco son inteligentes

Por un lado, los smart contracts no entran dentro de la definición tradicional de contrato. Por ejemplo, la RAE define al contrato como un “pacto o convenio, oral o escrito, entre partes que se obligan sobre materia o cosa determinada, y a cuyo cumplimiento pueden ser compelidas”. Si bien existen ciertos tipos de smart contracts que podrían llegar a interpretarse como contratos en tal sentido (como los llamados “smart legal contracts”) el consenso mayoritario es que no encuadran dentro de lo que generalmente conocemos con ese nombre.

Por otro lado, los smart contracts no son “inteligentes”. Esto significa que (al menos por el momento) no hay ningún elemento de inteligencia artificial dentro de los smart contracts, no razonan ni toman decisiones, sino que se limitan únicamente a ejecutar sus términos una vez que se cumplen las condiciones preestablecidas para ello.

Aquí también entra en juego el concepto de “oráculos”. La realidad es que los smart contracts, por sí mismos, únicamente pueden obtener información de la blockchain. Como podrán notar, esto haría que el uso de los contratos inteligentes fuera bastante limitado. Una buena analogía para ilustrar esta situación es decir que un smart contract sin oráculos es como una computadora sin internet.

Sin embargo, gracias a los oráculos, los smart contracts pueden hacerse de información off chain para lograr así el cumplimiento de las condiciones preestablecidas en el mismo. Esto hace que el espectro de potenciales casos de uso para los smarts contracts sea prácticamente infinito. Pensemos, por ejemplo, en la posibilidad de poder conectar smart contracts con información climática, resultados deportivos, dispositivos de Internet de las Cosas, y mucho más.

¿Cómo funcionan?

Funcionan con una lógica if-then, es decir que “si ocurre X, entonces pasa Y”. Expliquemos esto con un ejemplo:

Supongamos que dos amigos quieren apostar quién será la selección campeona del Mundial. Juan piensa que será Argentina y Martina que la campeona será la selección de Francia.

Para asegurarse el cumplimiento de la apuesta, programan un smart contract que, en caso de ser campeón Argentina o Francia, transferirá automáticamente los fondos a la wallet del ganador.

Finalmente, Argentina resulta ganador del Mundial, por lo que, cumplida una de sus condiciones preprogramadas, el contrato transfiere el premio de la apuesta a la wallet de Juan.

Por otro lado, nos surge otro interrogante: cómo es que los smart contracts se ejecutan. En el caso de Ethereum (que siempre es tomado como referencia porque, como se mencionó más arriba, fue la primera blockchain en hacer realidad los contratos inteligentes) los smart contracts son ejecutados por la Ethereum Virtual Machine (EVM). En pocas palabras, podemos definir a la EVM como una gran computadora virtual, mundial, y descentralizada que hace posible la ejecución de contratos inteligentes y, con ello, la existencia de gran parte del ecosistema cripto.

Recordemos que los contratos inteligentes no están escritos en lenguaje natural (como el Español o el Inglés) sino en lenguaje de programación. En el caso de Ethereum (y de varias blockchains más) los contratos se escriben en Solidity, que es el lenguaje desarrollado específicamente para smart contracts.

¿Cuáles son sus características?

Son inmutables e irreversibles, lo cual quiere decir que, por lo general, no pueden ser modificados una vez que se encuentran en la blockchain. Esta es una de sus principales características pero también se presenta como un arma de doble filo. ¿Por qué? Por un lado, el hecho de que sean irreversibles garantiza la integridad del contrato (es decir, que no pueda ser modificado, por ejemplo, con fines maliciosos), también implica que si el contrato tiene algún defecto o vulnerabilidad, la misma no podrá ser corregida, exponiéndose a eventuales ataques. Es aquí donde podemos apreciar la importancia de las auditorías de smart contracts. Proyectos como OpenZeppelin se encargan de realizar este tipo de auditorías, que, básicamente, consisten en revisar el código de un smart contract y encontrar posibles vulnerabilidades o errores, de manera de que las mismas puedan ser corregidas antes de que ese contrato se encuentre en la blockchain.

Son automáticos, lo cual permite una agilidad e inmediatez en la ejecución de las condiciones que no encuentra rival en el mundo tradicional. Esta característica, además, es lo que permite que no sea necesario de ningún intermediario para la ejecución del contrato una vez que se cumplen los requisitos necesarios para ello. No es necesario que nadie “obligue” al smart contract a ejecutarse, como sí podría ocurrir, por ejemplo, en el caso de incumplimiento de una de las partes de un contrato tradicional.

Son de código abierto. En concordancia con uno de los principios troncales del ecosistema cripto, esto es, la filosofía open source, el código de los smart contracts se encuentra disponible para que cualquiera que así lo desee lo pueda revisar. Similar a lo que se mencionó al hablar de la inmutabilidad de los contratos, esta característica permite que cualquiera, incluso aquel con intereses maliciosos (como un hacker) pueda estudiar y encontrar algún error en el código y explotarlo. Es por esto que muchos proyectos instauran programas de bug bounty, los cuales, justamente, incentivan a que los usuarios busquen y encuentren vulnerabilidades y las denuncien al proyecto, a cambio de un pago.

Son descentralizados, sin que ningún tipo de autoridad central, incluso sus propios creadores, puedan controlarlos de manera alguna. Esto se vio claramente en el caso de Tornado Cash, en el cual el Departamento del Tesoro de Estados Unidos decidió sancionar al contrato inteligente del mixer mencionado, bajo el argumento de que era utilizado por criminales para lavar dinero proveniente de ilícitos. Sin embargo, al estar dicho contrato en la blockchain y ser descentralizado, nada puede hacer el Gobierno de EEUU o incluso los creadores del smart contract para “apagarlo” y que deje de funcionar. Puede impedirse el uso del contrato a través del frontend, pero nada impide que se interactúe directamente con el contrato de Tornado Cash.

En conclusión, los smart contracts son el corazón de las DApps, y, con ello, de gran parte del ecosistema cripto. No podemos imaginar un mundo web3 sin la existencia de smart contracts. Lo que sí podemos imaginar es que, en el futuro que nos depara, los contratos inteligentes jugarán un papel fundamental, no solo en lo referido a cripto, sino a la vida cotidiana en general.

--

--

DefiantApp

El hogar de la #GeneraciónD 📲 Crypto self-custodial wallet 🌐 Bitcoin, Ethereum, BSC, Polygon, RSK, Avalanche, Fantom, Celo y 🖼 NFTs