Introducción

Los contratos inteligentes fueron descritos por primera vez en la década de 1990 por Nick Szabo. Definió un contrato inteligente como una herramienta que formaliza y asegura las redes informáticas combinando protocolos con una interfaz de usuario.

Szabo ha analizado el uso de contratos inteligentes en diversas áreas, como acuerdos contractuales, sistemas de crédito, procesamiento de pagos y propiedad de contenidos.

En el mundo de las criptomonedas, un contrato inteligente es una aplicación que se ejecuta en blockchain. Actúa como un acuerdo digital respaldado por un conjunto de reglas. Estas reglas están determinadas por un código informático, que es copiado y procesado por todos los nodos de la red.

Los contratos inteligentes le permiten crear protocolos que no requieren confianza. Esto significa que ambas partes pueden interactuar a través de blockchain sin tener que confiar entre sí. Los participantes en el proceso pueden estar seguros de que el incumplimiento de los términos del contrato dará lugar a su cancelación. Además, el uso de contratos inteligentes elimina la necesidad de intermediarios, reduciendo significativamente los costos de transacción.

Aunque el protocolo Bitcoin ha apoyado los contratos inteligentes durante muchos años, deben su popularidad al creador y cofundador de Ethereum, Vitalik Buterin. Además, cada blockchain puede utilizar su propia forma de implementar contratos inteligentes.

El objetivo de este artículo son los contratos inteligentes que se ejecutan en la máquina virtual Ethereum (EVM), que es una parte fundamental de la cadena de bloques Ethereum.


¿Cómo funciona?

En palabras simples, un contrato inteligente funciona como un programa determinista. Realiza ciertas acciones cuando se cumplen condiciones específicas. En base a esto, el sistema de contrato inteligente a menudo utiliza expresiones "si... entonces...". A pesar de la terminología generalmente aceptada, los contratos inteligentes no son contratos en el sentido jurídico ni “inteligentes”. Estos son sólo fragmentos de código que se ejecutan en un sistema distribuido (en una cadena de bloques).

En la red Ethereum, los contratos inteligentes se encargan de realizar transacciones entre usuarios (direcciones). Cualquier dirección que no sea un contrato inteligente se denomina cuenta individual (EOA). Por lo tanto, los contratos inteligentes se gestionan mediante código de programa y las cuentas personales las gestionan los usuarios.

Básicamente, los contratos inteligentes de Ethereum constan de un código de contrato (que contiene las condiciones de ejecución) y dos claves públicas. La primera clave pública la proporciona el creador del contrato. La otra clave representa el contrato en sí, siendo un identificador digital único para cada contrato inteligente.

La ejecución de cualquier contrato inteligente ocurre durante una transacción de blockchain y pueden activarse cuando se inician desde una cuenta personal (u otro contrato inteligente). Sin embargo, la secuencia de contratos inteligentes siempre se inicia desde una cuenta personal (es decir, el usuario).


Características principales

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

Distribución. Los contratos inteligentes se replican y distribuyen en todos los nodos de la red Ethereum. Esta es una de sus principales diferencias con otras soluciones que utilizan servidores centralizados.

Determinismo. Los contratos inteligentes realizan las acciones para las que están diseñados cuando se cumplen los requisitos específicos. Además, el resultado siempre será el mismo independientemente de quién complete los requisitos.

Autonomía. Los contratos inteligentes pueden automatizar todo tipo de tareas, funcionando como un programa autoejecutable. En la mayoría de los casos, si no se inicia un contrato inteligente, está "inactivo" y no realiza ninguna acción.

Inmutabilidad. No se puede cambiar el proceso de un contrato inteligente una vez desarrollado y activado. Sólo se pueden realizar cambios si los desarrolladores han implementado previamente una característica específica. Por lo tanto, podemos decir que los contratos inteligentes pueden brindar protección contra la piratería de códigos mediante pruebas de autenticidad.

Personalización. Los contratos inteligentes se pueden codificar de varias maneras, por ejemplo para crear diferentes tipos de aplicaciones descentralizadas (DApps). Esto se debe a que Ethereum fue diseñado para ser Turing completo.

Falta de confianza. Dos o más partes pueden interactuar mediante contratos inteligentes, sin conocerse ni confiar entre sí. Además, la tecnología blockchain garantiza que todos los datos sean precisos y contabilizados.

Transparencia. Dado que los contratos inteligentes se basan en una cadena de bloques pública, su código fuente está disponible para todos.


¿Puedo cambiar o eliminar un contrato inteligente?

Los usuarios de Ethereum no pueden agregar nuevas funciones una vez que se activa el contrato inteligente. Sin embargo, si un desarrollador incluye una función llamada SELFDESTRUCT en el código del contrato, luego puede eliminarla y reemplazarla por una nueva. Sin esta función, será imposible eliminar el contrato inteligente.

En particular, los llamados contratos inteligentes actualizables brindan a los desarrolladores acceso a cambios de código, brindando así una mayor flexibilidad en comparación con los contratos inmutables. Hay muchas formas de crear este tipo de contratos inteligentes de distintos grados de complejidad.

Veamos esto con un ejemplo sencillo. Imaginemos que un contrato inteligente se divide en varios contratos pequeños. Algunos de ellos no se pueden cambiar, mientras que otros se pueden eliminar gracias a la función mencionada anteriormente. Esto significa que parte del código (una cierta cantidad de contratos inteligentes) se puede eliminar y reemplazar por otro, mientras que la funcionalidad restante permanece sin cambios.


Beneficios y casos de uso

Al ser código programable, los contratos inteligentes son altamente personalizables y pueden desarrollarse de diversas formas, ofreciendo diferentes tipos de servicios y soluciones.

Como programa descentralizado y autoaplicable, los contratos inteligentes pueden proporcionar una mayor transparencia y menores costos operativos. Dependiendo de la línea de negocio, también pueden aumentar la eficiencia y reducir los costos burocráticos.

Los beneficios de los contratos inteligentes son particularmente evidentes cuando se trata de transferencias de dinero o intercambio de fondos entre dos o más partes.

En otras palabras, los contratos inteligentes pueden diseñarse para adaptarse a una amplia variedad de casos de uso, incluida la creación de activos tokenizados, sistemas de votación, billeteras criptográficas, intercambios descentralizados, juegos y aplicaciones móviles. También se pueden implementar junto con otras soluciones blockchain en las áreas de atención médica, filantropía, cadena de suministro, gobernanza y finanzas descentralizadas (DeFi).


ERC-20

Los tokens emitidos en la cadena de bloques Ethereum cumplen con el estándar ERC-20, que describe sus funciones principales. A menudo se les llama tokens ERC-20 y constituyen la mayoría de las criptomonedas existentes.

Muchas empresas y startups están desarrollando contratos inteligentes para emitir sus propios tokens digitales en la red Ethereum. Una vez emitidos, la mayoría distribuye sus tokens ERC-20 a través de una oferta inicial de monedas (ICO). Los contratos inteligentes le permiten intercambiar y distribuir fondos de manera confiable y eficiente.


Defectos

Los contratos inteligentes consisten en código informático escrito por personas. Esto genera numerosos riesgos ya que el código es propenso a sufrir vulnerabilidades y errores. Idealmente, el desarrollo debería ser realizado por programadores experimentados, especialmente cuando se trata de información confidencial o grandes sumas de dinero.

Se cree que los sistemas centralizados pueden proporcionar la mayoría de las soluciones y funciones de los contratos inteligentes. La principal diferencia es que los contratos inteligentes se ejecutan en una red P2P distribuida de igual a igual en lugar de en un servidor centralizado. Y debido a que los contratos inteligentes se basan en blockchain, generalmente son inmutables o demasiado complejos para realizar cambios.

A veces la inmutabilidad es útil, pero no siempre. Por ejemplo, en 2016, los piratas informáticos piratearon la organización autónoma descentralizada DAO y robaron millones de dólares en ether (ETH) explotando vulnerabilidades en el código del contrato inteligente.

Debido a que el contrato inteligente de DAO era inmutable, los desarrolladores no pudieron corregir el código. En última instancia, esto condujo a una bifurcación dura y al surgimiento de una segunda cadena Ethereum. En pocas palabras, una cadena revirtió el hack y devolvió los fondos a los propietarios legítimos (esta cadena es parte de la cadena de bloques Ethereum actual), mientras que la otra no reaccionó al hack, guiándose por el hecho de que los eventos en la blockchain nunca deberían ocurrir. cambiado (esta cadena ahora se llama Ethereum Classic).

Cabe señalar que el problema no surgió debido al funcionamiento de la cadena de bloques Ethereum. En cambio, el error fue causado por una implementación incorrecta del contrato inteligente.

Otra desventaja de los contratos inteligentes está relacionada con su estatus legal incierto. Esto no solo se debe a que en la mayoría de países esta tecnología se encuentra en una “zona gris”, sino también a que los contratos inteligentes no cumplen con su marco regulatorio actual.

Por ejemplo, el principal requisito de muchos acuerdos y contratos es la estricta identificación de los participantes y la edad de 18 años. El anonimato que proporciona la tecnología blockchain, sumado a la ausencia de intermediarios, puede ser una barrera para el cumplimiento de dichos requisitos. Aunque existen posibles soluciones a este problema, el aspecto legal de los contratos inteligentes es uno de los principales problemas, especialmente cuando se trata de redes distribuidas y a escala global.


Crítica

Algunos entusiastas de blockchain ven los contratos inteligentes como una solución que puede reemplazar y automatizar gran parte de los sistemas comerciales y burocráticos existentes. Si bien esto es posible, los contratos inteligentes están lejos de ser la norma en esta área.

Los contratos inteligentes son sin duda una tecnología interesante. Pero su naturaleza distribuida y determinista, así como su transparencia e inmutabilidad parcial, lo hacen menos atractivo para su uso en algunas situaciones.

Básicamente, todas 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. Y de hecho, para algunas organizaciones es más fácil y mejor utilizar servidores alternativos convencionales.

En comparación con los contratos inteligentes, los servidores centralizados son más fáciles y económicos de mantener. Además, también pueden proporcionar una mayor eficiencia en términos de velocidad e interoperabilidad con otras redes.


Resumen

Sin duda los contratos inteligentes han tenido un gran impacto en el mundo de las criptomonedas y ciertamente han revolucionado el campo de la tecnología blockchain. Dado que es posible que los usuarios finales no interactúen directamente con los contratos inteligentes, estos pueden servir como base para una amplia gama de aplicaciones en el futuro, desde servicios financieros hasta gestión de la cadena de suministro.

El potencial combinado de los contratos inteligentes y la cadena de bloques puede tener un impacto significativo en casi todos los ámbitos de la sociedad. Pero sólo el tiempo dirá si estas tecnologías innovadoras pueden superar las barreras a su adopción generalizada.