Un contrato inteligente es un programa almacenado en una blockchain que ejecuta automáticamente los términos escritos en su código cuando una transacción u otro contrato lo invoca. Un programa es un conjunto de instrucciones informáticas. Una blockchain es un registro compartido al que se agregan nuevas entradas una tras otra. Una transacción es una solicitud enviada a una blockchain.
¿Dónde reside un contrato inteligente?
Un contrato inteligente se almacena en una dirección dentro de una blockchain. Una dirección es un identificador en una blockchain para un usuario o para un contrato inteligente. El código del contrato, junto con los datos que ese código conserva, se guardan en esa dirección. El estado es la información que mantiene un contrato inteligente, de modo que esos datos sigan disponibles la próxima vez que el contrato se ejecute.
Desplegar un contrato inteligente significa colocar su código en la blockchain mediante una transacción que transporta ese código. Tras el despliegue, el contrato tiene una dirección a la que se pueden enviar transacciones.
¿Cómo funcionan los contratos inteligentes?
Un contrato inteligente se ejecuta cuando una transacción u otro contrato invoca una de sus funciones. Invocar una función significa pedirle a un contrato que la ejecute. Una función es una parte del código del contrato que tiene un nombre. Una transacción enviada a la dirección del contrato indica el nombre de la función y aporta sus entradas, es decir, los datos que la función necesita.
Los nodos de la red blockchain ejecutan el código de un contrato inteligente. Un nodo es una computadora que ejecuta el software de una red blockchain y se conecta con otras computadoras de la red. Cuando el código modifica el estado del contrato, ese cambio queda registrado en la blockchain.
Una cuenta es un registro en una blockchain que tiene una dirección y un saldo. Un saldo es la cantidad de la moneda nativa de la blockchain que posee una cuenta. Una moneda nativa es la unidad propia de una blockchain, como BTC en Bitcoin.
En Ethereum, tal como lo describe su documentación, existen dos tipos de cuenta. Una cuenta de usuario está controlada por una persona mediante una clave privada. Una clave privada es un número secreto que firma transacciones. Una cuenta de contrato contiene código, y un contrato inteligente se almacena en la dirección de una cuenta de contrato.
Una llamada a un contrato inteligente proviene de una cuenta de usuario o de otro contrato. En este artículo, la expresión “autoejecutable” describe a un contrato cuyo código lleva a cabo sus instrucciones una vez que se lo invoca. No describe a un contrato que inicia su ejecución por sí mismo, ya que una cuenta de contrato solo puede enviar mensajes en respuesta a la recepción de una transacción.
Un ejemplo ficticio ilustra una sola llamada. Los contratos reales difieren en lo que almacenan y en cómo están escritas sus funciones. En este ejemplo, un contrato mantiene una cantidad de unidades para cada una de dos direcciones. Una unidad es un conteo que el contrato conserva. La dirección A tiene 100 unidades, y la dirección B tiene 20 unidades.
- Una cuenta de usuario envía una transacción que invoca la función
transferdel contrato, solicitando mover 30 unidades de la dirección A a la dirección B. - Los nodos ejecutan el código del contrato.
- El código verifica que la dirección A tenga al menos 30 unidades.
- El código reduce la dirección A a 70 unidades y aumenta la dirección B a 50 unidades.
- El cambio queda registrado en la blockchain. Las dos direcciones suman 120 unidades en total, tanto antes como después de la llamada.
¿Qué puede almacenar y hacer un contrato inteligente?
Un contrato inteligente puede mantener un saldo de la moneda nativa de la blockchain, al igual que una cuenta de usuario. Un contrato inteligente también puede conservar registros en su estado, como un conteo por cada dirección, y una llamada a una de sus funciones puede modificar esos registros.
Un contrato inteligente puede invocar a otros contratos, lo que permite que el código de un contrato utilice las funciones de otro. Una función puede registrar un evento, que es un aviso en la blockchain que un software externo a ella puede monitorear.
Un contrato de token es un contrato inteligente que crea y da seguimiento a tokens. A diferencia de una moneda nativa, un token es una unidad emitida en una blockchain ya existente a través de un contrato inteligente. Un estándar de token es una especificación publicada de las funciones y eventos que ofrece un contrato de token.
¿Qué determina el comportamiento de un contrato inteligente, y puede cambiar?
El código almacenado en la dirección de un contrato inteligente determina lo que el contrato hace. Un contrato inteligente lleva a cabo lo que su código indica, lo cual puede diferir de lo que su autor pretendía. El código en la dirección de un contrato inteligente no cambia después de que el contrato se despliega, pero un contrato puede diseñarse de modo que el comportamiento que ejecuta pueda reemplazarse.
Un contrato inteligente puede diseñarse de manera que su comportamiento pueda reemplazarse. Un contrato puede almacenar la dirección de un segundo contrato y reenviarle las llamadas. Si el primer contrato fue diseñado para permitir que la dirección almacenada cambie, el comportamiento que se ejecuta puede modificarse mientras la dirección del primer contrato permanece igual. Un contrato diseñado de esta forma también puede definir qué cuentas tienen permiso para cambiar la dirección a la que reenvía las llamadas.
¿Cuál es el equivalente de un contrato inteligente en Bitcoin?
Bitcoin, una red de criptomonedas cuya moneda es BTC, tiene un equivalente en los scripts. Un script es una regla, escrita en el lenguaje de scripts de Bitcoin, que debe cumplirse antes de que una cantidad de BTC pueda moverse. Hasta octubre de 2026, la documentación de Bitcoin describe su lenguaje de scripts como deliberadamente limitado. BTCFi, abreviatura de finanzas nativas de Bitcoin, es una etiqueta que distintas partes usan para referirse a la actividad financiera construida en torno a BTC, incluyendo contratos inteligentes y otros diseños.
¿Qué es una revisión de código de un contrato inteligente?
Una revisión de código de un contrato inteligente es una verificación del código del contrato realizada por personas distintas de su autor, quienes leen el código en busca de errores. Una auditoría es una forma de realizar una revisión de código. Una revisión puede pasar por alto errores, por lo que no garantiza que el código de un contrato esté libre de fallos.
¿Cuáles son los límites de un contrato inteligente?
Sin un oráculo, un contrato inteligente solo puede trabajar con los datos de la blockchain en la que se ejecuta. Un oráculo es un servicio que envía datos externos a un contrato. Los datos externos son datos que no se almacenan en la blockchain del contrato, como una fecha externa o un resultado externo.
Un error en el código de un contrato inteligente ya desplegado puede permanecer allí, a menos que el contrato haya sido diseñado para que su comportamiento pueda reemplazarse.
27 de noviembre de 2025











