Ethereum Virtual Machine (EVM)

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

Novità & Eventi speciali