Introducción

Nick Szabo describió por primera vez los contratos inteligentes en la década de 1990. En aquel entonces, definió un contrato inteligente como una herramienta que formaliza y asegura las redes informáticas combinando protocolos con interfaces de usuario.

Szabo discutió el uso potencial de contratos inteligentes en diversos campos que involucran acuerdos contractuales, como sistemas de crédito, procesamiento de pagos y gestión de derechos de contenido.

En el mundo de las criptomonedas, podemos definir un contrato inteligente como una aplicación o programa que se ejecuta en una cadena de bloques. Por lo general, funcionan como un acuerdo digital que se aplica mediante un conjunto específico de reglas. Estas reglas están predefinidas por un código informático, que es replicado y ejecutado por todos los nodos de la red.

Los contratos inteligentes blockchain permiten la creación de protocolos sin confianza. Esto significa que dos partes pueden asumir compromisos a través de blockchain, sin tener que conocerse ni confiar entre sí. Pueden estar seguros de que si no se cumplen las condiciones, el contrato no se ejecutará. Aparte de eso, el uso de contratos inteligentes puede eliminar la necesidad de intermediarios, reduciendo significativamente los costos operativos.

Aunque el protocolo Bitcoin ha apoyado los contratos inteligentes durante muchos años, fueron popularizados por el creador y cofundador de Ethereum, Vitalik Buterin. Sin embargo, vale la pena señalar que cada blockchain puede presentar un método diferente para implementar contratos inteligentes.

Este artículo se centrará en los contratos inteligentes que se ejecutan en la máquina virtual Ethereum (EVM), que es una parte esencial de la cadena de bloques Ethereum.


¿Cómo trabajan?

En términos simples, un contrato inteligente funciona como un programa determinista. Ejecuta una tarea particular cuando y si se cumplen ciertas condiciones. Como tal, un sistema de contrato inteligente a menudo sigue declaraciones de "si... entonces...". Pero a pesar de la terminología popular, los contratos inteligentes no son contratos legales ni inteligentes. Son solo un fragmento de código que se ejecuta en un sistema distribuido (blockchain).

En la red Ethereum, los contratos inteligentes son responsables de ejecutar y gestionar las operaciones de blockchain que tienen lugar cuando los usuarios (direcciones) interactúan entre sí. Cualquier dirección que no sea un contrato inteligente se denomina cuenta de propiedad externa (EOA). Por lo tanto, los contratos inteligentes están controlados por código informático y los EOA están controlados por los usuarios.

Básicamente, los contratos inteligentes de Ethereum están formados por un código de contrato y dos claves públicas. La primera clave pública es la proporcionada por el creador del contrato. La otra clave representa el contrato en sí, actuando como un identificador digital único para cada contrato inteligente.

El despliegue de cualquier contrato inteligente se realiza a través de una transacción blockchain, y solo pueden activarse cuando lo llama una EOA (u otros contratos inteligentes). Sin embargo, el primer desencadenante siempre es causado por un EOA (usuario).


Características clave

Un contrato inteligente de Ethereum suele presentar las siguientes características:

Repartido. Los contratos inteligentes se replican y distribuyen en todos los nodos de la red Ethereum. Esta es una de las principales diferencias con otras soluciones que se basan en servidores centralizados.

Determinista. Los contratos inteligentes solo realizan las acciones para las que fueron diseñados, siempre que se cumplan los requisitos. Además, el resultado siempre será el mismo, sin importar quién los ejecute.

Autónomo. Los contratos inteligentes pueden automatizar todo tipo de tareas, funcionando como un programa autoejecutable. Sin embargo, en la mayoría de los casos, si no se activa un contrato inteligente, permanecerá "inactivo" y no realizará ninguna acción.

Inmutable. Los contratos inteligentes no se pueden cambiar una vez implementados. Sólo se pueden "eliminar" si previamente se implementó una función particular. Por tanto, podemos decir que los contratos inteligentes pueden proporcionar un código a prueba de manipulaciones.

Personalizable. Antes de su implementación, los contratos inteligentes se pueden codificar de muchas maneras diferentes. Por lo tanto, se pueden utilizar para crear muchos tipos de aplicaciones descentralizadas (DApps). Esto está relacionado con el hecho de que Ethereum es una cadena de bloques completa de Turing.

Sin esperanzas. Dos o más partes pueden interactuar a través de contratos inteligentes sin conocerse ni confiar entre sí. Además, la tecnología blockchain garantiza que los datos sean precisos.

Transparente. Dado que los contratos inteligentes se basan en una cadena de bloques pública, su código fuente no sólo es inmutable sino también visible para cualquiera.


¿Puedo cambiar o eliminar un contrato inteligente?

Es imposible agregar nuevas funciones a un contrato inteligente de Ethereum después de su implementación. Sin embargo, si su creador incluye una función llamada SELFDESTRUCT en el código, podrá "eliminar" el contrato inteligente en el futuro y reemplazarlo por uno nuevo. Por el contrario, si la función no está incluida en el código de antemano, no podrán eliminarla.

En particular, los llamados contratos inteligentes actualizables permiten a los desarrolladores tener más flexibilidad sobre la inmutabilidad de los contratos. Hay muchas formas de crear contratos inteligentes actualizables, con distintos grados de complejidad.

Tomando un ejemplo simplificado, imaginemos que un contrato inteligente se divide en varios contratos más pequeños. Algunos de ellos están diseñados para ser inmutables, mientras que otros tienen habilitada la función "eliminar". Esto significa que parte del código (contratos inteligentes) se puede eliminar y reemplazar, mientras que otras funcionalidades permanecen intactas.


Ventajas y casos de uso

Como código programable, los contratos inteligentes son altamente personalizables y pueden diseñarse de muchas maneras diferentes, ofreciendo muchos tipos de servicios y soluciones.

Como programas descentralizados y autoejecutables, los contratos inteligentes pueden proporcionar una mayor transparencia y reducir los costos operativos. Dependiendo de la implementación, también pueden aumentar la eficiencia y reducir los gastos burocráticos.

Los contratos inteligentes son particularmente útiles en situaciones que involucran la transferencia o intercambio de fondos entre dos o más partes.

En otras palabras, los contratos inteligentes pueden diseñarse para una amplia variedad de casos de uso. Algunos ejemplos incluyen la creación de activos tokenizados, sistemas de votación, billeteras criptográficas, intercambios descentralizados, juegos y aplicaciones móviles. También pueden implementarse junto con otras soluciones blockchain que abordan los campos de la atención médica, la caridad, la cadena de suministro, la gobernanza y las finanzas descentralizadas (DeFi).


ERC-20

Los tokens emitidos en la cadena de bloques Ethereum siguen un estándar conocido como ERC-20. El estándar describe las funciones principales de todos los tokens basados ​​en Ethereum. Como tal, estos activos digitales a menudo se denominan tokens ERC-20 y representan una gran parte de las criptomonedas existentes.

Muchas empresas y nuevas empresas de blockchain implementaron contratos inteligentes para emitir sus tokens digitales en la red Ethereum. Después de la emisión, la mayoría de estas empresas distribuyeron sus tokens ERC-20 a través de eventos de Oferta Inicial de Monedas (ICO). En la mayoría de los casos, el uso de contratos inteligentes permitió el intercambio de fondos y la distribución de tokens de forma eficiente y sin confianza.


Limitaciones

Los contratos inteligentes están hechos de código informático escrito por humanos. Esto conlleva numerosos riesgos ya que el código está sujeto a vulnerabilidades y errores. Idealmente, deberían ser escritos e implementados por programadores experimentados, especialmente cuando involucran información confidencial o grandes cantidades de dinero.

Aparte de eso, algunos argumentan que los sistemas centralizados pueden proporcionar la mayoría de las soluciones y funcionalidades que ofrecen los contratos inteligentes. La principal diferencia es que los contratos inteligentes se ejecutan en una red P2P distribuida, en lugar de en un servidor centralizado. Y debido a que se basan en un sistema blockchain, tienden a ser inmutables o muy difíciles de cambiar.

Ser inmutable puede ser fantástico en algunas situaciones, pero muy malo en otras. Por ejemplo, cuando una Organización Autónoma Descentralizada (DAO) llamada "The DAO" fue pirateada en 2016, se robaron millones de ether (ETH) debido a fallas en su código de contrato inteligente.

Dado que su contrato inteligente era inmutable, los desarrolladores no pudieron corregir el código. Esto eventualmente condujo a una bifurcación dura, dando origen a una segunda cadena Ethereum. En pocas palabras, una cadena "revirtió" el hack y devolvió los fondos a los propietarios legítimos (esto es parte de la cadena de bloques Ethereum actual). La otra cadena decidió no interferir con el hack, afirmando que las cosas que suceden en una cadena de bloques nunca deben cambiarse (esta cadena ahora se llama Ethereum Classic).

Es importante señalar que el problema no provino de la cadena de bloques Ethereum. En cambio, fue causado por una implementación defectuosa de un contrato inteligente.

Otra limitación de los contratos inteligentes está relacionada con su estatus legal incierto. No sólo porque se encuentra en una zona gris en la mayoría de los países, sino también porque los contratos inteligentes no se adaptan al marco legal actual.

Por ejemplo, muchos contratos exigen que ambas partes estén debidamente identificadas y sean mayores de 18 años. El seudónimo que proporciona la tecnología blockchain, combinado con la falta de intermediarios, puede amenazar esos requisitos. Si bien existen posibles soluciones para esto, la aplicabilidad legal de los contratos inteligentes es un verdadero desafío, especialmente cuando se trata de redes distribuidas sin fronteras.


Crítica

Algunos entusiastas de blockchain ven los contratos inteligentes como una solución que pronto reemplazará y automatizará gran parte de nuestros sistemas comerciales y burocráticos. Si bien esto es una posible realidad, probablemente esté lejos de convertirse en la norma.

Los contratos inteligentes son sin duda una tecnología interesante. Pero ser distribuidos, deterministas, transparentes y algo inmutables puede hacerlos menos atractivos en algunas situaciones.

Básicamente, las críticas se basan en el hecho de que los contratos inteligentes no son una solución adecuada para muchos problemas del mundo real. De hecho, a algunas organizaciones les conviene más utilizar alternativas convencionales basadas en servidores.

En comparación con los contratos inteligentes, los servidores centralizados son más fáciles y económicos de mantener y tienden a presentar una mayor eficiencia en términos de velocidad y comunicación entre redes (interoperabilidad).


Pensamientos finales

No hay duda de que los contratos inteligentes causaron un gran impacto en el mundo de las criptomonedas y ciertamente revolucionaron el espacio blockchain. Si bien es posible que los usuarios finales no interactúen directamente con los contratos inteligentes, es probable que estos impulsen una amplia gama de aplicaciones en el futuro, desde servicios financieros hasta la gestión de la cadena de suministro.

Juntos, los contratos inteligentes y la cadena de bloques tienen el potencial de alterar casi todos los ámbitos de nuestra sociedad. Pero sólo el tiempo dirá si estas tecnologías innovadoras lograrán superar las numerosas barreras que impiden su adopción a gran escala.