Máquina Virtual (VM)
16/04/2026
Máquina virtual (VM) no contexto de blockchain é o ambiente de execução isolado que executa o código de contratos inteligentes de forma determinística em cada nó da rede. Cada nó completo executa independentemente o mesmo bytecode com os mesmos inputs e deve chegar ao mesmo estado — sem esse determinismo, o consenso seria impossível.
Isso é diferente de uma máquina virtual sistema como VMware ou VirtualBox, que emula um computador inteiro. Uma VM de blockchain é mais próxima da Máquina Virtual Java: um interpretador específico para um bytecode específico, sem sistema de arquivos, sem rede e sem operações não determinísticas.
Por que blockchains precisam de uma VM
Executar código nativo seria rápido, mas inseguro: um bug ou um loop infinito intencional em um contrato poderia travar todos os nós de uma vez. Uma VM oferece:
- Isolamento — o código do contrato não pode ler arquivos, abrir sockets ou chamar o sistema operacional do host
- Determinismo — mesmo input, mesmo output, em cada nó e em cada hardware
- Medição — cada operação custa gas; quando o gas acaba, a execução é interrompida, prevenindo ataques de negação de serviço
- Portabilidade — o mesmo bytecode roda em qualquer implementação da especificação da VM
EVM (Máquina Virtual Ethereum)
A EVM é a VM de blockchain mais amplamente utilizada. É uma máquina baseada em pilha com um tamanho de palavra de 256 bits, projetada para corresponder ao tamanho de primitivas criptográficas como hashes Keccak-256.
- Solidity ou Vyper compilam para bytecode EVM
- Cada opcode tem um custo de gas; os mais complexos (SSTORE, CALL, keccak) custam mais
- Cadeias compatíveis com EVM (Polygon, Arbitrum, Optimism, BNB Chain, Avalanche C-Chain, Base) executam o mesmo bytecode sem modificações, razão pela qual ferramentas como MetaMask e Hardhat funcionam em todas elas
SVM (Máquina Virtual Solana)
A VM da Solana é baseada em eBPF (Filtro de Pacotes Berkeley Estendido), originalmente uma tecnologia do kernel Linux, adaptada como sBPF. Os contratos são escritos em Rust ou C e compilados para bytecode sBPF.
- Sealevel — o runtime paralelo da Solana — executa transações não sobrepostas simultaneamente, usando listas de acesso a contas declaradas antecipadamente
- Baseada em registradores (diferente do design baseado em pilha da EVM), mais próxima da arquitetura física de CPU
VMs baseadas em WASM
WebAssembly (WASM) é um bytecode portátil originalmente projetado para navegadores, cada vez mais adotado como alvo de VM de blockchain. Cadeias que usam VMs WASM incluem NEAR, Polkadot (via o runtime de pallet-contracts do Substrate), Cosmos CosmWasm e Internet Computer.
WASM é independente de linguagem — os desenvolvedores podem usar Rust, C++, AssemblyScript ou Go — e se beneficia de um ecossistema de ferramentas maduras fora do cripto.
VMs de Camada-2
Rollups herdam ou estendem VMs existentes:
- Optimism, Arbitrum, Base — Equivalente a EVM
- zkSync Era — Compatível com EVM via um zkEVM personalizado
- Starknet — executa a Cairo VM, construída especificamente para provas STARK
- Scroll, Polygon zkEVM, Linea — zkEVMs equivalentes a EVM no nível de bytecode
