La Ethereum Virtual Machine, è uno dei pezzi chiave nel funzionamento del blockchain di Ethereum. La sua funzione è quella di consentire l'esecuzione di programmi o smart contract con lo scopo di implementare su detta blockchain una serie di funzionalità aggiuntive in modo che gli utenti possano goderne.

La Ethereum Virtual Machine o EVMÈ macchina virtuale che fa parte dell'ecosistema blockchain di Ethereum. È in grado di eseguire una vasta gamma di istruzioni che gli consentono una grande flessibilità nello svolgimento di diverse operazioni.

Tuttavia, per rendere la programmazione più semplice per questa macchina virtuale, un linguaggio di alto livello specializzato chiamato Solidity. Attraverso questo linguaggio di programmazione facilita la creazione di smart contract. Prima di tutto Solidity si trasforma in codici operativi (OP_CODES) e poi a un bytecode. Questo bytecode viene infine eseguito dall'EVM per eseguire le operazioni specificate in uno smart contract. Tutto ciò significa che l'EVM può funzionare come un vero computer, eseguendo dalle operazioni più semplici a quelle più complesse.

In breve, data la funzionalità decentralizzata di Ethereum e la sua capacità di archiviare contratti intelligenti nodi della rete, e che con EVM gli ordini programmati in questi contratti intelligenti possono essere eseguiti, Ethereum diventa un grande computer mondiale decentralizzato. Uno che è in grado di eseguire istruzioni che portano alla risoluzione di qualsiasi compito specifico. In effetti, può risolvere quasi tutti i problemi di calcolo e tutto ciò avviene all'interno della stessa rete Ethereum.

Tutte queste istruzioni sono scritte nei cosiddetti contratti intelligenti di Ethereum. Questi contratti sono un tipo di account che ha un proprio codice ed è abilitato dal momento in cui arrivano sulla blockchain. La cosa migliore è che per utilizzare il potenziale di EVM dobbiamo solo avere un po 'di etere e interagire con alcuni DApp, contratto intelligente o crea il nostro contratto. Non ci sono limitazioni, chiunque può sfruttare la potenza che EVM ha a disposizione.

Sembra incredibile e lo è, EVM è un enorme lavoro di sviluppo che ha richiesto enormi sforzi da persone di grande talento e che scoprirai di seguito.

Chi ha creato l'EVM?

Le menti dietro lo sviluppo di EVM sono Boschi di Gavin y Greg colvin. Gavin Woods è stato colui che ha creato il noto Carta gialla di Ethereum. In questo white paper vengono specificate le idee e le capacità iniziali dell'EVM. D'altra parte, Greg Colvin è conosciuto come il principale sviluppatore dell'EVM.

Queste due persone e il team che le ha accompagnate hanno permesso la creazione dell'EVM. Una tecnologia che ha trasformato Ethereum in un ecosistema unico all'interno delle altre tecnologie che utilizzano blockchain. Tutto grazie al fatto che EVM è parte integrante del funzionamento interno di Ethereum e rappresenta una vera innovazione nello sviluppo di queste tecnologie.

  • Gavin Woods creatore dell'EVM
  • Programmatore Greg Colvin EVM

Come funziona la Ethereum Virtual Machine (EVM)?

Per evitare che un programmatore attacchi la sicurezza della rete, l'EVM esegue un'astrazione completa del sistema. Gestione dell'accesso alle risorse del computer e limitazione delle loro azioni in un ambiente controllato o in una macchina virtuale. A sua volta, EVM semplifica lo sviluppo e l'aggiornamento delle applicazioni e delle funzionalità disponibili per le applicazioni decentralizzate.

L'EVM consente la progettazione e l'esecuzione di contratti intelligenti. Grazie anche a Solidity creare questi contratti intelligenti è molto semplice e gestibile. Sebbene lo stesso EVM non sia in grado di eseguire direttamente questo linguaggio, lo fa per mezzo di una tecnica nota come compilazione di istruzioni.

D'altro canto, Solidity è un linguaggio di programmazione di alto livello molto simile a JavaScript e C ++. Questo linguaggio è orientato alla creazione di contratti intelligenti. In questo modo, la maggior parte del codice sorgente dei contratti è scritto in questo linguaggio e viene quindi compilato in codici operativi comprensibili all'EVM.

L'EVM utilizza questi codici di operazione (OP_CODES) per eseguire attività specifiche. Queste limitazioni portano l'EVM a creare metodi di lavoro che gli permettano di svolgere le proprie operazioni, la più importante delle quali è la memoria dei contratti. Questa memoria viene utilizzata per archiviare informazioni a cui l'EVM può accedere rapidamente. D'altra parte, per memorizzare i dati a tempo indeterminato e renderli accessibili per future esecuzioni di contratti, è possibile utilizzare l'estensione immagazzinamento per contratto. Questo essenzialmente funge da database pubblico, da cui i valori possono essere letti esternamente senza dover inviare una transazione al contratto, cioè senza commissioni.

OP_CODES e Bytecode, le basi della Ethereum Virtual Machine

OP_CODES sono una parte molto importante ed essenziale dell'EVM. Questi codici operativi sono ciò che definisce le operazioni valide che l'EVM può eseguire. In EVM c'è la possibilità di eseguire fino a 256 OP_CODES differenti, sebbene al momento non ci sia questa quantità di codici definiti. Il motivo è che lo sviluppo EVM non ha richiesto la creazione di tali codici e gli sviluppatori sono attenti a includere nuovi codici a causa delle limitazioni nel loro numero.

Un semplice esempio di Solidity uno dei linguaggi usati per programmare per l'EVM

Un aspetto importante di OP_CODES è che questo è un livello intermedio di programmazione per l'EVM. Il primo livello sarebbe dato da Solidity e linguaggi di programmazione di alto livello simili. Un secondo livello di profondità sarebbe OP_CODES. Infine, avremmo il file codice a byte Il risultato della compilazione di OP_CODES nell'equivalente in linguaggio macchina di EVM, qualcosa di praticamente impossibile da capire e scrivere per un essere umano.

Tuttavia, poiché Ethereum è una blockchain pubblica ed è un progetto che sostiene l'apertura e la trasparenza, il linguaggio bytecode dell'EVM può essere decompilato. Cioè, possiamo trasformare il bytecode in OP_CODES e da lì portarlo in un linguaggio vicino a Solidity. Questo è importante in quanto offre a EVM la capacità di mantenere il contenuto di uno smart contract aperto e chiaro. Oltre a consentirti di riconoscere l'ABI che hai. Un'informazione importante poiché si tratta fondamentalmente di come è possibile codificare le chiamate da un contratto per l'EVM e, al contrario, come leggere i dati delle transazioni che questo contratto genera.

Tutti gli OP_CODES dell'EVM

Evoluzione futura dell'EVM

La rete Ethereum è stata denominata computer globale perché ciascuno dei nodi collegati alla rete esegue un'istanza dell'EVM. Allo stesso tempo, tutti eseguono le istruzioni in modo identico al fine di raggiungere e mantenere un consenso sullo stato del sistema. Questa particolarità di Ethereum rende i suoi calcoli più lenti e costosi rispetto a un comune computer. Ma ti dà maggiori vantaggi, come un'alta difesa al difetti bizantini, maggiore protezione e integrità dei dati e maggiore resistenza alla censura.

Così, Ethereum funziona come un computer mondiale decentralizzato per uso generale su una rete peer-to-peer. Gli smart contract e DApp sviluppato in EVM potrebbe persino assumere le funzioni di Internet come le conosciamo. Inoltre, potrebbe consentirci di creare economie più stabili poiché il loro funzionamento può essere garantito e non è soggetto all'interpretazione umana.

Con l'applicazione di elementi come la distribuzione di file, l'esecuzione di contratti intelligenti, applicazioni decentralizzate e molti altri, la fiducia in terze parti viene rimossa, poiché se i termini programmati non vengono rispettati, il contratto semplicemente non verrà eseguito.

Tuttavia, possiamo confrontare la sua nascita e lo sviluppo con Internet degli anni 90. Nessuno ha idea di cosa porterà in futuro. Ma senza dubbio, EVM si evolverà nel tempo e consentirà alla rete di diventare molto più robusta. Dove vedremo sicuramente aumentare le azioni di Ethereum, così come il suo valore token.

Quanto sai, Cryptonuta?

L'EVM può essere ampliato nelle funzionalità?

Certo!

Una delle caratteristiche principali dell'EVM è che può essere espansa nelle funzionalità, ma gli sviluppatori non sono attenti a includerne di nuove a causa della capacità limitata di aggiungere OP_CODES al sistema. Nonostante ciò, l'EVM può essere migliorato per essere incluso in tutti i tipi di dispositivi ed è un work in progress all'interno della community di Ethereum al fine di diffonderne ulteriormente l'utilizzo.

Funzione EVM

La Ethereum Virtual Machine è un software che ha molte caratteristiche o qualità, sia positive che negative. Tra questi possiamo citare:

  1. L'EVM si concentra sulla fornitura di sicurezza e sull'esecuzione di codice non attendibile sui computer di tutto il mondo.
  2. Le applicazioni decentralizzate e gli smart contract sviluppati in EVM sono completamente decentralizzati e distribuiti. Pertanto, non richiede la partecipazione di terzi. Non possono essere modificati o alterati.
  3. L'EVM consente lo sviluppo di un maggior numero di applicazioni, e che queste possano essere eseguite sulla stessa rete blockchain, senza influenzare altre operazioni.
  4. Gli smart contract progettati nell'EVM sono invariabili e possono essere eseguiti e applicati da soli, in modo autonomo e automatico. Eliminando la burocrazia, i costi elevati e i tempi di attesa tipici dei contratti tradizionali.
  5. EVM è sostanzialmente meno efficiente di molte altre macchine virtuali convenzionali. Questo principalmente perché il suo design era basato sull'utilità del momento e non su prestazioni elevate.
  6. I cambiamenti e i miglioramenti sperimentati dall'EVM sono stati finora pochi. Quindi non è ottimizzato per la velocità per diverse piattaforme hardware.
  7. Il design dell'EVM non è orientato alla portabilità, il che limita gli spazi in cui è possibile implementare una macchina virtuale di questo tipo.