Máquina virtual
En blockchain, una máquina virtual es el entorno de ejecución estandarizado que cada nodo ejecuta para procesar los contratos inteligentes de forma idéntica: un sistema informático definido por software cuyo comportamiento se especifica con tanta precisión que miles de máquinas independientes, con hardware y sistemas operativos distintos, calculan exactamente los mismos resultados a partir de las mismas transacciones. Este determinismo es lo que permite que una red descentralizada se ponga de acuerdo sobre el resultado de ejecutar código arbitrario.
La VM de una blockchain está deliberadamente limitada en comparación con un equipo informático de uso general: está aislada en un entorno protegido (sandbox; los contratos no pueden acceder a la máquina anfitriona, a archivos ni a internet), medida (cada instrucción cuesta gas, lo que evita bucles infinitos y spam) y es determinista (sin aleatoriedad ni lecturas del reloj que puedan diferir entre nodos). El código del contrato se compila al bytecode de la VM y se almacena on-chain; cuando una transacción llama al contrato, la VM de cada nodo ejecuta ese bytecode y aplica los mismos cambios de estado. La Ethereum Virtual Machine (EVM) es, con diferencia, la más extendida, hasta el punto de que muchas cadenas competidoras la implementan por compatibilidad, pero existen alternativas: Solana ejecuta una VM basada en eBPF que corre programas compilados desde Rust, y varias cadenas más nuevas usan VM basadas en WebAssembly o la VM del lenguaje Move (Aptos, Sui), diseñada en torno a un manejo más seguro de los activos.
Un error común es creer que la máquina virtual es un único equipo que funciona en algún lugar; es una especificación que cada nodo validador ejecuta de forma local y redundante, y esa redundancia —que todos vuelvan a ejecutarlo todo— es precisamente la razón de que el cómputo on-chain sea caro y de que diseños de escalado como los rollups intenten demostrar la ejecución una sola vez en lugar de repetirla en todas partes.