¿Qué son los contratos inteligentes?
Conceptos básicos
En la década de 1990, Nick Szabo introdujo el concepto de contratos inteligentes. Los definió como herramientas que combinan protocolos con interfaces de usuario para asegurar redes informáticas. Szabo propuso usar contratos inteligentes en diversos ámbitos que implican acuerdos contractuales, incluidos sistemas de crédito, procesamiento de pagos y gestión de derechos de contenido.
En el ámbito de las criptomonedas, los contratos inteligentes pueden considerarse programas o aplicaciones que se ejecutan en una blockchain. Normalmente funcionan como acuerdos digitales aplicados mediante reglas predefinidas en código informático. Todos los nodos de la red replican y ejecutan ese código.
Los contratos inteligentes en una blockchain permiten protocolos sin confianza (trustless), habilitando que dos partes se comprometan mediante la cadena sin conocerse ni confiar entre sí. Pueden tener la seguridad de que el acuerdo no se ejecutará si no se cumplen las condiciones. Además, los contratos inteligentes eliminan la necesidad de intermediarios, reduciendo significativamente los costos operativos.
Aunque Bitcoin ha soportado contratos inteligentes durante años, el fundador de Ethereum, Vitalik Buterin, los popularizó. Sin embargo, distintas blockchains pueden tener formas únicas de implementar contratos inteligentes.
Este artículo se centrará en los contratos inteligentes que se ejecutan en la Ethereum Virtual Machine (EVM), un componente clave de la blockchain de Ethereum.
¿Cómo funcionan los contratos inteligentes?
Cuando se cumplen ciertas condiciones, un contrato inteligente ejecuta una tarea concreta, funcionando como un programa determinista. Un sistema de contratos inteligentes sigue sentencias del tipo "si... entonces...". Sin embargo, a pesar de su nombre, los contratos inteligentes no son inteligentes ni son contratos legales; son fragmentos de código que se ejecutan en un sistema distribuido como una blockchain.
Los contratos inteligentes en la red Ethereum ejecutan y gestionan operaciones en la blockchain cuando los usuarios (direcciones) interactúan. Las direcciones que no son contratos inteligentes son cuentas controladas externamente (externally owned accounts, EOA) gestionadas por usuarios, mientras que los contratos inteligentes son controlados por código informático.
Los contratos inteligentes de Ethereum tienen dos componentes: el código del contrato y dos claves públicas. La primera clave la proporciona el creador del contrato y la otra representa al contrato en sí, sirviendo como identificador digital único.
Los contratos inteligentes se despliegan mediante una transacción en la blockchain y solo se activan cuando son invocados por una EOA u otros contratos inteligentes. Sin embargo, siempre es una EOA la que desencadena la primera activación.
Características clave de los contratos inteligentes
Los contratos inteligentes en la red Ethereum presentan las siguientes características clave:
- Son distribuidos y replicados en todos los nodos de la red, a diferencia de las soluciones basadas en servidores centralizados.
- Son deterministas y solo realizarán las acciones designadas cuando se cumplan los requisitos. El resultado será el mismo independientemente de quién los ejecute.
- Son autónomos y pueden automatizar tareas como programas autoejecutables. Sin embargo, si no se disparan, permanecerán inactivos.
- Son inmutables, lo que significa que no pueden modificarse tras su despliegue, aunque pueden "eliminarse" si se implementó una función específica. Esto proporciona código resistente a la manipulación.
- Son personalizables y pueden programarse de diversas maneras antes del despliegue, lo que los hace útiles para crear distintos tipos de aplicaciones descentralizadas (DApps). Esto se debe a que Ethereum es una blockchain Turing-completa.
- Son trustless, permitiendo que dos o más partes interactúen sin conocimiento o confianza previa. La tecnología blockchain garantiza la exactitud de los datos.
- Son transparentes, ya que se basan en una blockchain pública, lo que significa que su código fuente es visible para todos.
¿Es posible modificar o eliminar un contrato inteligente?
Modificar o eliminar un contrato inteligente de Ethereum tras su despliegue no es posible. La función SELFDESTRUCT es la única forma de "eliminar" un contrato, pero debe incluirse en el código durante su creación. Si la función está ausente, el contrato es inmutable y no puede borrarse. Sin embargo, los desarrolladores pueden crear contratos inteligentes actualizables que ofrecen más flexibilidad dividiendo el código en contratos más pequeños. Algunos de estos contratos pueden eliminarse y reemplazarse, mientras que otros permanecen inmutables. El proceso de crear contratos inteligentes actualizables puede variar en complejidad.
Casos de uso y beneficios de los contratos inteligentes
Los contratos inteligentes ofrecen diversas ventajas y casos de uso gracias a su naturaleza programable. Pueden diseñarse de múltiples formas para ofrecer diferentes servicios y soluciones. Como programas descentralizados y autoejecutables, los contratos inteligentes proporcionan mayor transparencia y menores costos operativos, al tiempo que aumentan la eficiencia y reducen la carga burocrática.
Los contratos inteligentes son especialmente útiles en escenarios que implican la transferencia o intercambio de fondos entre varias partes. Pueden utilizarse para casos como la creación de activos tokenizados, sistemas de votación, carteras cripto, intercambios descentralizados, juegos y aplicaciones móviles. Además, pueden desplegarse junto a otras soluciones blockchain para abordar ámbitos como la salud, la filantropía, la cadena de suministro, la gobernanza y las finanzas descentralizadas (DeFi). En resumen, los contratos inteligentes son altamente personalizables y pueden diseñarse para ofrecer muchas soluciones distintas.
Tokens ERC-20
La blockchain de Ethereum es la base de muchos tokens que se estandarizan según la especificación ERC-20. Estos tokens suelen denominarse tokens ERC-20 y constituyen una proporción significativa del mercado cripto actual.
Numerosas startups y empresas blockchain han utilizado contratos inteligentes para crear sus propios tokens en la red Ethereum, siendo los eventos de Oferta Inicial de Monedas (ICO) el método típico de distribución. Al incorporar contratos inteligentes en el proceso de ICO, las empresas pueden gestionar el intercambio de fondos y la distribución de tokens de forma eficiente y segura, sin requerir confianza entre las partes.
Limitaciones
La naturaleza descentralizada y programable de los contratos inteligentes ofrece muchas ventajas, como mayor transparencia y eficiencia, reducción de costos y una amplia variedad de casos de uso. Sin embargo, también existen algunas limitaciones a tener en cuenta.
Una limitación es el riesgo de vulnerabilidades y errores debido al código escrito por humanos. Para minimizar estos riesgos, es aconsejable contar con programadores experimentados que escriban y desplieguen contratos inteligentes, especialmente cuando se manejan datos sensibles o grandes sumas de dinero.
Además, los sistemas centralizados pueden ofrecer funcionalidades similares a las de los contratos inteligentes. La diferencia principal es que los contratos inteligentes se ejecutan en una red P2P distribuida, lo que los hace inmutables o, al menos, difíciles de cambiar. Mientras que la inmutabilidad puede ser beneficiosa en ciertas situaciones, también puede ser perjudicial en otras. Por ejemplo, cuando The DAO fue hackeado en 2016 debido a fallos en su código, se robaron millones de ETH. La inmutabilidad del contrato impidió que los desarrolladores lo arreglaran, lo que llevó a un hard fork y la creación de una segunda cadena de Ethereum.
Otra limitación es el estatus legal incierto de los contratos inteligentes, que no siempre encajan en los marcos jurídicos actuales. Por ejemplo, algunos contratos requieren la identificación y verificación de edad de ambas partes, lo que puede verse amenazado por el seudónimo y la ausencia de intermediarios que ofrece la tecnología blockchain. Este reto de aplicabilidad legal es especialmente relevante en redes sin fronteras y distribuidas.
Una mirada crítica a los contratos inteligentes
La idea de que los contratos inteligentes pueden reemplazar y automatizar sistemas comerciales y burocráticos es popular entre los entusiastas de la blockchain. Sin embargo, esta realidad puede no ser factible para muchos problemas del mundo real debido a las limitaciones de los contratos inteligentes.
Si bien los contratos inteligentes son una tecnología fascinante, su naturaleza distribuida, determinista, transparente e inmutable puede hacerlos menos atractivos en algunas situaciones. Como resultado, algunas organizaciones pueden encontrar más efectivo usar alternativas convencionales basadas en servidores en lugar de contratos inteligentes.
Una de las principales críticas a los contratos inteligentes es su idoneidad limitada para ciertos casos de uso. Los servidores centralizados, en comparación, son más sencillos y económicos de mantener y ofrecen mayor eficiencia en términos de velocidad y comunicación entre redes.
Conclusión
Los contratos inteligentes han transformado la industria blockchain, causando un impacto significativo en las criptomonedas. Aunque los usuarios normalmente no interactúan con los contratos inteligentes directamente, estos tienen el potencial de impulsar una amplia variedad de aplicaciones, desde servicios financieros hasta la gestión de la cadena de suministro.
Los contratos inteligentes y la blockchain tienen el potencial de revolucionar la sociedad, pero queda por ver si estas tecnologías innovadoras podrán superar los obstáculos para su adopción masiva.