banner
Centro notizie
Vasta competenza nella vendita e nella produzione

Cos'è una Ethereum Virtual Machine (EVM) e come funziona?

Sep 10, 2023

Costituendo la spina dorsale della Blockchain di Ethereum, EVM fornisce agli sviluppatori un ambiente runtime per creare DApp e altre applicazioni.

Ether (ETH), che è la seconda criptovaluta più grande in termini di capitalizzazione di mercato, è popolare tra gli investitori in criptovaluta grazie al suo token ETH nativo. Tuttavia, il suo linguaggio di programmazione nativo Solidity e l'Ethereum Virtual Machine (EVM) sono determinanti nell'adulazione che riceve dalla comunità degli sviluppatori. In effetti, la blockchain di Ethereum continua ad attrarre sviluppatori di applicazioni decentralizzate (DApp) grazie alla sua flessibilità, alla vasta gamma di strumenti di sviluppo disponibili e all'ampia base di utenti della piattaforma.

Costituendo il nucleo dell'architettura della blockchain, l'EVM è il programma che esegue il codice dell'applicazione o i contratti intelligenti, come vengono chiamati, fornendo loro un ambiente di runtime che gira sulla rete Ethereum. Inoltre, l'EVM è Turing-complete e può quindi eseguire qualsiasi programma codificato in qualsiasi linguaggio di programmazione, consentendo così agli sviluppatori di creare facilmente contratti intelligenti e DApp personalizzati per il fiorente spazio Web3.

Oltre a queste importanti funzionalità, EVM ha accesso a tutti i nodi della rete, gestisce l'esecuzione di contratti intelligenti e gestisce efficacemente tutte le transazioni sulla blockchain di Ethereum, rendendola una delle macchine virtuali più potenti oggi esistenti.

Concettualizzata nel 2013 dal programmatore Vitalik Buterin, la rete Ethereum deve il suo fenomenale successo come blockchain preferita per gli sviluppatori DApp alla Ethereum Virtual Machine (EVM) progettata da Gavin Wood durante il suo mandato in Ethereum. Scritto in C++ e utilizzando il compilatore LLVM Project, EVM è una speciale macchina a stati che funziona continuamente e le cui operazioni immutabili determinano lo stato di ciascun blocco nella blockchain di Ethereum.

L'EVM non solo governa ciò che i nodi possono o non possono fare al registro distribuito gestito dalla blockchain di Ethereum, ma definisce anche le regole specifiche per cambiare stato da un blocco all'altro. Quest’ultima funzionalità è ciò che abilita la funzionalità del contratto intelligente per cui Ethereum è diventato famoso.

Per capire cosa fa una macchina virtuale Ethereum, è necessario esaminare ciascuna delle diverse funzioni che svolge per garantire il buon funzionamento della rete Ethereum. Per ogni input che riceve, l'EVM produce un output di natura deterministica e segue una funzione matematica nel senso più semplice.

Funzionando come una macchina stack che spinge valori transitori da e verso uno stack pushdown, l'EVM ha una profondità di 1024 elementi, ciascuno dei quali è una parola a 256 bit. Mantiene inoltre una memoria temporanea sotto forma di un array di byte, che cambia tra due transazioni sulla blockchain di Ethereum. I codici dei contratti intelligenti che sono stati compilati vengono eseguiti dall'EVM sotto forma di una raccolta di 140 codici operativi standard, mentre vengono implementate anche altre operazioni sullo stack specifiche della blockchain.

Pertanto, l'EVM ha uno stato macchina che è volatile per natura durante l'elaborazione di qualsiasi transazione e uno stato globale o mondiale che contiene informazioni relative ai diversi account mantenuti sulla blockchain di Ethereum. Tutte le azioni sono governate dal codice EVM, che di per sé ha attraversato diverse iterazioni dal lancio della rete Ethereum nel 2015, portando all'esistenza di diverse implementazioni dell'EVM attualmente in uso.

Infatti, l'EVM è responsabile del mantenimento di un livello di astrazione tra migliaia di nodi Ethereum e il codice di esecuzione, agendo come una funzione che fornisce risultati coerenti senza divulgare molti dettagli ai client o ai nodi.

L'EVM ha alimentato in modo affidabile tutte le applicazioni in esecuzione sulla rete Ethereum senza che siano stati segnalati tempi di inattività importanti. Per gli sviluppatori, l'EVM funge da programma generale che esegue programmi eseguibili più piccoli noti come contratti intelligenti in Ethereum, fornendo loro la libertà di scrivere questi contratti intelligenti in una varietà di linguaggi di programmazione tra cui Solidity, Vyper, Python e Yul, tra gli altri. altri.