Qué son los smart contracts: cómo funcionan de verdad y para qué sirven

Un smart contract o contrato inteligente es un programa que vive en una blockchain y ejecuta unas reglas previamente definidas. Cuando recibe una instrucción válida y se cumplen las condiciones programadas, hace exactamente lo que dice su código.

Y ya te adelanto dos ideas que evitan bastante confusión: no es “inteligente” en el sentido de pensar por sí mismo y tampoco tiene por qué ser un contrato legal.

Su importancia viene de otro sitio. Un smart contract puede recibir activos, moverlos, bloquearlos, crear tokens o ejecutar intercambios sin que una empresa tenga que aprobar manualmente cada operación. En Ethereum, por ejemplo, estos programas tienen código, almacenan datos y se encuentran en una dirección concreta de la blockchain.

Esta es la lección 25 del curso gratuito de criptomonedas, dentro del módulo de conceptos intermedios.

Venimos de entender qué es DeFi y cómo funcionan las finanzas descentralizadas. Ahora toca abrir el motor que hace posible buena parte de todo aquello: los smart contracts.

Y en la siguiente lección veremos algo que aparece cada vez que utilizas muchos de estos contratos: qué son las gas fees o comisiones de red.
Qué son los smart contracts y cómo funcionan Guía fácil
Qué son los smart contracts y cómo funcionan Guía fácil

La idea que quiero que entiendas

Un smart contract es, básicamente, una serie de instrucciones del tipo “si ocurre X, haz Y” ejecutadas por una blockchain.

Pero para mí hay una idea todavía más importante:

Los smart contracts no eliminan mágicamente la necesidad de confianza. La cambian de sitio.

En vez de confiar únicamente en una empresa, un banco o una persona para que cumpla lo acordado, pasas a depender del código, de la blockchain donde se ejecuta, de los datos que recibe y, en muchos casos, de las personas que pueden modificar determinados componentes del protocolo.

Entender esto evita pasar del “tengo que confiar en todo el mundo” al otro extremo de “es blockchain, así que no tengo que confiar en nadie”.

No funciona así.

Si todavía no tienes clara la base sobre la que se construye todo esto, volvería primero a qué es blockchain y cómo funciona. Una vez entiendes qué hace una blockchain, los contratos inteligentes son bastante más fáciles de visualizar.

Relacionado Qué son las stablecoins y cómo funcionan

Qué es exactamente un smart contract

Piensa en una especie de caja fuerte programable.

La caja puede guardar activos digitales y tiene unas reglas escritas en código. Nadie tiene que estar sentado delante decidiendo manualmente qué hacer cada vez.

Imagina una regla extremadamente sencilla:

Si Ana deposita 1.000 USDC y recibe el activo digital acordado, libera los 1.000 USDC al vendedor.

El programa comprueba aquello que puede comprobar dentro de la blockchain y ejecuta la acción correspondiente.

No negocia.

No interpreta intenciones.

No piensa si el trato sigue pareciendo justo.

Ejecuta código.

Ethereum fue diseñado precisamente para permitir que los desarrolladores desplieguen este tipo de programas y que después otras cuentas puedan interactuar con ellos enviando transacciones.

Por eso entender qué es Ethereum y para qué sirve ayuda bastante: Ethereum no es simplemente una criptomoneda llamada ETH. Es también una infraestructura donde pueden ejecutarse aplicaciones construidas mediante contratos inteligentes.

Un smart contract no es necesariamente un contrato jurídico

Aquí el nombre juega una mala pasada.

Un contrato tradicional puede incluir frases como “actuar de buena fe”, “entregar el producto en condiciones adecuadas” o “realizar el trabajo satisfactoriamente”.

Eso exige interpretación.

El código no funciona así.

Contrato tradicionalSmart contract
Dónde están las reglasTexto y acuerdos entre las partesCódigo
Quién ejecuta lo acordadoLas partes y, si hay conflicto, terceros o tribunalesLa blockchain siguiendo el programa
Puede interpretar contextoSí, mediante personasNo
Puede usar datos del mundo real directamenteSíNormalmente necesita una fuente externa
Cambiar las condicionesLas partes pueden pactar modificacionesDepende del diseño; el código desplegado no se edita simplemente como un documento

Puede existir un contrato legal que utilice smart contracts, claro. Pero “smart contract” y “contrato legal” no son sinónimos.

Y esta diferencia me parece bastante importante.

Relacionado Qué es DeFi: cómo funcionan las finanzas descentralizadas de verdad

Cómo funciona un smart contract paso a paso

Vamos a quitarle misterio.

Primero, un desarrollador escribe el programa. En Ethereum es muy habitual utilizar Solidity, aunque como usuario normal no necesitas aprender a programar para interactuar con un contrato.

Después, ese código se despliega en la blockchain. El contrato pasa a tener una dirección que permite identificarlo, igual que otros elementos de la red.

A partir de ahí, un usuario puede interactuar con él. Normalmente lo hará a través de una aplicación que simplifica el proceso: pulsas “intercambiar”, “depositar”, “pedir prestado” o “hacer staking”, y por debajo estás solicitando ejecutar una determinada función.

Tu wallet de criptomonedas firma la operación para demostrar que eres tú quien la autoriza.

La red procesa la transacción, ejecuta las reglas del contrato y, si todo es válido, actualiza el estado de la blockchain.

Por ejemplo, puede ocurrir que antes tengas 1 ETH en tu dirección y 0 unidades de otro token y, después de una operación, el contrato haya enviado tu ETH a un pool y te haya entregado los tokens correspondientes.

El resultado queda registrado en la blockchain.

Aquí aparece una diferencia interesante frente a utilizar una plataforma centralizada. Cuando operas dentro de un exchange, muchas operaciones pueden gestionarse en los propios sistemas de la empresa. Cuando interactúas directamente con un protocolo descentralizado, puedes estar firmando una transacción que llama a un smart contract.

Si esa distinción todavía te lía, la explico con más calma en exchange vs wallet: qué cambia realmente.

Hay otro detalle que suele explicarse mal: el contrato no está sentado esperando eventos del universo como si tuviera vida propia.

En Ethereum, las cuentas llaman a sus funciones mediante transacciones. Que llegue una determinada hora no hace que un contrato se despierte mágicamente y actúe. Para ejecutar determinada lógica debe producirse una interacción en la red, directamente por un usuario o mediante algún sistema de automatización.

Relacionado Comisiones de Kraken: ¿son un robo? Lo que pagas de verdad

Un ejemplo sencillo para verlo claro

Imagina un mercado de entradas digitales.

Existe una entrada representada mediante un activo en blockchain y quieres comprársela a otra persona por 200 USDC.

Sin smart contract tienes un problema bastante clásico.

¿Quién envía primero?

Si tú mandas los 200 USDC, dependes de que la otra persona entregue la entrada. Si la otra persona entrega primero la entrada, depende de que tú pagues.

Un contrato inteligente podría hacer de intermediario programable.

Tú depositas los 200 USDC. El vendedor deposita la entrada. El contrato comprueba que están ambos activos y ejecuta el intercambio: la entrada va a tu dirección y los 200 USDC a la del vendedor.

Si las condiciones están correctamente programadas, ninguna de las partes necesita confiar en que la otra cumpla voluntariamente después.

Esto es potente.

Pero fíjate en una cosa: el smart contract funciona especialmente bien porque toda la información relevante está dentro de la blockchain.

Sabe si existen los 200 USDC.

Sabe quién posee el activo digital.

Sabe a qué direcciones debe enviarlos.

Ahora cambia la entrada digital por un coche físico y aparece un problema mucho más interesante.

¿Cómo sabe la blockchain que realmente te han entregado el coche?

No lo sabe.

Relacionado Qué son las altcoins: tipos, ejemplos y lo que debes entender antes de invertir

Para qué sirven los smart contracts en criptomonedas

Aquí es donde se entiende por qué los contratos inteligentes han terminado siendo una pieza tan importante de cripto.

Sirven para crear tokens, realizar intercambios descentralizados, gestionar préstamos y depósitos, repartir recompensas, ejecutar determinados sistemas de gobernanza, construir videojuegos blockchain, emitir NFTs o crear productos financieros que pueden combinarse unos con otros.

En la práctica, muchas aplicaciones descentralizadas utilizan smart contracts como su parte lógica. Ethereum los describe como uno de los bloques fundamentales de su capa de aplicaciones.

Cuando utilizas un protocolo DeFi, por ejemplo, puedes estar interactuando con varios contratos sin siquiera verlos.

Y ocurre algo parecido con el staking de criptomonedas cuando se realiza mediante determinados protocolos: lo que tú ves como un botón sencillo puede esconder por debajo varias interacciones entre wallets y contratos.

Eso es precisamente lo interesante.

Los smart contracts permiten convertir reglas financieras o digitales en código que otros programas pueden reutilizar.

Un contrato puede llamar a otro.

Ese segundo contrato puede utilizar un tercero.

Y así se construyen aplicaciones mucho más complejas.

Pero esa capacidad de combinar piezas también crea riesgos. Un protocolo puede tener su propio código perfectamente escrito y aun así verse afectado si depende de otro contrato vulnerable.

Relacionado Qué son las criptomonedas y cómo funcionan: explicación desde cero

Lo que un smart contract no puede hacer solo

Esta es probablemente la parte que más me interesa de toda la explicación.

La frase “el contrato se ejecuta automáticamente cuando se cumple una condición” es correcta, pero puede dar una impresión demasiado mágica.

¿Quién le dice que se ha cumplido la condición?

Si todo ocurre dentro de la blockchain, resulta relativamente sencillo. El contrato puede consultar saldos, direcciones, bloques u otra información disponible en la propia red.

El problema aparece con el mundo exterior.

Supongamos que creamos un seguro que paga automáticamente 500 € si un vuelo llega con más de tres horas de retraso.

La blockchain no sabe si tu vuelo ha aterrizado tarde.

Necesitamos introducir esa información desde fuera.

Aquí aparecen los oráculos, sistemas que llevan determinados datos externos hasta los contratos inteligentes. Ethereum señala precisamente esta limitación: los contratos no pueden obtener por sí mismos información del mundo exterior y necesitan mecanismos externos cuando esa información es necesaria para ejecutar su lógica.

Y aquí vuelve la confianza.

Si tu contrato es perfecto pero recibe un precio incorrecto de un oráculo, puede ejecutar perfectamente una decisión incorrecta.

Esto resume bastante bien cómo yo miraría los smart contracts:

automatizar una regla no garantiza que esa regla sea buena ni que los datos utilizados sean correctos.

Tampoco significa que todos los contratos sean completamente inmutables para siempre.

En Ethereum, el código desplegado en una dirección es inmutable por diseño, pero existen arquitecturas con contratos proxy y otros patrones que permiten cambiar la lógica con la que interactúa el usuario.

Así que cuando alguien te diga “nadie puede cambiar este smart contract”, yo no me quedaría únicamente con esa frase.

Preguntaría quién tiene permisos, si existe un mecanismo de actualización y qué controla realmente esa dirección.

El gran riesgo: el código ejecuta también los errores

A veces se presenta la automatización como si eliminase los errores humanos.

No exactamente.

Puede evitar que una persona cambie arbitrariamente de opinión durante la ejecución, pero el código lo han escrito personas.

Y un error programado puede ejecutarse con la misma precisión que una regla correcta.

Ethereum dedica una parte importante de su propia documentación a vulnerabilidades de contratos inteligentes y a técnicas para reducir riesgos. Entre ellas están fallos como la reentrada, problemas de control de acceso y errores relacionados con contratos actualizables.

Por eso yo separaría siempre cuatro riesgos.

El primero es el riesgo del propio código. Puede contener un fallo que permita comportamientos que sus desarrolladores no habían previsto.

El segundo es el riesgo de administración. Si alguien conserva permisos especiales para actualizar, pausar o modificar partes del sistema, necesitas entender qué puede hacer exactamente.

El tercero es el riesgo de dependencias. Oráculos, bridges y otros contratos pueden convertirse en puntos débiles aunque el contrato principal funcione bien.

Y el cuarto eres tú.

Puedes tener delante un protocolo perfectamente legítimo y firmar una operación que no entiendes, conceder permisos demasiado amplios o entrar en una web falsa.

Por eso aprender cómo funciona una seed phrase y por qué debes protegerla y seguir unas buenas prácticas de seguridad con criptomonedas no es un tema separado de los smart contracts. Es parte de utilizarlos con cabeza.

Y si estás empezando, echaría también un vistazo a la lección sobre los principales riesgos de invertir en criptomonedas.

Entonces, ¿por qué son tan importantes?

Porque permiten hacer algo que antes era mucho más difícil: crear aplicaciones capaces de gestionar activos digitales mediante reglas públicas y programables.

Eso abre posibilidades enormes.

Pero lo que más me gusta del concepto no es la palabra “automático”. Es la posibilidad de comprobar qué reglas está siguiendo un sistema en lugar de depender únicamente de lo que una empresa dice que hará.

Eso no convierte cada smart contract en algo seguro.

Ni siquiera convierte cada proyecto descentralizado en realmente descentralizado.

Lo que hace es darnos una herramienta nueva para construir sistemas digitales.

Y a partir de aquí empiezas a entender mucho mejor por qué existen Ethereum, DeFi, los exchanges descentralizados, determinados stablecoins, NFTs, DAOs y una parte enorme del ecosistema cripto.

¿Necesitas smart contracts para comprar criptomonedas?

No.

Y me parece importante decirlo porque estamos entrando en conceptos cada vez más técnicos dentro del curso.

Si simplemente quieres comprar Bitcoin, Ethereum u otras criptomonedas, no necesitas aprender Solidity ni conectarte directamente a un protocolo DeFi.

Puedes utilizar un exchange.

Si todavía no tienes claro qué papel cumple, tienes la lección sobre qué es un exchange de criptomonedas y la guía de cómo comprar criptomonedas paso a paso.

Para comprar criptomonedas desde euros, la opción que recomendamos dentro del curso es Bitvavo.

Abrir una cuenta en Bitvavo con la promoción de bienvenida vigente

Prefiero no darte aquí una cifra concreta de la promoción porque puede cambiar. Las propias condiciones de Bitvavo contemplan que los beneficios y términos del programa de referidos pueden modificarse y que la recompensa aplicable se muestra durante el proceso de registro. Compruébala antes de terminar el alta.

Invertir en cripto sigue teniendo riesgo aunque utilices un exchange regulado o una plataforma que me parezca buena. Una cosa es elegir dónde comprar y otra completamente distinta decidir qué comprar y cuánto riesgo asumir.

La idea con la que me quedaría

Si solo recuerdas una cosa de esta lección, que sea esta:

Un smart contract no es un contrato que piensa. Es código que ejecuta reglas sobre una blockchain.

Su ventaja es que permite automatizar operaciones y manejar activos sin depender de que una persona las ejecute una a una.

Su límite es exactamente el mismo que hace interesante al concepto: hace lo que está programado para hacer.

Si el código tiene un error, ejecutará el error.

Si depende de un dato externo incorrecto, utilizará ese dato.

Si existen permisos de administración, esos permisos importan.

Y si tú firmas una operación equivocada, que el contrato sea descentralizado no va a salvarte automáticamente.

Entender esto ya te pone bastante por delante de quedarse únicamente con la frase de que “los smart contracts eliminan intermediarios”.

La siguiente pieza del puzzle es muy práctica. Cada vez que llamas a uno de estos contratos en redes como Ethereum, ejecutar código consume recursos de la red. Y esos recursos se pagan.

Seguimos con la lección 26: qué son las gas fees y por qué tienes que pagarlas.

Preguntas frecuentes sobre smart contracts

¿Un smart contract puede funcionar sin blockchain?

El término se utiliza normalmente para programas desplegados sobre redes blockchain o sistemas de registros distribuidos. Puedes automatizar reglas con software tradicional, por supuesto, pero la particularidad del smart contract es que su ejecución y estado se integran dentro de esa infraestructura blockchain.

¿Se puede modificar un smart contract después de crearlo?

El código desplegado directamente en Ethereum es inmutable por diseño. Sin embargo, un proyecto puede utilizar arquitecturas actualizables —por ejemplo, contratos proxy— que permiten sustituir la lógica utilizada por la aplicación sin modificar directamente el código original.

Por eso “el contrato es inmutable” no debería ser el final del análisis.

¿Tengo que saber programar para utilizar smart contracts?

No. La mayoría de usuarios interactúan con ellos mediante wallets y aplicaciones que presentan una interfaz mucho más sencilla. Lo importante como usuario no es saber escribir Solidity, sino entender qué estás autorizando, con qué contrato estás interactuando y qué riesgos estás aceptando.