EVM (Ethereum - Máquina Virtual)
A máquina virtual Ethereum (EVM) é uma máquina virtual baseada em pilha de Turing que executa contratos inteligentes na blockchain Ethereum.
A EVM é o ambiente de tempo de execução para contratos inteligentes no Ethereum. É um ambiente em sandbox, o que significa que o código executado dentro da EVM não pode acessar diretamente a rede, o sistema de arquivos ou outros processos na máquina host. Este design é crucial para a segurança, impedindo que contratos inteligentes maliciosos causem danos generalizados. A EVM opera em uma arquitetura baseada em pilha, executando instruções de bytecode. Cada nó Ethereum executa uma instância da EVM, garantindo que todos os nós concordem com o estado da blockchain após cada transação envolvendo um contrato inteligente. Este mecanismo de consenso é fundamental para a operação do Ethereum.
O design da EVM permite a execução de código arbitrário, tornando o Ethereum uma blockchain programável. Os desenvolvedores escrevem contratos inteligentes em linguagens de alto nível como Solidity, que são então compiladas em bytecode EVM. Este bytecode é o que a EVM executa. A EVM também gerencia o estado do Ethereum, incluindo saldos de contas, código de contrato e armazenamento. O gas é usado para pagar pelos recursos de computação e armazenamento usados por contratos inteligentes, impedindo ataques de negação de serviço.
graph LR
Center["EVM (Ethereum - Máquina Virtual)"]:::main
Pre_cryptography["cryptography"]:::pre --> Center
click Pre_cryptography "/terms/cryptography"
Rel_smart_contracts["smart-contracts"]:::related -.-> Center
click Rel_smart_contracts "/terms/smart-contracts"
Rel_solidity["solidity"]:::related -.-> Center
click Rel_solidity "/terms/solidity"
Rel_zkevm_zero_knowledge_ethereum_virtual_machine["zkevm-zero-knowledge-ethereum-virtual-machine"]:::related -.-> Center
click Rel_zkevm_zero_knowledge_ethereum_virtual_machine "/terms/zkevm-zero-knowledge-ethereum-virtual-machine"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Teste de conhecimento
🧒 Explique como se eu tivesse 5 anos
A EVM é como o motor dentro do computador [Ethereum](/pt/terms/ethereum). Ela lê instruções especiais (bytecode) de contratos inteligentes e executa as ações, como um chef seguindo uma receita passo a passo. Cada passo custa um pouquinho de dinheiro "gás" para garantir que o cozimento não demore para sempre.
🤓 Expert Deep Dive
A Máquina Virtual Ethereum (EVM) é um ambiente de execução determinístico, baseado em pilha, projetado para contratos inteligentes. Sua função principal é processar chamadas de transações e transições de estado na rede Ethereum. A especificação da EVM define um conjunto de opcodes, um tamanho de palavra de 256 bits e um mecanismo de agendamento de gas para medir o esforço computacional. O determinismo é fundamental; cada nó que executa o mesmo bytecode com o mesmo estado inicial deve chegar ao estado final idêntico. Isso é alcançado através de uma adesão rigorosa à função de transição de estado da EVM. O mecanismo de gas, embora evite o abuso de recursos, introduz restrições econômicas que impactam significativamente o design de dApps e a experiência do usuário, especialmente em relação aos custos de transação e limitações de throughput. As compensações arquitetônicas incluem as limitações inerentes de uma arquitetura baseada em pilha para computações complexas e os desafios na otimização da eficiência de gas para a execução de contratos inteligentes. As escolhas de design da EVM influenciaram projetos subsequentes de máquinas virtuais de blockchain, mas também destacam a busca contínua por maior desempenho e taxas de transação mais baixas, levando a inovações como soluções de Camada 2 e ambientes de execução alternativos.