Skip to main content

O que é a EVM

Nota: Este documento é uma tradução automática da versão original em inglês.

O que é a EVM

A EVM (Ethereum Virtual Machine) é o motor de computação que alimenta o Ethereum e um grande número de outras blockchains. É o ambiente de software que executa smart contracts — programas autoaplicáveis armazenados na blockchain. Quando um desenvolvedor escreve um smart contract em Solidity (ou em outra linguagem compatível com EVM), o compila e o implanta em uma chain, a EVM é o que de fato roda esse código.

Cada nó em uma rede compatível com EVM roda a mesma máquina virtual com as mesmas regras. É isso que torna os smart contracts determinísticos: dada a mesma entrada e o mesmo estado, cada nó produz a mesma saída. Não há ambiguidade, não há o problema de "funciona na minha máquina". A EVM garante que cada participante da rede concorde sobre o resultado de cada computação.

Em resumo: a EVM é o motor de execução padronizado para smart contracts no Ethereum e nas chains compatíveis com EVM. Ela define como o código roda, como o estado é armazenado e como o gas é consumido — criando um runtime comum que funciona de forma idêntica em todos os nós.

Como funciona a EVM

Execução de bytecode

Os smart contracts não são armazenados on-chain como código-fonte legível por humanos. Antes do deploy, o código-fonte (tipicamente escrito em Solidity) é compilado em bytecode — um conjunto de instruções de baixo nível que a EVM entende. Cada instrução é um opcode: uma operação básica como "somar dois números", "armazenar um valor na memória", "carregar dados do armazenamento" ou "transferir tokens".

Quando uma transação aciona um smart contract, cada nó validador na rede:

  1. Carrega o bytecode do contrato a partir do estado da blockchain.
  2. Executa os opcodes sequencialmente, seguindo a especificação da EVM.
  3. Atualiza o estado da blockchain com base no resultado da execução.
  4. Cobra gas por cada opcode executado.

Como cada nó roda o mesmo bytecode com as mesmas regras, todos chegam ao mesmo resultado. Essa execução determinística é a base da computação sem confiança (trustless) on-chain.

Gas

Cada opcode tem um custo de gas — uma unidade de medida que representa o esforço computacional necessário para executar aquela instrução. O gas serve a dois propósitos:

  • Medição de recursos — o gas previne loops infinitos e garante que cada computação consuma uma quantidade limitada de recursos da rede. Um contrato que tenta rodar para sempre esgotará seu gas limit e reverterá.
  • Mecanismo de taxas — os usuários pagam gas fees (denominadas no token nativo da chain) para compensar os validadores por executar suas transações. Operações mais complexas custam mais gas.

Os custos de gas são definidos pela especificação da EVM e são os mesmos em todas as chains compatíveis com EVM (embora o preço do gas no token nativo varie por rede).

Estado e armazenamento

A EVM mantém um estado global — um mapeamento de endereços (tanto contas de usuário quanto contas de contrato) para seus saldos, código e armazenamento atuais. O armazenamento de smart contract é organizado como um armazenamento de chave-valor: cada contrato tem seu próprio espaço de endereço de 256 bits onde pode ler e escrever dados persistentes.

As operações de armazenamento (escrever e ler do estado persistente) estão entre as operações mais caras da EVM em termos de gas, porque afetam os dados que cada nó precisa armazenar permanentemente.

Arquitetura baseada em pilha

A EVM é uma máquina de pilha (stack machine): ela usa uma pilha do tipo último a entrar, primeiro a sair (LIFO) para manter valores intermediários durante a computação, em vez de registradores nomeados. Os opcodes empurram valores para a pilha, operam sobre os elementos do topo e empurram os resultados de volta. Esse design é simples e bem especificado, mas difere das arquiteturas baseadas em registradores usadas pela maioria das CPUs tradicionais e por algumas máquinas virtuais de blockchain mais novas (como o SBF/eBPF da Solana).

Por que a EVM importa

O padrão que se tornou um ecossistema

A importância da EVM se estende muito além do próprio Ethereum. Como a especificação da EVM é aberta e bem documentada, muitas outras blockchains a adotaram — seja rodando a EVM nativamente, seja implementando uma camada de execução compatível com EVM. Isso criou um ecossistema compartilhado:

O que é compartilhado O que isso significa na prática
Linguagem de smart contract Os desenvolvedores escrevem Solidity uma vez e fazem deploy em qualquer chain EVM
Ferramentas de desenvolvimento Hardhat, Foundry, Remix e outras ferramentas funcionam em todas as chains EVM
Compatibilidade de carteiras MetaMask e outras carteiras EVM funcionam simplesmente adicionando uma nova rede
Token standards ERC-20 (tokens fungíveis), ERC-721 (NFTs) e outros padrões são portáveis entre chains
Auditoria e segurança Auditores de segurança, ferramentas de verificação formal e boas práticas se transferem entre chains EVM
Conhecimento do desenvolvedor Um desenvolvedor que conhece Solidity e EVM pode trabalhar em Ethereum, Polygon, Avalanche, BNB Chain, Arbitrum, Base e dezenas de outras redes

Essa portabilidade é o motivo pelo qual a compatibilidade com EVM se tornou a escolha padrão para novas blockchains que querem atrair desenvolvedores e aplicações rapidamente. É mais barato e mais rápido aderir a um ecossistema existente do que construir um do zero.

Deploy multichain

Para projetos — incluindo projetos cripto relacionados a IA — a compatibilidade com EVM significa que um smart contract implantado no Ethereum pode ser implantado no Polygon, na C-Chain da Avalanche, no Arbitrum, na Base ou na BNB Smart Chain com modificação mínima. Isso possibilita:

  • Presença multichain — um projeto pode implantar o mesmo contrato de token e a mesma lógica central em várias chains para alcançar diferentes bases de usuários.
  • Migração de chain — se um projeto precisa migrar para uma chain com taxas mais baixas ou maior throughput, a compatibilidade com EVM reduz o custo da migração.
  • Componibilidade — em qualquer chain EVM, os contratos podem interagir entre si usando as mesmas interfaces e padrões, permitindo a componibilidade DeFi, integrações de tokens e infraestrutura compartilhada.

Limitações

A EVM foi projetada para a execução de smart contracts de propósito geral, não para cargas de trabalho intensivas em computação. As limitações principais incluem:

  • Sem ponto flutuante nativo — a EVM usa apenas inteiros de 256 bits. A aritmética de ponto flutuante (essencial para a maioria das computações de IA/ML) precisa ser emulada, o que é extremamente caro em gas.
  • Restrições de gas — o gas limit do bloco limita a computação total por bloco. Operações complexas (como a multiplicação de matrizes para inferência de IA) são proibitivamente caras dentro da execução da EVM.
  • Execução sequencial — a EVM processa transações sequencialmente dentro de um bloco. A execução paralela, que as CPUs modernas usam para desempenho, não é suportada nativamente (embora algumas chains compatíveis com EVM mais novas experimentem a execução paralela da EVM).
  • Custo de armazenamento — armazenar grandes quantidades de dados on-chain é caro. Os modelos de IA, datasets e computações intermediárias são grandes demais para o armazenamento on-chain.

Essas limitações explicam por que os projetos cripto relacionados a IA tipicamente rodam cargas de trabalho de IA off-chain e usam contratos EVM on-chain apenas para coordenação, pagamentos, governança e registro de resultados.

Onde isso aparece nos cartões de projeto do DecAIHub

Nos cartões de projeto do DecAIHub, a EVM aparece em:

  • Type — EVM indica que o projeto opera em uma chain compatível com EVM. Isso informa ao leitor que o projeto usa smart contracts baseados em Solidity e o ferramental padrão do Ethereum.
  • Main chain — a chain específica compatível com EVM é listada (Ethereum, Polygon, Avalanche, Arbitrum, Base, BNB Smart Chain, etc.). Todas elas compartilham a execução da EVM.
  • Token standard — as chains compatíveis com EVM usam os token standards do Ethereum. ERC-20 (tokens fungíveis), ERC-721 (NFTs) e ERC-1155 (multi-token) são os mais comuns. Esses padrões são específicos do ecossistema EVM.
  • Smart contracts — se os smart contracts de um projeto são verificados em um block explorer, o leitor pode inspecioná-los. Os contratos EVM são escritos em Solidity (ou Vyper) e compilados para bytecode EVM.

Uma classificação Type: EVM fornece um contexto útil sobre o ferramental e o ecossistema do projeto, mas, por si só, não diz nada sobre a qualidade da IA do projeto ou a necessidade de seu token.

O que a compatibilidade com EVM por si só não prova

  • A compatibilidade com EVM não prova capacidade de IA. A EVM roda smart contracts; os modelos de IA rodam em GPUs. Um projeto estar em uma chain EVM nada diz sobre se ele tem um AI component genuíno.
  • Fazer deploy em uma chain EVM não torna um projeto único. O mesmo contrato pode ser implantado em dezenas de chains compatíveis com EVM. A escolha do deploy é uma decisão de infraestrutura, não um diferencial.
  • Smart contracts verificados não provam que o componente off-chain funciona. Um projeto pode ter código on-chain limpo e auditado e ainda não ter qualquer pipeline de IA funcional por trás dele. Os componentes on-chain e off-chain precisam ser avaliados separadamente.
  • O ferramental do ecossistema EVM não reduz a necessidade de evidências. Ter suporte ao MetaMask, uma listagem em block explorer e tokens ERC-20 é infraestrutura padrão — não é evidência de tecnologia, inovação ou qualidade.
  • A execução da EVM não é execução de IA. Rodar uma rede neural dentro da EVM é proibitivamente caro para qualquer modelo não trivial. Quando um projeto diz "AI on-chain" em uma chain EVM, verifique exatamente o que roda on-chain versus off-chain.

Não confundir com

  • Ethereum — o Ethereum é uma rede blockchain específica. A EVM é a máquina virtual que o Ethereum (e muitas outras chains) usam. "EVM" refere-se ao motor de execução; "Ethereum" refere-se à rede, a seus validadores e a seu estado.
  • Blockchain non-EVM — blockchains como Solana, chains Cosmos e Bittensor usam máquinas virtuais diferentes (SVM, CosmWasm, runtimes customizados). Elas não são compatíveis com EVM, o que significa que os contratos Solidity e o ferramental EVM não funcionam nelas nativamente.
  • Smart contract — um smart contract é um programa que roda na EVM. A EVM é o motor; o smart contract é o código que ela executa. Os smart contracts também existem em chains non-EVM, usando linguagens e runtimes diferentes.
  • Solidity — Solidity é a linguagem de programação mais popular para smart contracts EVM, mas não é a própria EVM. Vyper é outra linguagem compatível com EVM. A EVM executa o bytecode compilado independentemente de qual linguagem-fonte o produziu.

Perguntas frequentes

O que significa "compatível com EVM"?

Uma blockchain é compatível com EVM se ela consegue executar bytecode EVM — a forma compilada dos smart contracts Solidity — usando o mesmo conjunto de opcodes e as mesmas regras de execução do Ethereum. Na prática, isso significa que os desenvolvedores podem implantar os mesmos contratos em várias chains compatíveis com EVM, usar as mesmas ferramentas (Hardhat, Foundry, MetaMask) e contar com os mesmos token standards (ERC-20, ERC-721). Exemplos de chains compatíveis com EVM incluem Polygon, Avalanche C-Chain, BNB Smart Chain, Arbitrum e Base.

Os modelos de IA podem rodar dentro da EVM?

Em teoria, qualquer computação pode ser expressa como opcodes da EVM. Na prática, rodar modelos de IA não triviais dentro da EVM é proibitivamente caro. A EVM carece de suporte nativo a ponto flutuante, tem limites estritos de gas por bloco e cobra altos custos de gas por operações complexas. Um único forward pass mesmo por uma pequena rede neural custaria ordens de magnitude mais em gas do que qualquer aplicação prática poderia justificar. É por isso que os projetos cripto relacionados a IA rodam os modelos off-chain e usam a EVM apenas para lógica de coordenação, pagamento e verificação.

Por que tantas blockchains adotam a EVM?

Efeitos de rede. O Ethereum foi a primeira grande plataforma de smart contracts, e seu ecossistema de desenvolvedores — conhecimento de Solidity, ferramental, expertise em auditoria, suporte de carteiras e token standards — cresceu ao longo de anos. Uma nova blockchain que adota a EVM ganha acesso imediato a todo esse ecossistema. Os desenvolvedores não precisam aprender uma nova linguagem, os projetos podem implantar contratos existentes e os usuários podem se conectar com carteiras familiares. Construir um ecossistema concorrente do zero é muito mais caro e incerto. A compatibilidade com EVM é um atalho pragmático para a adoção.

Qual é a diferença entre compatível com EVM e equivalente à EVM?

Compatível com EVM significa que a chain consegue rodar bytecode EVM e suporta os mesmos opcodes, mas pode haver pequenas diferenças de comportamento (por exemplo, custos de gas, precompiles ou comportamento de opcode em casos extremos). Equivalente à EVM significa que a chain replica o comportamento da EVM do Ethereum no nível do opcode — cada operação produz o mesmo resultado que produziria no Ethereum. A equivalência à EVM é uma afirmação mais forte: significa que até contratos complexos e ferramental que dependem do comportamento preciso da EVM devem funcionar sem modificação. O Polygon zkEVM, por exemplo, visa a equivalência à EVM.

Referências externas

  • Ethereum.org — Ethereum Virtual Machine — documentação oficial da Ethereum Foundation explicando a arquitetura da EVM, os opcodes e o modelo de execução.
  • Ethereum Yellow Paper — a especificação formal do protocolo Ethereum, incluindo o conjunto completo de opcodes da EVM e a semântica de execução.
  • EVM Codes — referência interativa para os opcodes da EVM com custos de gas, descrições e um playground para testar a execução de bytecode.

Ver também