Introducción

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

Szabo discutió el uso potencial de contratos inteligentes en diversas áreas 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 blockchain. En general, operan 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 de Blockchain permiten crear 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á. Además, el uso de contratos inteligentes puede eliminar la necesidad de intermediarios, reduciendo significativamente los costos operativos.

Aunque el protocolo Bitcoin ha respaldado los contratos inteligentes durante muchos años, el creador y cofundador de Ethereum, Vitalik Buterin, los hizo populares. Sin embargo, cabe señalar que cada blockchain puede presentar un método diferente para implementar contratos inteligentes.

Este artículo se centra 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.


Entonces, ¿cómo funcionan?

En términos simples, un contrato inteligente funciona como un programa determinista. Ejecuta una tarea particular cuando y si se cumplen ciertas condiciones. Por lo tanto, un sistema de contrato inteligente a menudo sigue funciones "si... entonces...". Pero a pesar de la terminología, los contratos inteligentes no tienen valor legal y no son inteligentes. Es simplemente un código que se ejecuta en un sistema distribuido (una cadena de bloques).

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 constan de 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 un contrato inteligente se realiza mediante una transacción blockchain. Solo se puede activar cuando lo llama una EOA (u otros contratos inteligentes). Sin embargo, el primer desencadenante siempre es causado por un EOA (usuario).


Características principales

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

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

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

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 tomará ninguna medida.

Inmutable. Los contratos inteligentes no se pueden modificar después de su implementación. Sólo se pueden “eliminar” si previamente se ha implementado una función particular. Entonces, 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 diferentes maneras. Por lo tanto, se pueden utilizar para crear muchos tipos de aplicaciones descentralizadas (DApps). Esto se debe a que Ethereum es una cadena de bloques completa de Turing.

Sin confianza. 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 la precisión de los datos.

Transparencia. Como 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 todos.


¿Puedo modificar 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 otro lado, si la función no está incluida en el código de antemano, es imposible eliminarla.

Sorprendentemente, los contratos inteligentes escalables permiten a los desarrolladores tener más flexibilidad en cuanto a la inmutabilidad de los contratos. Hay muchas formas de crear contratos inteligentes escalables, con distintos grados de complejidad.

En un ejemplo simplificado, imagine que un contrato inteligente se divide en varios contratos 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 funciones permanecen intactas.


Beneficios y casos de uso

Al ser código programable, los contratos inteligentes son altamente personalizables y pueden diseñarse de diferentes maneras, 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 su implementación, también pueden aumentar la eficiencia y reducir los gastos administrativos.

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. Los ejemplos incluyen la creación de activos tokenizados, sistemas de votación, billeteras de criptomonedas, intercambios descentralizados, juegos y aplicaciones móviles. También se pueden implementar con otras soluciones blockchain que abordan 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 básicas de todos los tokens basados ​​en Ethereum. Por lo tanto, 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 han implementado 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 ofertas iniciales de monedas (ICO). En la mayoría de los casos, el uso de contratos inteligentes ha hecho posible intercambiar fondos y distribuir tokens de forma fiable y eficiente.


Límites

Los contratos inteligentes se componen de código informático escrito por humanos. Esto presenta muchos 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 sumas de dinero.

Además, algunos sostienen 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 firme puede ser excelente en algunas situaciones, pero muy malo en otras. Por ejemplo, cuando una organización autónoma descentralizada (DAO) llamada “DAO” fue pirateada en 2016, se robaron millones de ether (ETH) debido a fallas en su código de contratos inteligentes.

Dado que su contrato inteligente era inmutable, los desarrolladores no pudieron corregir el código. En última instancia, esto condujo a una bifurcación dura, dando lugar a una segunda cadena de Ethereum. En pocas palabras, una cadena "deshace" el hack y devuelve 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 deberían cambiarse (esta cadena ahora se llama Ethereum Classic).

Es importante señalar que el problema no proviene de la cadena de bloques Ethereum. En cambio, fue causado por una mala implementación de contratos inteligentes.

Otra limitación de los contratos inteligentes está relacionada con su estatus legal incierto. No sólo porque es una zona gris en la mayoría de los países, sino también porque los contratos inteligentes no son adecuados para el 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, sumado a la falta de intermediarios, puede amenazar estos requisitos. Aunque existen posibles soluciones a este problema, la exigibilidad legal de los contratos inteligentes es un verdadero desafío, especialmente cuando se trata de redes distribuidas sin fronteras.


Críticas

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

Los contratos inteligentes son sin duda una tecnología interesante. Pero el hecho de que sean distribuidos, deterministas, transparentes y algo inmutables puede hacerlos menos atractivos en determinadas situaciones.

La crítica se basa esencialmente en el hecho de que los contratos inteligentes no constituyen una solución adecuada para muchos problemas del mundo real. De hecho, algunas organizaciones se benefician del uso de soluciones tradicionales 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 tener una mayor eficiencia en términos de velocidad y comunicación entre redes (interoperabilidad).


Para concluir

No hay duda de que los contratos inteligentes han tenido un impacto significativo en el mundo de las criptomonedas y ciertamente han revolucionado el espacio blockchain. Aunque los usuarios finales no interactúan directamente con los contratos inteligentes, es probable que impulsen una amplia gama de aplicaciones en el futuro, desde servicios financieros hasta 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 revolucionarias superarán los numerosos obstáculos para su adopción generalizada.