Introducción
En la década de 1990, Nick Szabo propuso por primera vez el concepto de contratos inteligentes. En ese momento, definió los contratos inteligentes como herramientas que estandarizan y garantizan la seguridad de las redes informáticas combinando protocolos e interfaces de usuario.
Szabo discutió el uso potencial de contratos inteligentes en diversas áreas relacionadas con acuerdos contractuales, como sistemas de crédito, procesos de pago y gestión de derechos de contenido.
En el campo de las criptomonedas, los contratos inteligentes se pueden definir como aplicaciones o programas que se ejecutan en blockchain. Normalmente, funcionan como un protocolo digital impuesto por reglas específicas. Estas reglas están predefinidas por código informático y son replicadas y ejecutadas por todos los nodos de la red.
Los contratos inteligentes de Blockchain respaldan la creación de protocolos sin confianza. Esto significa que las partes de un contrato se comprometen a través de blockchain sin conocerse ni confiar entre sí. Las partes determinaron que si no se cumplían las condiciones, el contrato no se ejecutaría. Además, el uso de contratos inteligentes elimina la necesidad de intermediarios, lo que reduce significativamente los costos operativos.
Aunque los contratos inteligentes han sido respaldados por el protocolo Bitcoin durante muchos años, se popularizaron de la mano del creador y cofundador de Ethereum, Vitalik Buterin. Vale la pena señalar que cada blockchain implementa contratos inteligentes de manera diferente.
Este artículo se centrará en los contratos inteligentes que se ejecutan en la máquina virtual Ethereum (EVM), una parte importante de la cadena de bloques Ethereum.
¿Cómo funcionan los contratos inteligentes?
En pocas palabras, un contrato inteligente es un programa determinista que realiza tareas específicas cuando se cumplen determinadas condiciones. Por lo tanto, los sistemas de contratos inteligentes suelen seguir declaraciones condicionales "si... entonces...". Aunque el concepto de “contrato inteligente” es bien conocido, no es un contrato legal ni inteligente. 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 cuando los usuarios (direcciones) interactúan entre sí. Las direcciones fuera de los contratos inteligentes se denominan "Cuentas externas (EOA)". Por lo tanto, los contratos inteligentes están controlados por código informático, mientras que las cuentas externas (EOA) están controladas por los usuarios.
Los contratos inteligentes de Ethereum constan básicamente de un código de contrato y dos claves públicas. La primera clave pública la proporciona el creador del contrato y la otra clave pública es el propio contrato y se utiliza como identificador digital único para cada contrato inteligente.
Toda la implementación de contratos inteligentes se produce a través de transacciones de blockchain y solo se activa cuando se llama a una cuenta externa (EOA) u otro contrato inteligente. Sin embargo, los contratos inteligentes generalmente se activan mediante una cuenta externa (EOA), es decir, el usuario por primera vez.
Características clave
Los contratos inteligentes de Ethereum tienen las siguientes características comunes:
repartido. Los contratos inteligentes se replican y distribuyen en todos los nodos de la red Ethereum. Esto es muy diferente de otras soluciones centralizadas basadas en servidor.
Certeza. Los contratos inteligentes solo realizan acciones prediseñadas cuando se cumplen los requisitos. Y, no importa quién lo haga, los resultados siguen siendo consistentes.
autonomía. En comparación con los programas "autoejecutables", los contratos inteligentes completarán automáticamente varias tareas. La mayoría de las veces, los contratos inteligentes no activados permanecen en estado de "suspensión" y no realizan ninguna acción.
Inmutabilidad. Los contratos inteligentes no se pueden cambiar una vez implementados. Los contratos inteligentes sólo se pueden "eliminar" después de que se hayan implementado funciones específicas. Entonces, también podríamos decir que los contratos inteligentes proporcionan un código a prueba de manipulaciones.
Personalización. Antes de la implementación, los contratos inteligentes se codifican de diversas formas. Por lo tanto, se puede utilizar para crear una amplia variedad de aplicaciones descentralizadas (DApps). Esto va de la mano con el hecho de que Ethereum es una cadena de bloques completa de Turing.
Desconfianza. Dos o más partes pueden interactuar a través de contratos inteligentes sin necesidad de conocerse ni confiar entre sí. Además, la tecnología blockchain garantizará la precisión de los datos.
Transparencia. La base de los contratos inteligentes es una cadena de bloques pública, por lo que el código fuente no sólo es inmutable, sino también abierto y transparente para todos.
¿Se pueden cambiar o eliminar los contratos inteligentes?
Una vez implementados, los contratos inteligentes de Ethereum no pueden agregar nuevas funciones. Sin embargo, siempre que el creador del contrato reserve la función "AUTODESTRUCCIÓN" en el código, esta función puede "eliminar" posteriormente el contrato inteligente y reemplazarlo con un nuevo contrato. Si esta función no está reservada en el código, el contrato inteligente no se puede eliminar.
Vale la pena señalar que a través de los llamados contratos inteligentes actualizables, los desarrolladores pueden operar de manera más flexible con la inmutabilidad del contrato. Hay muchas formas de crear contratos inteligentes actualizables, cada una con distintos niveles de complejidad.
Como ejemplo sencillo, supongamos que un contrato inteligente se divide en varios contratos más pequeños. Algunas partes están diseñadas para ser inmutables, mientras que otras permiten funciones de "eliminación". Es decir, partes del código (contratos inteligentes) se pueden eliminar y reemplazar, mientras que otras funciones permanecen sin cambios.
Beneficios y casos de uso
Como códigos programables, los contratos inteligentes son altamente personalizables, están diseñados de muchas maneras y brindan una amplia variedad de servicios y soluciones.
Como programas descentralizados y autoejecutables, los contratos inteligentes aumentan la transparencia y reducen los costos de funcionamiento. Dependiendo de la implementación, los contratos inteligentes también pueden mejorar la eficiencia de la implementación y reducir costos engorrosos.
Los contratos inteligentes son particularmente útiles cuando se trata de transferencias de fondos o transacciones entre dos o más partes.
En otras palabras, los contratos inteligentes se pueden adaptar a una amplia gama de casos de uso, incluida la creación de activos tokenizados, sistemas de votación, billeteras de criptomonedas, intercambios descentralizados, juegos y aplicaciones móviles. Los contratos inteligentes también se pueden implementar con otras soluciones blockchain que cubran áreas como atención médica, caridad, cadena de suministro, gobernanza y finanzas descentralizadas (DeFi).
ERC-20
Los tokens emitidos en la cadena de bloques Ethereum siguen el estándar ERC-20. Este estándar especifica la funcionalidad principal de todos los tokens Ethereum. Por lo tanto, estos activos digitales a menudo se denominan "tokens ERC-20" y representan una gran proporción de las criptomonedas existentes.
Muchas empresas y nuevas empresas de blockchain han implementado contratos inteligentes para emitir tokens digitales de forma autónoma en la red Ethereum. Después de emitir un token, la mayoría de las empresas distribuyen sus tokens ERC-20 a través de una oferta inicial de monedas (ICO). En la mayoría de los casos, el uso de contratos inteligentes puede realizar transacciones de fondos y distribución de tokens de manera efectiva y sin confianza.
limitaciones
Los contratos inteligentes consisten en código informático escrito por humanos. El código tendrá defectos y lagunas, lo que traerá muchos riesgos. Idealmente, los contratos inteligentes deberían ser escritos e implementados por programadores experimentados, especialmente cuando se trata de información confidencial y grandes cantidades de dinero.
Además, algunas personas creen 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 en lugar de en un servidor centralizado. Además, los contratos inteligentes se basan en sistemas blockchain y, por lo tanto, a menudo no pueden alterarse o son difíciles de cambiar.
La inmutabilidad de los contratos inteligentes tiene ventajas obvias, pero en algunos casos puede resultar contraproducente. Por ejemplo, la organización autónoma descentralizada "The DAO" fue pirateada en 2016 y millones de monedas Ethereum (ETH) desaparecieron. La razón fue que el código del contrato inteligente tenía fallas.
Dado que los contratos inteligentes son inmutables, los desarrolladores no pueden arreglar el código. Esto eventualmente condujo a una bifurcación dura, de la cual nació la segunda cadena Ethereum. En pocas palabras, una cadena (parte de la cadena de bloques Ethereum actual) se "restaura" a su estado anterior al hackeo, devolviendo los fondos a sus propietarios originales. La otra cadena, ahora conocida como Ethereum Classic, decidió no intervenir en el hackeo, insistiendo en que los eventos que ocurren en la cadena de bloques nunca deben ser manipulados.
Es importante tener en cuenta que este problema no es causado por la cadena de bloques Ethereum, sino por la ejecución incorrecta de contratos inteligentes.
Otra limitación de los contratos inteligentes está relacionada con sus efectos legales poco claros. Los contratos inteligentes se encuentran en una zona gris en la mayoría de los países y aún no se aplican a los marcos legales actuales.
Por ejemplo, muchos contratos exigen que ambas partes de la transacción pasen una autenticación de nombre real adecuada y sean mayores de 18 años. Sin embargo, el anonimato de la tecnología blockchain y la falta de intermediarios entrarán en conflicto con los requisitos del contrato. Es posible que en el futuro aparezca una solución a este problema. Sin embargo, los contratos inteligentes se ejecutan en una red distribuida sin fronteras, lo que dificulta mucho la aplicación de la ley.
Desventajas
Algunos entusiastas de blockchain ven los contratos inteligentes como soluciones autónomas que reemplazarán gran parte de los sistemas burocráticos y comerciales existentes. Si bien la idea puede hacerse realidad, todavía queda un largo camino por recorrer antes de que se convierta en la norma.
Los contratos inteligentes son, de hecho, una tecnología interesante. Sin embargo, características como la distribución, el determinismo, la transparencia y la inmutabilidad a veces reducen el atractivo de los contratos inteligentes.
La desventaja esencial de los contratos inteligentes es que no pueden resolver bien muchos problemas prácticos. De hecho, algunas organizaciones están utilizando actualmente soluciones de servidor tradicionales como solución provisional.
En comparación con los contratos inteligentes, los servidores centralizados son más fáciles y menos costosos de mantener y, a menudo, tienen importantes ventajas en cuanto a velocidad y comunicación entre redes (interoperabilidad).
Resumir
No hay duda de que los contratos inteligentes han tenido un profundo impacto en el campo de las criptomonedas y, de hecho, han traído cambios importantes al campo de blockchain. Los usuarios finales no necesariamente interactúan directamente con los contratos inteligentes. Pero en un futuro próximo, los contratos inteligentes se utilizarán más ampliamente y abarcarán diversos campos, como los servicios financieros y la gestión de la cadena de suministro.
Juntos, los contratos inteligentes y la cadena de bloques están revolucionando casi todos los ámbitos de la sociedad actual. Pero sólo el tiempo dirá si estas tecnologías innovadoras pueden superar los obstáculos y, finalmente, lograr una adopción masiva.

