La macchina virtuale di Ethereum (EVM)
Migliori Ethereum Virtual Machine (EVM) è un ambiente virtuale decentralizzato che esegue il codice in modo coerente e sicuro su tutti i nodi Ethereum. I nodi eseguono l'EVM per eseguire contratti intelligenti, utilizzando "gas"per misurare lo sforzo computazionale richiesto per le operazioni, garantendo un'allocazione efficiente delle risorse e la sicurezza della rete.
Prerequisiti
Per comprendere l'EVM è necessaria una conoscenza di base della terminologia informatica comune, come byte, memoria e stack. È inoltre utile avere familiarità con la crittografia e i concetti blockchain come le funzioni hash e gli alberi di Merkle.
Dal registro contabile alla macchina a stati
Le blockchain come Bitcoin vengono spesso descritte come "registri distribuiti", che mantengono una registrazione delle attività conformemente a una serie di regole che ne disciplinano le modifiche. Ad esempio, un indirizzo Bitcoin non può spendere più Bitcoin di quanti ne abbia ricevuti. Queste regole sono alla base di tutte le transazioni su Bitcoin e su molte altre blockchain.
Sebbene Ethereum abbia una propria criptovaluta nativa (Ether) con regole simili, supporta anche una funzionalità più potente: smart contractPer comprendere meglio questo concetto, Ethereum può essere descritto come una macchina a stati distribuita. Lo stato di Ethereum è una grande struttura dati che contiene non solo tutti i conti e i saldi, ma anche uno stato macchina che può cambiare da un blocco all'altro secondo regole predefinite, eseguendo codice macchina arbitrario. L'EVM definisce le regole per questi cambiamenti di stato.
Qual è la differenza tra EVM ed Ethereum?
Ethereum Ethereum è una piattaforma che permette alle persone di creare ed eseguire applicazioni su una rete decentralizzata di computer. Possiede una propria valuta digitale chiamata Ether (ETH), utilizzata per effettuare pagamenti sulla rete. Si può immaginare Ethereum come un gigantesco computer condiviso che chiunque può utilizzare per sviluppare ed eseguire le proprie applicazioni senza un'autorità centrale che lo controlli.
Migliori Ethereum Virtual Machine È come il motore all'interno di questo gigantesco computer. Assicura che tutte le applicazioni e gli smart contract (accordi automatizzati) funzionino allo stesso modo su ogni computer della rete. Per garantire equità ed efficienza, l'EVM utilizza un sistema chiamato "gas" per misurare la potenza di calcolo necessaria per ogni attività, assicurando che le risorse non vengano sprecate.
In termini semplici, Ethereum è l'intera piattaforma che ti permette di costruire e utilizzare app e contratti decentralizzati, mentre Ethereum Virtual Machine Fa parte della piattaforma che gestisce queste app e questi contratti, assicurando che tutto funzioni senza intoppi e in modo coerente su tutti i computer della rete. Questa è la differenza tra EVM ed Ethereum.
La funzione di transizione di stato di Ethereum
L'EVM si comporta come una funzione matematica: dato un input, produce un output deterministico. Questo può essere formalmente descritto come una funzione di transizione di stato:
\[ Y(S, T) = S' \]
Dato un vecchio stato valido \( S \) e un nuovo insieme di transazioni valide \( T \), la funzione di transizione di stato di Ethereum \( Y(S, T) \) produce un nuovo stato di output valido \( S' \).
Regione / Stato
In Ethereum, lo stato è una struttura dati enorme chiamata Merkle Patricia Trie modificato, che collega tutti gli account tramite hash e li riduce a un singolo hash radice memorizzato sulla blockchain.
Le transazioni
Le transazioni sono istruzioni firmate crittograficamente provenienti da account, classificate in due tipi: quelle che comportano chiamate di messaggi e quelle che comportano la creazione di contratti. La creazione di un contratto genera un nuovo account di contratto contenente il bytecode compilato dello smart contract. Quando un altro account effettua una chiamata di messaggio a questo contratto, ne esegue il bytecode.
Istruzioni per la macchina per la valutazione elettronica (EVM)
L'EVM opera come una macchina a stack con una profondità di 1024 elementi, ciascuno una parola a 256 bit, scelta per la compatibilità con la crittografia a 256 bit (come gli hash Keccak-256 o le firme secp256k1). Durante l'esecuzione, l'EVM mantiene una memoria transitoria (un array di byte indirizzabile a parole) che non persiste tra le transazioni. I contratti hanno un albero di memoria Merkle Patricia (un array di parole indirizzabile a parole) associato all'account e parte dello stato globale.
Il bytecode del contratto intelligente compilato viene eseguito come Ethereum Virtual Machine opcode, che eseguono operazioni standard sullo stack come XOR, AND, ADD, SUB, ecc., e operazioni specifiche della blockchain come ADDRESS, BALANCE e BLOCKHASH.
Implementazioni EVM
Tutte le implementazioni dell'EVM devono essere conformi alle specifiche del Yellow Paper di Ethereum. Nel corso della sua storia, l'EVM ha subito diverse revisioni, che hanno portato a molteplici implementazioni in vari linguaggi di programmazione, tra cui:
- Py-EVM (Python)
- evmone (C++)
- ethereumjs-vm (JavaScript)
- eEVM (C++)
- revm (Ruggine)
Queste implementazioni garantiscono che l'EVM rimanga coerente e sicuro su diverse piattaforme.