Cómo funcionan los contratos inteligentes en Ethereum

Cómo funcionan los contratos inteligentes en Ethereum

oct, 16 2025

Calculadora de costos de gas en Ethereum

Calcula el costo de despliegue de tu contrato

El costo de despliegue depende de la complejidad del contrato y el precio actual del gas en la red Ethereum. Los contratos simples suelen costar entre 0.01 y 0.05 ETH, mientras que contratos complejos pueden superar los 0.2 ETH.

Resultados estimados

Costo estimado en ETH: 0.00

Costo estimado en USD: $0.00

Estos valores son estimaciones. El costo real puede variar según la congestión de la red.

Los contratos inteligentes Ethereum están cambiando la forma en que se ejecutan los acuerdos digitales: son programas que se activan solo cuando se cumplen condiciones definidas, sin necesidad de intermediarios. Si alguna vez te has preguntado cómo se logra esa automatización total, este artículo te lo explica paso a paso, con ejemplos reales y consejos prácticos para que puedas comprender y, si te animas, crear tu propio contrato.

¿Qué es un contrato inteligente?

Un contrato inteligente es un fragmento de código auto‑ejecutable que vive en la blockchain y que ejecuta acciones cuando se cumplen condiciones predefinidas. A diferencia de un contrato tradicional, no necesita firma física ni un árbitro: la propia red verifica que los requisitos están presentes y, entonces, lleva a cabo la acción.

Componentes clave de la red Ethereum

Para entender cómo funciona un contrato, hay que conocer los elementos que lo rodean.

  • Ethereum es una plataforma pública que permite ejecutar aplicaciones descentralizadas mediante su propia máquina virtual.
  • Ethereum Virtual Machine (EVM) es el entorno de ejecución que interpreta el bytecode de los contratos y garantiza que todos los nodos lleguen al mismo resultado.
  • Los gas son unidades que miden el coste computacional de cada operación; los usuarios pagan gas en ether para que la red procese sus transacciones.
  • Las variables especiales como msg.sender o block.timestamp permiten al contrato conocer quién lo llama y en qué momento.

Lenguajes de desarrollo

Los contratos se escriben principalmente en dos lenguajes diseñados para la EVM.

  • Solidity es el lenguaje más usado, similar a JavaScript, con una sintaxis orientada a objetos.
  • Vyper es una alternativa más simple y segura, inspirada en Python, que evita constructos complejos.

Aunque el código fuente se escribe en Solidity o Vyper, antes de enviarlo a la blockchain debe compilarse a bytecode, el lenguaje que entiende la EVM.

Estructura típica de un contrato

Un contrato suele contener tres bloques principales:

  1. Variables de estado: datos que quedan almacenados en la blockchain (p.ej., balances, contadores).
  2. Funciones públicas: métodos que cualquiera puede invocar, a menudo con restricciones mediante require().
  3. Funciones de solo lectura (view o pure): permiten consultar el estado sin gastar gas.

Ejemplo rápido en Solidity:

pragma solidity ^0.8.0;

contract Cuenta {
    uint256 private balance;

    function depositar() external payable {
        require(msg.value > 0, "Debe enviar ether");
        balance += msg.value;
    }

    function obtenerBalance() external view returns (uint256) {
        return balance;
    }
}
Desarrollador programando en Solidity mientras envía una transacción en testnet.

Despliegue y coste de gas

Subir un contrato a la red es, en esencia, una transacción que lleva código bytecode y paga gas. El proceso típico incluye:

  1. Seleccionar una testnet como Sepolia para probar sin gastar ether real.
  2. Compilar el contrato con la versión adecuada del compilador.
  3. Firmar y enviar la transacción mediante una cartera como MetaMask una extensión de navegador que gestiona claves y firma transacciones.
  4. Esperar a que la transacción sea incluida en un bloque; una vez confirmada, el contrato recibe una dirección permanente.

El precio del gas varía según la congestión de la red. Un contrato simple puede costar entre 0.01 y 0.05ETH, mientras que contratos complejos con muchos métodos pueden superar los 0.2ETH.

Interacción y composabilidad

Una de las mayores virtudes de Ethereum es que los contratos son públicos y pueden llamarse entre sí como si fueran APIs abiertas. Esto permite crear estructuras como:

  • Un DAO organización autónoma descentralizada gobernada por contratos que ejecuta decisiones de votación automáticamente.
  • Contratos que despliegan otros contratos (patrón de factory), facilitando la creación masiva de tokens o NFTs.

Esta "composabilidad" es la base de DeFi: Un contrato de préstamo llama a otro contrato de intercambio para liquidar una posición, todo sin intervención humana.

Limitaciones y el papel de los oráculos

Los contratos no pueden acceder directamente a datos externos. Si necesitas saber el precio de ETH en dólares, debes recurrir a un oráculo servicio que lleva información fuera de la cadena a la blockchain de forma verificable. Los oráculos más usados son Chainlink y Band Protocol.

Otra limitación técnica es el tamaño máximo del bytecode (24KB). Cuando el contrato supera ese límite, se vuelve imposible de desplegar sin dividirlo en módulos. Patrones como el "Diamond" permiten combinar varios contracts pequeños bajo una única interfaz.

Estándares ERC más populares

Los contratos también definen interfaces estándar que facilitan la interoperabilidad.

Comparación rápida entre ERC‑20 y ERC‑721
Característica ERC‑20 ERC‑721
Tipo de token Fungible (intercambiable) No fungible (único)
Identificador Balance total por cuenta ID único por token (uint256)
Uso típico Criptomonedas, utilidades DeFi Arte digital, coleccionables, bienes virtuales

Implementar estos estándares es cuestión de heredar la interfaz adecuada y respetar sus funciones obligatorias.

Reunión holográfica de una DAO con oráculos y capas de rollup.

Buenas prácticas y seguridad

Los contratos son inmutables: cualquier error queda grabado para siempre. Por eso, se recomienda:

  • Usar require() para validar entradas y evitar estados no deseados.
  • Limitar el uso de tx.origin, que es vulnerable a ataques de phishing.
  • Aplicar patrones como "checks‑effects‑interactions" para prevenir re‑entrancy.
  • Auditar el código con herramientas como Slither o MythX antes de lanzar a mainnet.
  • Desplegar primero en una testnet y simular escenarios con frameworks como Hardhat o Foundry.

En caso de vulnerabilidad, la única salida es migrar a un contrato nuevo y orientar a los usuarios a usar la nueva dirección.

Futuro de los contratos inteligentes

Ethereum está evolucionando rápidamente: la implementación de sharding y rollups de capa 2 reducen drásticamente el coste de gas, lo que abre la puerta a contratos más complejos y a una mayor adopción en sectores como la cadena de suministro o los seguros.

Preguntas frecuentes

Preguntas frecuentes

¿Necesito saber programar para usar un contrato inteligente?

No obligatoriamente. Puedes interactuar con contratos ya existentes a través de carteras como MetaMask o interfaces web, pero crear tu propio contrato sí requiere conocimientos de Solidity o Vyper.

¿Qué es el gas y por qué es tan caro a veces?

El gas mide la cantidad de cómputo que una operación necesita. Cuando la red está congestionada, el precio del gas sube porque los mineros priorizan transacciones con mayor tarifa.

¿Puedo cambiar un contrato una vez desplegado?

No. La inmutabilidad es una de sus principales ventajas. Si necesitas actualizar lógica, la práctica habitual es crear un nuevo contrato y redirigir a los usuarios.

¿Qué diferencia hay entre una testnet y la mainnet?

En una testnet utilizas ETH de prueba que no tiene valor real, lo que permite experimentar sin riesgo financiero. La mainnet es la red real donde cada operación tiene coste real.

¿Cómo obtengo datos del mundo real dentro de un contrato?

A través de un oráculo. El oráculo verifica la información externa (precios, resultados deportivos, etc.) y la entrega al contrato de forma confiable.

1 Comment

  • Image placeholder

    Fran Salvador

    octubre 16, 2025 AT 09:06

    Claro, porque confiar en un contrato que nunca puedes modificar suena como la mejor idea.

Escribir un comentario