Ethereum Virtual Machine (EVM)

Ethereum Virtual Machine (EVM)

Ethereum Virtual Machine (EVM).
Per sapere cosa è un la blockchain Ethereum e come funziona, rimandiamo all’articolo dedicato.
Come abbiamo visto, Ethereum è una blockchain di servizi che permette l’esecuzione di codice (scritto in linguaggio Solidity). Tale codice viene scritto su blockchain, e restituisce un output a seguito di un input che in genere viene inviato tramite DApp (applicazioni decentralizzate).
Le DApp non sono altro che normali web app, che tramite librerie web3, riescono a comunicare con Ethereum, quindi a leggere e scrivere sulla blockchain.

 

Ethereum Virtual Machine (EVM)

Ma cosa esegue questo codice degli smart contract? Ad eseguire tale codice è la EVM, ossia la Ethereum Virtual Machine.
Una macchina virtuale è una macchina che si trova ad un livello di astrazione più alto rispetto al sistema operativo del calcolatore. Tale software crea un ambiente virtuale che emula un calcolatore fisico a sè stante.
Ad essere eseguito è il codice in Solidity, quindi codice di alto livello, cioè molto lontano dal codice binario. Il codice in Solidity infatti, viene trasformato in bytecode, è infine processato dalla EVM appunto.
La EVM è  Turing-complete, pertanto a livello teorico è in grado di eseguire ogni tipologia di calcolo.

I nodi della rete Etehreum, che non sono altro che computer, sono provviste della virtual machine di Ethereum, cioè di un software in grado di leggere ed eseguire le istruzioni degli smart contract.
In questo modo la blockchain Ethereum possiamo considerarla un pò come un grande calcolatore globale decentralizzato.
Chiunque può utilizzare questa potenza di calcolo, semplicemente utilizzando le librerie web3 che consentono l’interazione con la blockchain. Il prezzo da pagare per tale funzionamento consiste nel pagamento di una fee tramite il così detto “gas”. Il gas misura il lavoro computazionale svolto dalla rete. Pertanto interagire con uno smart contract complesso, comporterà una maggiore spesa per l’utente.

Ogni smart contract, non solo è codice che viene eseguito dalla EVM, ma ha anche una propria memoria, una sorta di piccolo database in cui fare storage dei dati. Ciò consente agli smart contract di diventare anche una sorta di database, e alla EVM di accedere a tali contenuti durante l’esecuzione del bytecode dello smart contract relativo.

 

NOTE

Qui è possibile visionare la documentazione ufficiale della Ethereum Virtual Machine: https://docs.soliditylang.org/en/v0.8.9/introduction-to-smart-contracts.html
Per ogni domanda non esitate a chiederci una consulenza gratuita tramite la pagina contatti.

Stefano MeloniBy Stefano MeloniNovembre 10, 2021