La Máquina Virtual de Ethereum (EVM) es el motor que hace posible que los contratos inteligentes funcionen igual en toda la red. En esta guía te explico qué es, cómo trabaja por dentro y por qué es tan importante para el ecosistema Ethereum.
¿Qué es la Máquina Virtual de Ethereum (EVM)?
La Máquina Virtual de Ethereum (EVM, por sus siglas en inglés) es un entorno virtual descentralizado que ejecuta código de forma consistente y segura en todos los nodos de Ethereum. Dicho de forma sencilla, es el "motor" que hace posible que los contratos inteligentes funcionen igual en cualquier parte de la red.
Cuando un desarrollador escribe un contrato inteligente, por ejemplo en Solidity, el código se compila a bytecode. Ese bytecode es lo que la EVM entiende y ejecuta.
De libro contable a máquina de estados
Se suele describir una blockchain como un libro contable distribuido. Esa analogía funciona para Bitcoin, pero se queda corta con Ethereum. Ethereum es una máquina de estados distribuida: su estado almacena las cuentas y los saldos, además de un estado de máquina que cambia de bloque en bloque según reglas predefinidas y puede ejecutar código arbitrario.
Las reglas concretas para pasar de un estado a otro las define la EVM.
La función de transición de estado
La EVM se comporta como una función matemática: dada una entrada, produce una salida determinista. Por eso Ethereum puede describirse con la fórmula Y(S, T) = S':
- S es el estado actual de la red.
- T es un conjunto de transacciones válidas.
- S' es el nuevo estado resultante.
Esta propiedad es fundamental. Si todos los nodos ejecutan las mismas transacciones sobre el mismo estado, todos llegan exactamente al mismo resultado, y así la red se mantiene sincronizada sin una autoridad central.
Transacciones y contratos
Las transacciones son instrucciones firmadas criptográficamente por las cuentas. Existen dos tipos: las que generan llamadas a mensajes y las que crean contratos.
Al crear un contrato, se genera una nueva cuenta de contrato que contiene el bytecode compilado del contrato inteligente. Cada vez que otra cuenta le envía una llamada, se ejecuta ese bytecode.
Cómo trabaja la EVM por dentro
Máquina de pila
La EVM funciona como una máquina de pila con una profundidad de 1024 elementos. Cada elemento es una palabra de 256 bits, un tamaño elegido por su compatibilidad con la criptografía de 256 bits, como los hashes Keccak-256 o las firmas secp256k1.
Opcodes
El bytecode se ejecuta como una serie de opcodes, instrucciones básicas que realizan operaciones estándar de pila como XOR, AND, ADD o SUB. Además, la EVM incluye operaciones específicas de blockchain, como ADDRESS, BALANCE o BLOCKHASH.
Memoria, almacenamiento y almacenamiento transitorio
La EVM maneja tres espacios de datos:
- Memoria: es temporal y no persiste entre transacciones.
- Almacenamiento (storage): cada contrato tiene el suyo, y forma parte del estado global de la red. Es persistente.
- Almacenamiento transitorio: es un almacén de clave-valor por transacción, al que se accede con los opcodes TSTORE y TLOAD. Se mantiene durante las llamadas internas de una misma transacción y se borra al final de esta, lo que permite compartir datos temporales con un menor costo de gas.
El gas: el combustible de la EVM
Cada operación consume recursos, y por eso tiene un costo. Los nodos ejecutan la EVM para correr los contratos inteligentes y usan el gas para medir el esfuerzo computacional de cada operación, lo que permite asignar los recursos de forma eficiente y proteger la seguridad de la red.
El gas cumple dos funciones importantes:
- Evita que alguien sature la red con cálculos infinitos o maliciosos.
- Hace que los usuarios paguen en proporción a los recursos que consumen.
Si una transacción se queda sin gas antes de terminar, la ejecución se detiene.
Implementaciones de la EVM
Los clientes de ejecución de Ethereum incluyen su propia implementación de la EVM, y también existen implementaciones independientes: Py-EVM (Python), evmone (C++), @ethereumjs/evm (JavaScript) y revm (Rust). Todas deben respetar la especificación descrita en el Yellowpaper de Ethereum.
Esta estandarización favorece la diversidad de clientes y, con ella, la resiliencia de la red. Además, muchas otras blockchains y redes de capa 2 han adoptado la EVM como base, por lo que se las llama "compatibles con EVM". Esto permite que los desarrolladores reutilicen el mismo código y las mismas herramientas en varias redes.
¿Por qué es importante la EVM?
- Seguridad y consenso: garantiza que todos los nodos obtengan el mismo resultado.
- Programabilidad: permite crear aplicaciones descentralizadas (dApps), finanzas descentralizadas (DeFi), NFT y organizaciones autónomas (DAO).
- Ecosistema abierto: su estandarización facilita herramientas, auditorías y portabilidad entre redes.
Conclusión
La EVM es el corazón de Ethereum. Convierte la red en una computadora global y descentralizada que ejecuta contratos inteligentes de forma determinista, con el gas como mecanismo de control. Entenderla es el primer paso para desarrollar, auditar o simplemente usar con criterio las aplicaciones del ecosistema Ethereum.
Preguntas frecuentes sobre la EVM
¿La EVM es una máquina virtual real?
No es una máquina física. Es un entorno de ejecución que corre dentro del software de cada nodo de Ethereum.
¿En qué lenguajes se programa para la EVM?
El más usado es Solidity. El código se compila a bytecode antes de ejecutarse.
¿Qué pasa si me quedo sin gas?
La ejecución de la transacción se detiene.
Fuentes
- Ethereum.org. Ethereum Virtual Machine (EVM). Documentación para desarrolladores: https://ethereum.org/en/developers/docs/evm/
- Ethereum.org. Ethereum Virtual Machine (EVM) (versión en Markdown): https://ethereum.org/developers/docs/evm.md
- Ethereum.org. Ethereum Virtual Machine (EVM) (contenido de la documentación): https://ethereum.org/content/developers/docs/evm/index.md
Las explicaciones sobre Solidity y las redes compatibles con EVM provienen de conocimiento general, no de las fuentes citadas.

