-
El concepto de contrato inteligente fue acuñado por Nick Zsabo en 1994.
-
Durante años los contratos inteligentes fueron solo una idea, hasta la aparición de Bitcoin.
-
Los contratos inteligentes se pueden crear en redes como Bitcoin, Ethereum o Solana.
-
Los contratos inteligentes más utilizados funcionan para emitir tokens ERC-20 en Ethereum.
-
El estatus legal de los contratos inteligentes no está definido por completo.
Table of Contents
Un contrato inteligente es un programa informático que tiene la capacidad de ejecutar acuerdos entre distintas partes de manera automática, sin necesidad de intermediarios. Los contratos inteligentes utilizan sistemas de intercambio de datos computarizados y archivos seguros como los que proporcionan los protocolos de Ethereum, Bitcoin, entre otros, de manera que se pueda salvaguardar la información y confirmar que las cláusulas de cada acuerdo se cumplan.
Un contrato inteligente puede llevar a cabo una o varias tareas determinadas, según las instrucciones previamente introducidas. Su cumplimiento, por tanto, no está sujeto a la interpretación de ninguna de las partes: si el evento A sucede, entonces la consecuencia B se pondrá en marcha de forma automática.
Los contratos inteligentes, tal y como los conocemos hoy en día, tienen numerosas implementaciones en distintos campos. Su funcionamiento, a nivel de programación, es distinto en cada red. Además, no son exclusivos de Bitcoin y Ethereum, puesto que han sido la piedra angular de otros proyectos de almacenamiento de datos y de intercambio de valor, como Solana, Tezos, Stellar.
Esta tecnología ha sido fundamental para la creación de mercados alternativos, pues permiten emitir y administrar tokens y NFT (tokens no fungibles) en distintas redes, ampliando el abanico de opciones de los mercados de criptomonedas e introduciendo nuevos usos de la tecnología blockchain para actividades relacionadas con la identidad digital de las personas o la validez de las cadenas de suministros.
1 ¿Cómo surgieron los contratos inteligentes en Ethereum?
El término contrato inteligente fue acuñado por primera vez en 1994, cuando Nick Szabo, científico en computación y cypherpunk, escribió un texto donde definía el concepto como “un protocolo de transacción computarizado que ejecuta los términos de un contrato”.
A estos nuevos contratos los llamo “inteligentes”, porque son mucho más funcionales que sus ancestros inanimados basados en papel. No se implica ningún uso de inteligencia artificial. Un contrato inteligente es un conjunto de promesas, especificadas en forma digital, incluidos los protocolos dentro de los cuales las partes cumplen estas promesas.
Nick Szabo, cypherpunk, científico en computación y doctor en derecho
Pese a lo que podríamos denominar una temprana concepción de la idea de contrato inteligente en el seno de la comunidad cypherpunk, la implementación de este tipo de programas informáticos no sería posible hasta la aparición de otras tecnologías como Bitcoin.
Por definición, Bitcoin es un protocolo que funciona como un contrato inteligente, que permite el intercambio de valor sin intermediarios y de manera automatizada entre distintas partes. Podría decirse que se trata de una versión primitiva de los actuales contratos inteligentes.
Bitcoin y los contratos inteligentes:
Durante muchos años la propia arquitectura de Bitcoin limitaba la compatibilidad de otros contratos inteligentes en su funcionamiento. La razón es que su diseño se enfocaba más en la seguridad que en la flexibilidad de uso. En la actualidad, los desarrolladores han introducido mejoras que permiten que el software sea más flexible y compatible con un conjunto de aplicaciones que introducen este tipo de funcionamiento.
Sin embargo, sería hasta el surgimiento de Ethereum que los contratos inteligentes adquirirían su peso actual dentro de las finanzas y otros ámbitos de las sociedades. En Ethereum, los contratos inteligentes son los órganos que impulsan y sostienen múltiples aplicaciones.
Ethereum como red para ejecutar contratos inteligentes:
Los creadores de Ethereum diseñaron este protocolo para salvar las limitaciones que Bitcoin tenía durante sus primeros años de vida. Ethereum es una máquina virtual o un sistema Turing completo, capaz de verificar la validez de las transacciones de programas externos a través de sus contratos inteligentes nativos.
2 ¿Cómo funciona un contrato inteligente?
Para entender el funcionamiento de un contrato inteligente, partamos de la idea de su diferenciación con un contrato común, de esos que se escriben en un papel. Ambos son acuerdos en los que dos o más involucrados se comprometen a cumplir una serie de condiciones, y sus elementos fundamentales son los mismos: el consentimiento voluntario de todas las partes, el objeto del contrato (bien o servicio), y una causa justa, verdadera y lícita. Ahora bien, ambos difieren en tres factores: el modo de escritura, su implicación legal y el modo de cumplimiento.
Los contratos en papel son escritos en lenguaje natural. Es decir, basta con redactar las condiciones y términos en el idioma implicado. Si todas las partes están de acuerdo, firman para asegurar su promesa, lo cual nos lleva a su implicación legal: un contrato en papel tiene costes.
Según la jurisdicción bajo la que se lleve a cabo el contrato, es probable que tengan que cumplir con otros requisitos, como recurrir a una notaría. Por otro lado, su modo de cumplimiento está sujeto a la interpretación de las partes, que puede favorecer a una más que a la otra.
Los contratos inteligentes, en cambio, son programas informáticos. No están escritos en lenguaje natural, sino en código informático. Se trata de un tipo software que se configura para ejecutar una secuencia de acciones en respuesta a eventos específicos. Su funcionamiento es determinista, es decir, ante un evento A siempre se produce la consecuencia B. No se requiere de ningún intermediario de confianza (como una notaría), pues este papel lo adopta el código informático, que asegurará sin dudas el cumplimiento de las condiciones. Por tanto, se reducen tiempo y costes significativamente.
En términos técnicos, un contrato inteligente requiere una infraestructura para su ejecución y funcionamiento. Es aquí donde entran en juego sistemas descentralizados de intercambio y almacenamiento de información como Bitcoin y Ethereum. Las propiedades de inmutabilidad de los datos almacenados, distribución de sus archivos y descentralización de su funcionamiento, permiten que estas tecnologías sean la base del funcionamiento de los contratos inteligentes que existen en la actualidad.
¿Qué es una red distribuida de computadoras?
Una red distribuida de computadoras, también conocida como red en malla o sistema distribuido, es un modelo de computación que utiliza varios ordenadores interconectados para resolver problemas de forma conjunta. A diferencia de un sistema informático tradicional, donde el procesamiento se realiza en un solo ordenador central, en una red distribuida las tareas se reparten entre los distintos nodos de la red.
3 ¿Cómo se utilizan los contratos inteligentes?
El principal caso de uso de los contratos inteligentes hoy en día se relaciona con las finanzas descentralizadas o DeFi. Los desarrolladores de este tipo de soluciones se han enfocado en facilitar los intercambios de dinero en plataformas de trading, lo que proporciona seguridad para los traders y minimiza los costos para operadores y compañías.
Imaginemos un DEX (exchange descentralizado) que funcione sin intermediarios, donde los usuarios puedan intercambiar tokens ERC-20 directamente entre sí. Este DEX podría implementarse utilizando un contrato inteligente que gestione el proceso de intercambio de la siguiente manera:
Creación de un pool de liquidez: los usuarios depositan tokens ERC-20 en el contrato inteligente, creando dos pools: uno para el token que se desea vender (token A, por ejemplo USDT) y otro para el token que se desea comprar (token B, por ejemplo ETH). Uniswap, Curve y Balancer son ejemplos de mercados de liquidez.
- Creación de un pool de liquidez: los usuarios depositan tokens ERC-20 en el contrato inteligente, creando dos pools: uno para el token que se desea vender (token A, por ejemplo USDT) y otro para el token que se desea comprar (token B, por ejemplo ETH). Uniswap, Curve y Balancer son ejemplos de mercados de liquidez.
¿Qué es un token ERC-20?
Un token ERC-20 es un tipo de activo digital que se ejecuta en la red de Ethereum. Se basa en un estándar técnico llamado ERC-20, que define un conjunto de reglas para la creación y funcionamiento de tokens en la plataforma Ethereum. Su funcionamiento depende de contratos inteligentes.
- Definición de la tasa de intercambio: un algoritmo dentro del contrato inteligente determina la tasa de intercambio entre el token A y el token B. Esta tasa puede basarse en diversos factores, como la oferta y la demanda de cada token, o en precios de referencia de oráculos externos. Es decir, de un protocolo que suministre información sobre esos precios de referencia para que el contrato inteligente determine cuándo se alcanza el precio deseado.
- Ejecución de intercambios: cuando un usuario desea intercambiar tokens, interactúa con el contrato inteligente especificando la cantidad de token A que desea vender y la cantidad de token B que desea recibir.
- Custodia y transferencia de tokens: el contrato inteligente verifica que el usuario tenga suficiente saldo de token A y deduce la cantidad correspondiente del pool. Luego, transfiere la cantidad equivalente de token B del pool al usuario.
- Actualización del pool de liquidez: las cantidades de token A y token B en los pools se actualizan automáticamente para reflejar cada intercambio.
Los contratos inteligentes para el trading en plataformas de Ethereum o Solana (y otras) pueden ser más complejos e incorporar características adicionales, como:
- Órdenes limitadas y de mercado: permiten a los usuarios especificar a qué precio desean comprar o vender tokens.
- Tarifas de trading: el contrato inteligente puede cobrar una pequeña tarifa por cada intercambio para generar ingresos para los desarrolladores o para la plataforma DEX.
- Prevención de deslizamiento: mecanismos para minimizar el impacto del deslizamiento, que es la diferencia entre el precio esperado de un intercambio y el precio real ejecutado.
- Integración con oráculos: el contrato inteligente puede conectarse a oráculos para obtener datos de precios de mercado en tiempo real y ajustar las tasas de intercambio en consecuencia.
¿Qué es un oráculo?
Estas son herramientas informáticas que permiten actualizar el estado de los contratos inteligentes con información del exterior, como los precios de las divisas, la cotización de las acciones o si ganó el equipo A o el B. Aunque, por supuesto, la fuente de ese oráculo sigue siendo una tercera parte, un intermediario fuera de la la cadena principal y fuera del contrato y por tanto sujeto a la confianza. Este es un problema a resolver, pues precisamente lo que se quiere eliminar con los contratos inteligentes y la redes como Ethereum y Bitcoin es la necesidad de confianza.
4 ¿Qué tipo de contratos inteligentes existen?
Existen diferentes tipos de contratos inteligentes, cada uno con sus propias características y aplicaciones. Algunos de los más comunes son:
- Contratos de ejecución única: son los más simples y directos. Se utilizan para ejecutar una acción específica una sola vez. Por ejemplo, un contrato que transfiere la propiedad de un activo digital a un comprador una vez que se recibe el pago completo.
- Contratos de repetición: se ejecutan repetidamente según condiciones recurrentes. Por ejemplo, un contrato que paga dividendos a los inversores mensualmente en función del rendimiento de una inversión.
- Contratos con oráculo: obtienen datos del mundo real y los utilizan para activar la ejecución del contrato. Por ejemplo, un contrato que paga un seguro si se detecta un retraso en un vuelo.
- Contratos multifirma: requieren la aprobación de varias partes antes de poder ejecutarse. Por ejemplo, un contrato que requiere la firma de dos ejecutivos para realizar una compra importante. El contrato puede tener otras condiciones, pero no se pondría en marcha hasta que los participantes firmen con sus claves secretas.
- Contratos DAO (Organización Autónoma Descentralizada): Gobiernan la gestión de una organización descentralizada. Permiten a los miembros de la DAO votar sobre propuestas y tomar decisiones de forma colectiva.
- Contratos de identidad: se utilizan para gestionar identidades digitales seguras y verificables. Permiten a los usuarios controlar sus datos personales y compartirlos de forma segura con otras aplicaciones.
5 ¿Cuáles son las ventajas y desventajas de los contratos inteligentes?
Ventajas de los contratos inteligentes:
Automatización y eficiencia: los contratos inteligentes eliminan la necesidad de intermediarios, como abogados o notarios, para ejecutar acuerdos. Esto reduce costes, agiliza procesos y minimiza errores humanos.
Transparencia: los términos del contrato se almacenan en la cadena de bloques, lo que garantiza su transparencia e inmutabilidad. Todas las partes involucradas en el contrato pueden acceder a la información y verificar su ejecución.
Seguridad: la tecnología blockchain proporciona un alto nivel de seguridad para los contratos inteligentes. Los contratos son inmutables una vez desplegados en la cadena de bloques, lo que los hace resistentes a la manipulación y al fraude.
Precisión: la ejecución automática de los contratos inteligentes garantiza que los términos se cumplan de forma precisa y puntual. Se elimina la posibilidad de interpretaciones erróneas o disputas sobre los términos del acuerdo.
Reducción de costes: al eliminar intermediarios y automatizar procesos, los contratos inteligentes pueden generar ahorros significativos en costes para las empresas y los individuos.
Acceso global: los contratos inteligentes pueden ser utilizados por cualquier persona en el mundo con acceso a internet, independientemente de su ubicación o jurisdicción.
Potencial para la innovación: los contratos inteligentes abren nuevas posibilidades para la creación de aplicaciones descentralizadas (DApps) en diversos sectores, como finanzas, seguros, cadena de suministro y gestión de activos.
Desventajas de los contratos inteligentes:
Complejidad técnica: Desarrollar y comprender contratos inteligentes requiere conocimientos técnicos en programación, criptografía y tecnología blockchain. Esto puede limitar su adopción a usuarios con experiencia técnica.
Vulnerabilidades a errores: Los errores en el código de los contratos inteligentes pueden tener graves consecuencias, como la pérdida de fondos o la ejecución de acciones no deseadas. Es crucial realizar auditorías exhaustivas para garantizar la seguridad de los contratos.
Falta de regulación: el marco legal y regulatorio para los contratos inteligentes aún está en desarrollo. Esto genera incertidumbre para las empresas y los individuos que buscan utilizar esta tecnología.
Dependencia de la tecnología: los contratos inteligentes dependen del correcto funcionamiento de la red blockchain. Si la red se cae o se ve comprometida, los contratos podrían no ejecutarse correctamente.
6 ¿Cuál es el estatus legal de los contratos inteligentes?
Un contrato inteligente puede ser un acuerdo jurídicamente vinculante, pero para que lo sea depende de varios factores.
En primer lugar, tiene que cumplir la definición básica de contrato: un encuentro de voluntades con un intercambio de contraprestaciones (algo que ambas partes ceden o reciben). En la mayoría de las jurisdicciones, no se exige que un contrato conste por escrito. En este sentido, los contratos inteligentes superan los requisitos mínimos.
En segundo lugar, una vez que se ha establecido un contrato inicial, es necesario que los términos del contrato sean identificables. Eso puede ser una tarea extremadamente difícil y costosa en un acuerdo de apretón de manos, pero es más fácil cuanto más claros estén escritos los términos del contrato.
En tercer lugar, un contrato inteligente debe cumplir los criterios aplicables a un acuerdo electrónico ejecutable:
- Oferta, aceptación, contraprestación: Como se ha comentado anteriormente, una o ambas partes ofrecen los términos del acuerdo, que ambas partes aceptan. Este acuerdo debe ofrecer algo de valor a cada parte, que puede ser valor monetario o valor intangible.
- Cláusulas legalmente admisibles: El contrato sólo es ejecutable si incluye términos cuya ejecución sea legal. Esto es especialmente importante cuando se consideran contratos inteligentes que constituyen parte de la web oscura. Un contrato inteligente no valida un acto ilegal.
- Apto para firmas electrónicas: El documento debe ser apto para firmas electrónicas válidas de acuerdo con las jurisdicciones aplicables (normalmente donde estén situadas una o todas las partes).
En EE.UU., el Código Comercial Uniforme (UCC) indica que no es necesario que un acuerdo conste por escrito para que tenga fuerza ejecutiva. Esto significa que, en general, los contratos electrónicos serán legalmente exigibles. Las condiciones aquí descritas pueden ser aplicables en otras jurisdicciones como Argentina, España, Colombia y, en general, en cualquier parte del mundo.
Las regulaciones sobre bitcoin y otros activos
No debe confundirse las regulaciones sobre activos como bitcoin (BTC), ether (ETH) y otras criptomonedas con la legalidad de los contratos inteligentes. Bitcoin es legal en la mayoría de los países y está regulado en una buena parte de estos, por tratarse de dinero. Los contratos inteligentes sirven para administrar el intercambio de dinero y su legalidad depende de los acuerdos entre las partes involucradas.
7 ¿En qué plataformas se pueden crear y ejecutar contratos inteligentes?
Existen numerosas plataformas que permiten ejecutar contratos inteligentes. Algunas de las más populares son:
- Ethereum: Es la plataforma más popular para contratos inteligentes. Ofrece un lenguaje de programación propio llamado Solidity y tiene una amplia variedad de usos, donde predominan los contratos inteligentes utilizados en rollups.
- Bitcoin: A través Ordinals, Runes, BitVM y otros. Se utilizan lenguajes de programación como Bitcoin Script y Rust.
- Solana: Es una red permite la creación e intercambio de tokens, que funciona de manera centralizada. Utiliza un lenguaje de programación llamado Rust.
- Polkadot: Permite la interoperabilidad entre diferentes cadenas de bloques. Utiliza un lenguaje de programación propio llamado Ink.
- Hyperledger Fabric: Está diseñada para empresas que buscan una plataforma privada y segura para contratos inteligentes. Utiliza varios lenguajes de programación, como Go, Java y Phyton.
- Tezos: Se caracteriza por su enfoque en la gobernanza y la seguridad. Utiliza un lenguaje de programación propio llamado Michelson.
- Stellar: Está diseñada para facilitar los pagos internacionales y la transferencia de activos. Utiliza un lenguaje de programación propio llamado Clarity.
- NEM Smart Contract: es una red que utiliza una blockchain basada en un mecanismo de consenso denominado “prueba de importancia”. Utiliza un lenguaje de programación denominado Catapult.