Smart contracts: cuando el código ejecuta las reglas
Al principio, la blockchain se asociaba sobre todo con la transferencia de valor digital. Bitcoin demostró que es posible enviar dinero por internet sin que cada transacción tenga que ser confirmada por un banco u otra institución central. Pero la blockchain no solo puede manejar información sobre quién ha enviado algo a quién. También puede almacenar y ejecutar reglas programadas de antemano.
Aquí es donde entran en juego los smart contracts: programas que se ejecutan directamente sobre la blockchain y que, una vez cumplidas ciertas condiciones previamente establecidas, llevan a cabo una acción definida. Pueden, por ejemplo, transferir un token, intercambiar activos digitales, gestionar la garantía de un préstamo o emitir un NFT.
Gracias a los smart contracts, la blockchain pasó de ser una tecnología destinada principalmente a transferir criptomonedas a convertirse en un entorno sobre el que pueden funcionar aplicaciones enteras. Están detrás, por ejemplo, de los exchanges descentralizados, de DeFi, de los stablecoins, de los NFT o de los activos tokenizados.
Qué es un smart contract
El nombre smart contract puede resultar algo engañoso. No se trata necesariamente de un contrato en sentido jurídico y, desde luego, no es un programa «inteligente» al estilo de la inteligencia artificial.
Un smart contract es, en esencia, un programa almacenado en la blockchain que contiene reglas establecidas de antemano y que ejecuta determinadas operaciones conforme a ellas.
En Ethereum, un smart contract tiene su propia dirección en la blockchain, contiene su código y, al mismo tiempo, los datos que representan su estado actual. Puede, por ejemplo, mantener criptomonedas o tokens, y los usuarios pueden comunicarse con él mediante transacciones en la blockchain. El contrato ejecuta entonces la función que está programada en su código.
Si se cumple la condición A → ejecuta la acción B.
Por ejemplo:
- – Si el usuario envía el importe requerido → entrégale el token.
- – Si el valor de la garantía cae por debajo del umbral establecido → inicia la liquidación.
Es decir, el smart contract no intenta comprender la intención del usuario. Simplemente ejecuta las reglas que tiene programadas.
El smart contract como máquina expendedora
Una de las comparaciones más sencillas para un smart contract es la máquina expendedora. Cuando nos acercamos a ella, no tenemos que negociar con un vendedor. Introducimos el importe correcto, elegimos el producto y la máquina, según sus reglas, entrega la mercancía.
dinero + selección del producto = entrega del producto
Si introducimos poco dinero, la condición no se cumple y la máquina no realiza la operación solicitada. Si las condiciones se cumplen, no hace falta que otra persona decida manualmente si debemos recibir el producto.
El smart contract funciona de forma parecida. La diferencia está en que, en lugar de una máquina física, tenemos un programa almacenado en la blockchain y, en lugar de una lata de refresco, el resultado puede ser, por ejemplo, la transferencia de una criptomoneda, la emisión de un token o la ejecución de una operación financiera.
El smart contract no decide. Ejecuta.
Qué problemas resuelven los smart contracts
En el sistema financiero o comercial tradicional solemos necesitar alguna forma de intermediario.
Imaginemos una operación entre dos personas que no se conocen. Una debe pagar el dinero y la otra entregar después un determinado activo. Surge un problema básico de confianza.
¿Quién debe cumplir primero su parte del acuerdo?
Precisamente por eso, en el mundo clásico existen bancos, bolsas, depositarios, empresas de pagos u otras instituciones que controlan las reglas, custodian los fondos y garantizan la liquidación de las transacciones.
El smart contract permite trasladar parte de ese papel a un programa.
Imaginemos, por ejemplo, el intercambio de un activo digital por 1 000 USDC. El comprador deposita 1 000 USDC en el smart contract. El vendedor deposita el activo digital requerido. El smart contract verifica si se cumplen ambas condiciones. Si es así, envía el activo al comprador y los USDC al vendedor.
En ese caso, ninguna de las partes tiene que confiar ciegamente en que la otra vaya a cumplir realmente su compromiso tras recibir los fondos. Las reglas de liquidación forman parte del programa.
Esto, naturalmente, no significa que los smart contracts hayan eliminado por completo a los intermediarios. Pero sí pueden automatizar algunas actividades que antes requerían un gestor o una institución independiente.

Ethereum y la blockchain programable
Bitcoin admite cierta lógica programable, pero su función principal sigue siendo la transferencia segura y la conservación de valor digital.
Ethereum amplió notablemente esta idea. Su blockchain fue diseñada para poder ejecutar programas de carácter más general. Hoy, los smart contracts en Ethereum pueden escribirse, por ejemplo, en lenguajes de programación como Solidity o Vyper y, una vez desplegados, son ejecutados por la red Ethereum.
Por ejemplo, un usuario deposita ETH en un protocolo de préstamos, el smart contract calcula el valor de la garantía, permite tomar prestado un stablecoin contra ella y después comprueba de forma continua si la garantía sigue cumpliendo las condiciones exigidas.
Precisamente esta programabilidad creó la base de gran parte del ecosistema actual de aplicaciones descentralizadas.
Usar smart contracts tiene un coste
Aunque un smart contract puede automatizar parte del proceso, su ejecución no es gratuita.
Cada operación realizada por la blockchain requiere ciertos recursos de cálculo. En Ethereum, el coste de ese trabajo se denomina gas.
Es decir, el usuario no paga solo por una transferencia clásica de ETH. También se paga una comisión al interactuar con los smart contracts. Desplegar un nuevo smart contract es en sí mismo una transacción en la blockchain y suele requerir más gas que una simple transferencia de criptomoneda.
Por eso, los costes de las distintas operaciones pueden variar mucho. Una simple transferencia de un token puede exigir menos trabajo de cálculo que una operación compleja en una aplicación financiera descentralizada que, durante una sola transacción, se comunica con varios smart contracts diferentes.
Precisamente los costes más altos y la capacidad limitada de la red principal están entre las razones del desarrollo de las redes Layer 2, que permiten procesar muchas operaciones de forma más eficiente y barata.
Qué ha surgido gracias a los smart contracts
Exchanges descentralizados
En un exchange de criptomonedas clásico, el sistema de negociación lo opera una empresa concreta. Un exchange descentralizado, o DEX, puede gestionar parte de ese proceso mediante smart contracts.
El usuario, por ejemplo, conecta su monedero, elige el token que quiere intercambiar y confirma la transacción. El smart contract realiza entonces el intercambio según sus reglas y determina, por ejemplo:
- – cómo se calcula el precio,
- – cuántos tokens recibe el usuario,
- – cuál es el importe de la comisión,
- – cómo se gestiona la liquidez,
- – a dónde se enviarán los fondos.
Así, el intercambio en sí no tiene por qué producirse dentro de una base de datos operada por un único exchange, sino a través de reglas registradas en la blockchain.
DeFi
Aún más destacado es el papel de los smart contracts en las finanzas descentralizadas, es decir, en DeFi. Aquí los smart contracts pueden gestionar, por ejemplo:
- – préstamos,
- – garantías en criptomonedas,
- – intercambio de activos,
- – gestión de liquidez,
- – derivados,
- – pago de recompensas,
- – algunas formas de staking.
En un préstamo garantizado con criptomonedas, el smart contract puede fijar el valor mínimo de la garantía y, si cae por debajo del umbral establecido, iniciar automáticamente la liquidación. Así, las reglas no tienen que ser supervisadas manualmente por un empleado de una institución.
Stablecoins
Los smart contracts también son importantes para los stablecoins. Mediante un smart contract, un token puede crearse, transferirse entre direcciones o ser retirado de nuevo de la circulación.
En algunos sistemas de stablecoins más descentralizados, los smart contracts gestionan además la garantía en criptomonedas y comprueban automáticamente si su valor sigue siendo suficiente.
El stablecoin es un activo. El smart contract es una de las herramientas que puede gestionar las reglas de su funcionamiento.
NFT
También los NFT se basan normalmente en smart contracts. El contrato puede definir:
- – cuántos NFT existen,
- – a quién pertenece un token concreto,
- – cómo puede transferirse,
- – qué datos identificativos están asociados a él,
- – qué reglas se le aplican.
La imagen, la música u otro medio no tienen por qué estar almacenados íntegramente dentro del propio smart contract. Pero el contrato sí puede constituir el registro en la blockchain de la propiedad de ese token y de las reglas de su transferencia.
Tokenización de activos
Los smart contracts también son relevantes en la tokenización. Bajo determinadas condiciones, un token en la blockchain puede representar una participación en otro activo o un determinado derecho económico. Puede tratarse, por ejemplo, de:
- – un bono,
- – un fondo,
- – una materia prima,
- – un inmueble,
- – otro instrumento financiero.
El smart contract puede entonces gestionar, por ejemplo, las transferencias del token, los permisos de cada usuario o la forma de repartir determinados pagos.
Aquí, sin embargo, es importante distinguir entre el token en la blockchain y el derecho que se supone que representa. El smart contract puede gestionar el token, pero la relación jurídica con el activo real sigue dependiendo de la estructura concreta del producto y de la normativa vigente.
Los smart contracts no son solo cosa de criptomonedas
El principio del smart contract también puede aprovecharse fuera de las aplicaciones puramente cripto.
IBM describe los smart contracts como una forma de automatizar procesos basados en la lógica de «si o cuando se cumple una determinada condición, ejecuta una acción concreta». Entre los posibles usos menciona, por ejemplo, la liberación de fondos, el registro de eventos o el inicio del siguiente paso de un proceso de trabajo.
Un principio similar puede utilizarse, por ejemplo, en la cadena de suministro. Imaginemos el transporte de determinada mercancía. El sistema puede registrar información sobre cada fase del transporte. Tras confirmarse la entrega, puede desencadenarse automáticamente el siguiente proceso, por ejemplo la liberación del pago o el cambio de estado del pedido.
IBM cita ejemplos de sistemas basados en blockchain utilizados en el seguimiento de productos farmacéuticos, en la gestión de relaciones entre proveedores y clientes o en el ámbito del comercio internacional.

Los smart contracts como LEGO digital
Una de las propiedades más interesantes de los smart contracts es su capacidad de cooperar entre sí.
En una blockchain pública, las aplicaciones y los smart contracts pueden comunicarse con contratos ya desplegados y aprovechar sus funciones de forma parecida a unas interfaces de software abiertas. Este principio se denomina componibilidad, es decir, la capacidad de combinarse.
Lo más sencillo es imaginar cada smart contract como una pieza de LEGO. Cada pieza puede cumplir una función determinada. Una gestiona un stablecoin. Otra, un exchange descentralizado. Una tercera concede préstamos. Una cuarta obtiene datos de precios.
El desarrollador de una nueva aplicación no tiene que crear todas esas funciones desde cero. Puede usar algunos smart contracts ya existentes como piezas de construcción.
Imaginemos, por ejemplo, una aplicación para la gestión automática de una cartera de criptomonedas. Esta puede:
- – utilizar un stablecoin creado por otro protocolo,
- – obtener el precio de un activo de un oracle,
- – intercambiar un token a través de un exchange descentralizado,
- – y después depositar los fondos en otro protocolo DeFi.
Todo ello puede producirse a través de varios smart contracts interconectados.
Precisamente la componibilidad es una de las razones por las que el ecosistema de aplicaciones descentralizadas puede crecer tan rápido.
Pero tiene también su otra cara. Si una aplicación depende de varios smart contracts más, un problema en uno de ellos puede propagarse. La ventaja de la interconexión se convierte así al mismo tiempo en un nuevo tipo de riesgo.
El smart contract no ve el mundo real
Un smart contract sabe manejar muy bien la información que existe directamente en la blockchain. Puede averiguar, por ejemplo:
- – cuántos tokens posee una determinada dirección,
- – si se ha producido una transacción concreta,
- – cuántos fondos están depositados en otro contrato,
- – en qué estado se encuentra una determinada aplicación blockchain.
Sin embargo, por sí solo no puede saber, de forma estándar, qué ocurre fuera de la blockchain. No sabe, por ejemplo:
- – cuál es el precio actual del oro,
- – si hoy llueve,
- – quién ha ganado un partido,
- – cuál es el tipo de cambio EUR/USD,
- – si un envío ha llegado realmente,
- – si una empresa ha cumplido una determinada obligación.
Si un smart contract necesita trabajar con datos ajenos a la blockchain, debe obtenerlos a través de otros sistemas. Aquí es donde entran en juego los oracles.
Oracles: el puente entre la blockchain y el mundo exterior
Un oracle proporciona al smart contract información que procede de fuera de la blockchain.
Imaginemos de nuevo una aplicación de préstamos. El usuario deposita ETH por valor de 10 000 dólares como garantía y toma prestado un stablecoin contra ellos. El smart contract conoce la cantidad de ETH depositada en el sistema. Pero no sabe automáticamente cuánto cuesta un ETH en dólares en ese momento.
Si debe vigilar el valor de la garantía, necesita un dato de precio externo. Ese dato puede suministrarlo un oracle. Gracias a ello, el smart contract puede trabajar, por ejemplo, con precios de activos financieros, resultados de eventos u otros datos procedentes de fuera de la blockchain.
Pero con ello surge un nuevo problema.
¿Qué ocurre si el oracle proporciona un valor erróneo?
Un smart contract puede estar programado a la perfección y aun así ejecutar una acción equivocada si recibe datos de entrada incorrectos.
Por ejemplo, un precio erróneo de un activo puede llevar a que el sistema de préstamos liquide una posición que en circunstancias normales no habría sido liquidada.
A este problema se le suele llamar oracle problem. Por eso, la seguridad del sistema no depende únicamente del propio smart contract, sino también de la calidad y la fiabilidad de los datos que utiliza.
El smart contract hace lo que está en el código
Una de las mayores ventajas de los smart contracts es la previsibilidad: si el contrato tiene reglas fijadas con firmeza, las ejecuta sin tomar decisiones propias. Al mismo tiempo, esa es una de sus mayores debilidades. El programa no sabe qué pretendía el desarrollador, solo qué programó realmente.
Por eso, en el desarrollo de smart contracts la seguridad es extraordinariamente importante. Estos programas gestionan a menudo activos digitales reales y un error puede tener consecuencias financieras inmediatas. De ahí que las pruebas, la revisión de seguridad y la auditoría desempeñen un papel clave antes de desplegar el contrato en la red principal.
La historia de las criptomonedas demuestra que un error en un smart contract no es solo un problema teórico.
Uno de los casos más conocidos fue el proyecto The DAO en 2016. Un fallo en su smart contract fue explotado para sustraer aproximadamente 3,6 millones de ETH. El suceso desencadenó después un debate muy complejo sobre si Ethereum debía reaccionar al incidente y de qué manera, y finalmente contribuyó a la división de la red en Ethereum y Ethereum Classic.
Este caso puso de manifiesto un principio muy importante. La blockchain puede ejecutar correctamente las reglas de un smart contract, pero si el error está en las propias reglas, la descentralización no lo corrige automáticamente.
La tecnología puede, por tanto, eliminar parte de la confianza operativa en un intermediario, pero al mismo tiempo aumenta la importancia de que el programa sea correcto.

Inmutabilidad, actualizaciones y control
Suele decirse que, una vez desplegado, un smart contract ya no se puede cambiar.
El principio básico es, efectivamente, que el código almacenado en una dirección concreta de la blockchain es por defecto inmutable. Esto ayuda a generar confianza en que nadie puede reescribir las reglas sin previo aviso.
Pero también tiene un inconveniente. Si aparece un fallo crítico en el contrato, no sería posible corregirlo con la misma facilidad con la que actualizamos una aplicación móvil corriente.
Por eso surgieron distintos mecanismos que permiten actualizar las aplicaciones. Por ejemplo, el llamado modelo proxy separa la parte del sistema con la que el usuario se comunica del programa que contiene la lógica actual. Los desarrolladores pueden entonces, bajo determinadas condiciones, desplegar una nueva versión de la lógica sin que cambie la dirección principal que utilizan los usuarios.
Pero con ello surge otro compromiso. Si alguien puede actualizar las reglas del sistema, tenemos que saber:
¿Quién tiene esa facultad?
- – una empresa,
- – una sola persona,
- – un grupo de desarrolladores,
- – una DAO,
- – un multisig.
Así pues, un smart contract puede estar técnicamente basado en una blockchain descentralizada, pero algunas de sus partes importantes pueden seguir dependiendo de un grupo relativamente pequeño de personas.
Una de las formas de reducir la dependencia de una sola persona o de una única clave privada es el multisig.
El multisig, o firma múltiple, exige varias firmas independientes para ejecutar una determinada acción.
Por ejemplo, una configuración de 3 de 5 significa que existen cinco claves autorizadas, pero para realizar la operación deben estar de acuerdo al menos tres.
El multisig se utiliza, por ejemplo, en la gestión de fondos o de algunas partes de una DAO. Su ventaja es que la pérdida o el compromiso de una sola clave no implica automáticamente la pérdida del control sobre todo el sistema.
Pero el multisig tampoco es sinónimo de descentralización. Si un cambio importante lo deciden, por ejemplo, tres personas de cinco, sigue tratándose de un grupo bastante reducido.
Por eso, en los smart contracts tiene sentido no fijarse solo en si utilizan blockchain, sino también en quién tiene realmente la facultad de modificar su funcionamiento.
Este es uno de los malentendidos más frecuentes.
Una aplicación puede funcionar sobre una blockchain descentralizada y aun así contener numerosos elementos centralizados:
- – la interfaz web la opera una sola empresa,
- – la actualización del contrato la controlan unos pocos administradores,
- – los datos los proporciona un número limitado de servicios de oracles,
- – el operador puede suspender algunas funciones,
- – una determinada clave puede modificar algunos parámetros del sistema.
Por eso no es preciso decir:
«Usa un smart contract, así que es descentralizado.»
La pregunta más correcta sería:
«¿Qué partes del sistema están descentralizadas y cuáles siguen exigiendo confianza en personas o infraestructuras concretas?»
El mismo principio se aplica a los stablecoins, a las redes Layer 2 y a otros ámbitos del mercado de criptomonedas.
Un smart contract no es automáticamente un contrato jurídico
La palabra «contract» puede dar la impresión de que se trata de un contrato jurídicamente vinculante. Pero un smart contract es, ante todo, un programa.
Puede ejecutar las condiciones de un determinado acuerdo, pero por sí mismo no tiene por qué constituir un contrato en el sentido jurídico clásico.
Ventajas de los smart contracts
Automatización: En cuanto se cumplen las condiciones definidas, el programa puede ejecutar el siguiente paso sin intervención manual.
Transparencia: En las blockchains públicas, a menudo es posible seguir las transacciones de un smart contract y, en muchos casos, también su código fuente publicado. Sin embargo, que el código sea público no significa todavía que sea fácil valorar si es correcto.
Programabilidad: Los smart contracts permiten crear reglas mucho más complejas que una simple transferencia de criptomoneda.
Componibilidad: Los distintos contratos pueden combinarse y utilizarse como piezas de construcción de otras aplicaciones.
Disponibilidad global: Una aplicación pública en blockchain puede estar disponible para usuarios con un monedero compatible con independencia del lugar desde el que se conecten a la red. En la práctica, sin embargo, el acceso puede verse condicionado, por ejemplo, por la interfaz de usuario concreta, la regulación u otros servicios que rodean al propio smart contract.
Qué riesgos tienen los smart contracts
Riesgo de error en el código: Si el contrato gestiona activos reales, incluso un pequeño fallo de programación puede tener consecuencias financieras muy graves.
Riesgo del oracle: Un smart contract puede ser correcto, pero trabajar con datos externos erróneos.
Riesgo del administrador: Si el sistema puede actualizarse o suspenderse, importa quién controla esas facultades.
Riesgo de otros smart contracts: La componibilidad implica que las aplicaciones pueden estar interconectadas. Un problema en un protocolo puede afectar al sistema que depende de él.
Riesgo de la blockchain: El smart contract depende además de la red blockchain sobre la que funciona, incluidas sus comisiones, su disponibilidad y sus propiedades de seguridad.
Riesgo del usuario: Las transacciones en blockchain suelen ser difíciles de revertir. El usuario puede interactuar con un contrato fraudulento, aprobar una transacción peligrosa, conceder al contrato permisos demasiado amplios para manejar sus tokens o utilizar una interfaz de usuario falsa.
Por eso, la seguridad de un smart contract no implica automáticamente la seguridad de todo el recorrido desde el usuario hasta la blockchain.
Qué comprobar antes de usar un smart contract
Es evidente que un usuario corriente no va a estudiar el lenguaje de programación Solidity antes de cada transacción. Aun así, existen unas cuantas preguntas sencillas que ayudan a entender mejor el riesgo de una aplicación.
¿Quién creó la aplicación? ¿Es conocido el equipo de desarrollo y tiene el proyecto un historial verificable?
¿Cuánto tiempo lleva funcionando el sistema? Una tecnología nueva puede resultar interesante, pero al mismo tiempo acumula un periodo más corto de funcionamiento real.
¿Han sido auditados los smart contracts? Una auditoría de seguridad no garantiza que el programa no contenga ningún fallo, pero puede revelar algunos riesgos significativos.
¿Se puede actualizar el contrato? Si es así, ¿quién puede realizar el cambio?
¿Existe una clave de administrador o un multisig? Es importante saber quién tiene la posibilidad de modificar partes importantes del sistema.
¿Utiliza la aplicación un oracle? Si es así, ¿de qué manera obtiene los datos externos?
¿De qué otros protocolos depende? La conexión con otros smart contracts puede aportar utilidad, pero también dependencias adicionales.
¿Qué ocurre en caso de problema? ¿Tiene el sistema la posibilidad de detener algunas funciones o realizar una actualización de seguridad?
Cuanto más compleja es una aplicación, más importante es comprender que su seguridad no la determina un único smart contract, sino toda la arquitectura que lo rodea.
Conclusión
En su base, el smart contract es un concepto sencillo: un programa almacenado en la blockchain recibe una entrada determinada, comprueba las reglas establecidas de antemano y ejecuta una acción concreta. Precisamente esta idea permitió a la blockchain ampliar su uso desde la transferencia de criptomonedas hasta las aplicaciones financieras, los activos digitales y los procesos automatizados.
Al mismo tiempo, los smart contracts no significan que del mundo digital hayan desaparecido la necesidad de confianza o el riesgo. La confianza simplemente se desplaza en parte. En lugar de preguntarnos únicamente «¿Puedo confiar en el intermediario?», debemos preguntarnos también «¿Puedo confiar en el código, en los datos que utiliza y en las personas que eventualmente pueden cambiar su funcionamiento?»
No basta, por tanto, con saber que un determinado servicio «usa smart contracts». Es más importante entender qué hace realmente el contrato, de dónde obtiene la información, quién tiene control sobre él y de qué depende. Los smart contracts no son automáticamente seguros ni descentralizados, pero sí son uno de los principales pilares de las aplicaciones blockchain actuales.
Este texto tiene únicamente fines informativos y educativos y no constituye asesoramiento en materia de inversión. Los criptoactivos son volátiles y puede perder la totalidad del importe invertido.
Author
Tomáš Bára
Stablecoins: dinero digital entre las criptomonedas y las finanzas tradicionales
Bitcoin y Ethereum demostraron lo volátil que puede ser el mundo de las criptomonedas. Precisamente por eso, una de las partes más importantes de este mercado pasó a ser los stablecoins – activos cuyo objetivo es no cambiar de valor. Descubre qué mantiene estable su precio, en qué se diferencian USDC, USDT o los tokens respaldados por criptomonedas, y qué reveló el colapso de TerraUSD.
Layer 1 y Layer 2: por qué blockchain necesita más capas
Bitcoin y Ethereum demostraron que blockchain puede funcionar sin una autoridad central. Pero con el crecimiento del número de usuarios llegaron los límites de capacidad y el aumento de las comisiones. Descubre cómo Layer 1 constituye una base segura y cómo soluciones Layer 2 como Lightning Network o los rollups le ayudan a gestionar más tráfico.