L’EVM (Ethereum Virtual Machine) è una macchina virtuale utilizzata da tutti i nodi della rete Ethereum. Il suo ruolo è quello di eseguire e validare gli smart contract, garantendo la coerenza dei dati tra i nodi e mantenendo la decentralizzazione della rete.
Similmente alla rete Bitcoin, dove i miner validano le transazioni, la rete Ethereum richiede nodi che validino gli smart contract, poiché tutte le operazioni su Ethereum, come prestiti, invii/ricezioni di token, ecc., avvengono tramite smart contract. Pertanto, tutti i nodi su Ethereum devono eseguire un’EVM per partecipare al processo di convalida e ricevere ricompense in ETH.
Nella rete Ethereum, l’EVM funziona come una sandbox, uno spazio isolato dove eseguire test, calcolare il codice senza influenzare la rete esterna. La macchina virtuale EVM è completamente isolata dalla rete Ethereum, garantendo che il processo di convalida dei nodi non influisca sul funzionamento della rete.
L’EVM può essere considerata il cuore della rete Ethereum.
Inoltre, le reti compatibili con EVM implementano smart contract con un linguaggio simile a quello di Ethereum: Solidity. Di conseguenza, queste reti richiedono una macchina virtuale in grado di validare Solidity, ovvero l’EVM.
Pertanto, una blockchain EVM è una rete che utilizza lo stesso linguaggio per gli smart contract e la stessa EVM di Ethereum.
Come funziona l’EVM
Il termine “registro distribuito” è utilizzato in reti come Bitcoin per descrivere le regole che consentono alla rete di funzionare in modo sicuro e senza problemi.
Tuttavia, nella rete Ethereum esiste una funzione che contribuisce allo sviluppo dell’ecosistema: gli smart contract.
Pertanto, il termine “registro distribuito” non si applica alla rete Ethereum, ma viene utilizzato un termine più complesso: distributed state machine (macchina a stati distribuita).
Per semplificare, lo stato di Ethereum è un insieme di dati sulla rete. E lo stato viene aggiornato ogni volta che un blocco viene aggiunto alla rete.
Ethereum può modificare lo stato da un blocco all’altro purché siano rispettate le regole della rete, analogamente a Bitcoin. E queste regole specifiche sono stabilite dall’EVM.
Gli stati della rete, inclusi gas e dati, si trovano all’interno dell’EVM.
Inoltre, poiché gli smart contract di Ethereum sono scritti nel linguaggio di programmazione Solidity, l’EVM converte il linguaggio di programmazione in bytecode.
Il bytecode è un codice macchina che memorizza gli opcode (operation code) affinché la rete Ethereum possa comprendere ed eseguire direttamente i comandi.
Cos’è una Blockchain EVM?
Una blockchain EVM è una rete che utilizza la macchina virtuale EVM e smart contract scritti in Solidity.
Gli sviluppatori di dApp e blockchain in genere non impiegano molto tempo a costruire la piattaforma, grazie alla similarità del linguaggio di programmazione. Ciò consente loro di creare facilmente dApp che possono interagire e connettersi a più chain con altre blockchain EVM.
Perché molti sviluppatori desiderano costruire blockchain compatibili con EVM?
Il motivo è che la blockchain di Ethereum è la rete con l’ecosistema più grande nel mercato crypto, con un volume di transazioni giornaliero di circa 2 miliardi di dollari e un TVL che ha raggiunto i 108 miliardi di dollari, pari al 65% del TVL del mercato DeFi.
Per una blockchain o una dApp, essere compatibile con EVM facilita la connessione al fertile terreno di Ethereum rispetto alle blockchain non-EVM.
Vantaggi delle Blockchain EVM
Per gli utenti
L’utilizzo di blockchain compatibili con EVM offre i seguenti vantaggi:
- Familiarità: La maggior parte delle reti compatibili con EVM offre un’esperienza e un’interfaccia utente simili. Operazioni come l’interazione con le dApp, l’approvazione dei token o la firma del wallet sono simili a quelle dell’ecosistema Ethereum.
- Nuove utility e prodotti: La familiarità degli utenti con l’interfaccia delle reti EVM e la nascita di nuove blockchain EVM offrono maggiori utility e prodotti. Di conseguenza, gli utenti hanno una scelta più ampia nelle attività finanziarie tra diverse reti.
Per gli sviluppatori
- Nessuna curva di apprendimento: Per le reti EVM, gli strumenti e il linguaggio per lo sviluppo di dApp sono simili, semplificando il lavoro degli sviluppatori che possono costruire più dApp su diverse reti EVM.
- Maggiore visibilità del brand: Le dApp già affermate su alcuni ecosistemi possono facilmente espandersi su blockchain con elevata compatibilità EVM, aumentando la visibilità del proprio brand.
Svantaggi delle Blockchain EVM
Le blockchain EVM presentano molti vantaggi e sono considerate una tecnologia “inseparabile” dalla rete Ethereum, ma nessuna tecnologia è perfetta e priva di svantaggi.
Ecco alcuni svantaggi delle Blockchain EVM:
Rischio di hacking
L’EVM consente alle dApp di essere implementate su diverse blockchain. Ma quando una dApp subisce un attacco cross-chain, come Poly Network nell’agosto 2021, le conseguenze possono essere devastanti per una dApp multi-rete e possono influenzare, anche se in misura minore, gli ecosistemi.
Inoltre, poiché le reti EVM utilizzano tutte lo stesso linguaggio di programmazione, Solidity, gli attacchi da parte di hacker che conoscono Solidity e trovano vulnerabilità nelle reti EVM sono ancora abbastanza frequenti.
Audit di numerosi smart contract su più blockchain
Per alcuni sviluppatori, adottare l’EVM per la propria blockchain o costruire dApp su blockchain EVM significa potersi espandere e connettersi ad altri ecosistemi EVM. Tuttavia, ogni blockchain richiede audit separati e il costo per l’audit degli smart contract è elevato.
Commissioni di transazione elevate
Per le blockchain EVM, le commissioni del gas sono spesso elevate quando aumentano le transazioni o i dati sulla rete. Ad esempio, su Ethereum, le commissioni di transazione quando la rete è poco attiva sono di circa 7-10 USD, mentre su reti come Avalanche o Starknet sono di circa 1-2 USD.
Cos’è una Non-EVM Blockchain?
Una blockchain non-EVM è una rete non compatibile con EVM. In particolare, le reti non-EVM utilizzano un linguaggio di programmazione per gli smart contract diverso da quello delle blockchain EVM. Ad esempio, Solana utilizza Rust e C++, Cardano utilizza Haskell/Plutus, ecc.
Con linguaggi di programmazione diversi, le reti EVM e non-EVM non possono interagire tra loro.
Vantaggi delle Non-EVM Blockchain
Ethereum è stata una delle prime reti a utilizzare smart contract con la macchina virtuale EVM. Le generazioni successive, come Solana, Sui, Aptos, ecc., hanno deciso di migliorare il linguaggio di programmazione EVM con linguaggi diversi. Di conseguenza, queste reti hanno prestazioni, velocità e scalabilità migliori rispetto alle blockchain EVM.
Svantaggi delle Non-EVM Blockchain
Nonostante le buone prestazioni e le basse commissioni di transazione, le blockchain non-EVM non possono espandersi sulle reti EVM.
Relazione tra commissioni del gas ed EVM
Secondo il yellow paper di Ethereum di Gavin Wood, l’EVM è quasi Turing complete, una macchina di Turing quasi perfetta, poiché l’unico svantaggio dell’EVM è che la sua capacità di calcolo dipende dal limite del gas.
Il gas è l’unità che rappresenta il costo di calcolo e l’EVM è responsabile dell’esecuzione di questi processi di calcolo. In altre reti EVM, il meccanismo di calcolo è simile a quello di Ethereum. Pertanto, più complessa è la transazione, più gas l’utente deve pagare affinché l’EVM la esegua.
Inoltre, gli utenti che utilizzano un wallet Web3 conoscono il termine “gas limit”, che rappresenta la quantità massima di gas che l’EVM utilizzerà per calcolare la transazione dell’utente. In genere, una transazione normale richiede almeno 21.000 gas limit. Se il gas limit è maggiore, la capacità di calcolo dell’EVM per quella transazione sarà più rapida.