Definizione
La Ethereum Virtual Machine (EVM) è l'ambiente di calcolo decentralizzato che esegue gli smart contract su Ethereum e sulle blockchain compatibili con EVM. Si tratta di una macchina virtuale basata su stack e isolata in un ambiente sandbox che elabora il bytecode generato da Solidity (e altri linguaggi per smart contract) in un ambiente deterministico e isolato: ogni nodo della rete Ethereum esegue lo stesso codice EVM e raggiunge risultati identici, consentendo un consenso senza necessità di fiducia. L'EVM è "Turing-completa", il che significa che in teoria può calcolare qualsiasi operazione computabile (con i limiti pratici imposti dalla quantità di gas necessaria per evitare cicli infiniti). Ogni operazione EVM (addizione, lettura/scrittura di dati, creazione di contratti, calcolo di hash) ha un costo in gas definito, garantendo che le risorse computazionali vengano retribuite. Il design dell'EVM ha avuto un'influenza straordinaria: blockchain come Polygon, BNB Chain, Avalanche C-Chain, Arbitrum, Optimism e decine di altre sono "compatibili con l'EVM", il che significa che gli smart contract di Ethereum possono essere implementati su di esse con modifiche minime o nulle, creando un vasto ecosistema di blockchain interoperabili che condividono gli strumenti di sviluppo e la base di conoscenze di Ethereum.
Origine e storia
| Data | Event |
| 2013 | Vitalik Buterin propone Ethereum: introduce il concetto di blockchain programmabile con macchina virtuale |
| luglio 2015 | Lancio della mainnet di Ethereum con EVM, la prima macchina virtuale blockchain per uso generale |
| 2016 | EVM esegue il contratto intelligente DAO; l'hacking DAO rivela la vulnerabilità di rientro di EVM |
| 2017 | EVM consente il boom delle ICO; migliaia di contratti token implementati |
| 2019 | L'aggiornamento di Constantinople ottimizza i costi del gas EVM per più codici operativi |
| 2020 | Estate DeFi: EVM elabora miliardi di dollari in volume DEX giornaliero |
| 2021 | Proliferano le catene compatibili con EVM: BSC, Polygon, Avalanche, Arbitrum raggiungono tutte la compatibilità |
| 2022 | EVM gestisce The Merge; transizioni da Da PoW a PoS senza cambiare il livello di esecuzione |
| 2023 | Oltre 20 catene compatibili con EVM; milioni di contratti intelligenti distribuiti a livello globale |
"L'EVM è per le criptovalute ciò che il browser web è stato per Internet: un runtime universale che ha reso le applicazioni decentralizzate accessibili a milioni di sviluppatori." — Comunità di sviluppatori di Ethereum
Come funziona
Architettura EVM:
Codice Solidity (.sol) ↓ Bytecode EVM del compilatore (solc) (ad esempio, 0x606060405234…) ↓ Distribuito all'indirizzo dello smart contract Ethereum: 0x1234…
Quando qualcuno chiama il contratto: Transazione → Ambiente di esecuzione EVM │ Stack (parole a 256 bit) Memoria (volatile, per chiamata) Archiviazione (persistente, on-chain) PC (contatore di programma) │ Codici operativi eseguiti uno per uno: PUSH1, ADD, SLOAD, SSTORE, CALL… │ Gas consumato per codice operativo │ Risultato: cambio di stato o ripristino
Catene compatibili con EVM (stesso bytecode): Ethereum → Polygon → Arbitrum → Optimism → Avalanche → BNB Chain “`
| Componente EVM | Descrizione | Persistenza |
| pila | Struttura LIFO a 256 bit per i calcoli | Per esecuzione |
| Memorie | Matrice di byte temporanea per il calcolo | Per esecuzione |
| Archiviazione | Archivio chiave-valore (32B → 32B) | Permanente (sulla catena) |
| Dati delle chiamate | Parametri di input dalla transazione | Sola lettura per chiamata |
| Code | Bytecode del contratto | Permanente (immutabile) |
In parole semplici
- Il computer di Ethereum: L'EVM è il motore che esegue gli smart contract: ogni nodo Ethereum esegue codice identico, garantendo che tutti siano d'accordo sui risultati dell'esecuzione del contratto.
- Tempo di esecuzione universale: Proprio come funziona il principio "scrivi una volta, esegui ovunque" di Java su qualsiasi Java Virtual Machine, i contratti Solidity vengono eseguiti su qualsiasi catena compatibile con EVM: distribuisci una volta, esegui ovunque.
- Gas come combustibile: Ogni istruzione eseguita dall'EVM costa gas: questo impedisce loop infiniti (si esaurirebbe il gas), garantisce che le risorse di rete vengano pagate e crea il modello economico di Ethereum.
- Deterministico: Se si forniscono gli stessi input all'EVM, questo produrrà sempre gli stessi output su ogni nodo nel mondo: questa certezza matematica è ciò che consente contratti intelligenti senza fiducia.
- L'ecosistema EVM: Polygon, Arbitrum, Optimism, BNB Chain e Avalanche eseguono tutti implementazioni EVM identiche: un contratto Uniswap distribuito su Ethereum può essere copiato e incollato su Polygon e funzionare in modo identico.
Esempi del mondo reale
| Scenario | Implementazione/Attuazione | Risultato |
| Implementazione del protocollo DeFi | Codice Solidity di Uniswap V3 → compilato in bytecode EVM → distribuito su Ethereum | Il contratto viene eseguito in modo identico su ciascuno dei 10,000+ nodi di Ethereum |
| Distribuzione multi-catena | Uniswap distribuisce lo stesso bytecode su Polygon, Arbitrum, Optimism | La compatibilità EVM significa che una base di codice serve milioni di utenti in tutte le catene |
| Arbitraggio sui prestiti flash | Il bot chiama Aave flashloan → EVM esegue 5 chiamate contrattuali → rimborsa il prestito in una transazione | Oltre 100,000 operazioni di gas eseguite atomicamente da EVM |
| Il DAO 2016 | Contratto DAO implementato su EVM; vulnerabilità di rientro sfruttata | EVM esegue il codice fedelmente: anche i bug nel codice vengono eseguiti fedelmente |
Vantaggi
| Vantaggio | Descrizione |
| Esecuzione deterministica | Stessi input = stessi output su ogni nodo; garanzia contrattuale senza fiducia |
| Sicurezza sandbox | EVM isola l'esecuzione del contratto: i bug non possono influenzare il sistema operativo del nodo |
| Compatibilità EVM | Ecosistema enorme; uno standard consente agli sviluppatori di puntare a oltre 20 catene |
| Strumenti per sviluppatori | Hardhat, Foundry, Remix, MetaMask, tutti costruiti attorno a EVM: un ricco ecosistema |
| Misurazione del gas | Costi delle risorse misurati con precisione prevengono gli abusi e creano sostenibilità economica |
Svantaggi e rischi
| Svantaggio | Descrizione |
| Prestazioni limitate | La progettazione basata su stack non è ottimizzata per la produttività, da qui la necessità di L2 |
| Overhead di parola di 256 bit | La dimensione della parola di 256 bit dell'EVM è inefficiente per molti calcoli (ad esempio, curve crittografiche) |
| I costi di stoccaggio | Le operazioni SSTORE (scrittura su storage a catena) sono estremamente costose |
| Codici operativi limitati | Alcune crittografie moderne richiedono costose soluzioni alternative di precompilazione |
| Collo di bottiglia della compatibilità EVM | Le nuove catene spesso sacrificano l'innovazione per mantenere la compatibilità EVM |
Suggerimenti per la gestione del rischio:
- Comprendere che la compatibilità EVM significa che il codice è portabile ma non sicuro: sono richiesti audit per ogni distribuzione
- Le scritture di storage (SSTORE) costano circa 20,000 gas: ottimizza i contratti per ridurre al minimo lo storage on-chain
- Test su testnet EVM (Sepolia, Holesky) prima della distribuzione della mainnet; il comportamento EVM è identico
FAQ
D: Cos'è una blockchain compatibile con EVM?
A: Una blockchain che esegue la Ethereum Virtual Machine o un'implementazione compatibile, consentendo l'implementazione di smart contract Ethereum senza modifiche. Esempi: Polygon, BNB Chain, Avalanche C-Chain, Arbitrum, Optimism, Fantom, Cronos.
D: L'EVM è l'unica macchina virtuale con contratto intelligente?
R: No, le alternative includono Sealevel di Solana (esecuzione parallela), WASM (WebAssembly, utilizzato da Near, Cosmos Chains, Polkadot) e Move VM (Aptos, Sui). Ognuna di esse presenta diversi compromessi in termini di prestazioni e sicurezza.
D: Cosa sono gli opcode EVM?
R: Gli opcode EVM sono le istruzioni di base che l'EVM comprende: PUSH (aggiunge valore allo stack), ADD (aggiunge i primi due valori dello stack), SLOAD (legge l'archiviazione), SSTORE (scrive l'archiviazione), CALL (richiama un altro contratto), ecc. Ognuno ha un costo del gas definito.
D: Perché l'EVM non riesce a funzionare più velocemente?
R: L'esecuzione EVM è intrinsecamente sequenziale su L1: ogni nodo esegue tutte le transazioni per mantenere il consenso. Il parallelismo richiede architetture diverse (Sealevel di Solana, il futuro PBS/danksharding di Ethereum). I rollup L2 accelerano la produttività eseguendo l'EVM off-chain.
D: Cosa significa "equivalenza EVM" rispetto a "compatibilità EVM"?
R: La compatibilità EVM significa che la catena può eseguire la maggior parte del bytecode EVM con alcune modifiche. L'equivalenza EVM (rivendicata da alcuni Optimistic Rollup) significa che l'esecuzione è identica byte per byte all'EVM di Ethereum, senza alcuna modifica necessaria.
Suggerimento UPay: comprendere che la maggior parte delle principali blockchain "non Ethereum" sono in realtà compatibili con EVM significa che le tue competenze in Solidity relative ai contratti intelligenti sono trasferibili a Polygon, Arbitrum, Avalanche e BNB Chain: investire nelle competenze di sviluppo Ethereum ti dà accesso all'intero ecosistema EVM.
Disclaimer: Questo contenuto ha solo scopo didattico e non costituisce consulenza finanziaria o di investimento. Si consiglia di condurre sempre le proprie ricerche prima di prendere qualsiasi decisione finanziaria.
UPay — Rendere la crittografia enciclopedica









