banner
Nachrichtenzentrum
Umfangreiche Vertriebs- und Produktionskompetenz

Was ist eine Ethereum Virtual Machine (EVM) und wie funktioniert sie?

Sep 10, 2023

EVM bildet das Rückgrat der Ethereum-Blockchain und bietet Entwicklern eine Laufzeitumgebung zum Erstellen von DApps und anderen Anwendungen.

Ether (ETH), gemessen an der Marktkapitalisierung die zweitgrößte Kryptowährung, ist aufgrund seines nativen ETH-Tokens bei Kryptowährungsinvestoren beliebt. Seine native Programmiersprache Solidity und die Ethereum Virtual Machine (EVM) tragen jedoch maßgeblich zu der Bewunderung bei, die es von der Entwicklergemeinschaft erhält. Tatsächlich zieht die Ethereum-Blockchain aufgrund ihrer Flexibilität, der großen Auswahl an verfügbaren Entwicklertools und der großen Benutzerbasis der Plattform weiterhin Entwickler dezentraler Anwendungen (DApp) an.

Das EVM bildet den Kern der Blockchain-Architektur und ist das Programm, das seinen Anwendungscode oder sogenannte Smart Contracts ausführt und ihnen eine Laufzeitumgebung zur Verfügung stellt, die auf dem Ethereum-Netzwerk läuft. Darüber hinaus ist die EVM Turing-vollständig und kann daher jedes in jeder Programmiersprache codierte Programm ausführen, sodass Entwickler problemlos benutzerdefinierte Smart Contracts und DApps für den aufstrebenden Web3-Bereich erstellen können.

Zusätzlich zu diesen wichtigen Funktionalitäten hat EVM Zugriff auf alle Knoten im Netzwerk, übernimmt die Ausführung intelligenter Verträge und wickelt effektiv alle Transaktionen auf der Ethereum-Blockchain ab, was sie zu einer der leistungsstärksten virtuellen Maschinen macht, die es heute gibt.

Das 2013 vom Programmierer Vitalik Buterin konzipierte Ethereum-Netzwerk verdankt seinen phänomenalen Erfolg als bevorzugte Blockchain für DApp-Entwickler der Ethereum Virtual Machine (EVM), die Gavin Wood während seiner Zeit bei Ethereum entworfen hat. EVM wurde in C++ geschrieben und verwendet den LLVM-Projekt-Compiler. Es ist eine spezielle Zustandsmaschine, die kontinuierlich arbeitet und deren unveränderliche Operationen den Zustand jedes Blocks in der Ethereum-Blockchain bestimmen.

Die EVM regelt nicht nur, was Knoten mit dem von der Ethereum-Blockchain verwalteten Distributed Ledger tun können und was nicht, sondern definiert auch die spezifischen Regeln für die Statusänderung von Block zu Block. Die letztgenannte Funktionalität ermöglicht die Smart-Contract-Funktionalität, für die Ethereum bekannt ist.

Um zu verstehen, was eine virtuelle Ethereum-Maschine tut, muss man sich die einzelnen Funktionen ansehen, die sie zur Gewährleistung des reibungslosen Betriebs des Ethereum-Netzwerks erfüllt. Für jede empfangene Eingabe erzeugt das EVM eine Ausgabe, die deterministischer Natur ist und im einfachsten Sinne einer mathematischen Funktion folgt.

Das EVM funktioniert wie eine Stapelmaschine, die vorübergehende Werte zu und von einem Pushdown-Stack schiebt und hat eine Tiefe von 1024 Elementen, wobei jedes davon ein 256-Bit-Wort ist. Außerdem wird ein temporärer Speicher in Form eines Byte-Arrays verwaltet, der sich zwischen zwei Transaktionen auf der Ethereum-Blockchain ändert. Kompilierte Smart-Contract-Codes werden vom EVM in Form einer Sammlung von 140 Standard-Opcodes ausgeführt, während auch andere Blockchain-spezifische Stack-Operationen von ihm implementiert werden.

Somit verfügt die EVM über einen Maschinenzustand, der von Natur aus während der Verarbeitung einer Transaktion volatil ist, und über einen globalen oder Weltzustand, der Informationen zu den verschiedenen Konten enthält, die auf der Ethereum-Blockchain verwaltet werden. Alle Aktionen werden durch den EVM-Code gesteuert, der seit dem Start des Ethereum-Netzwerks im Jahr 2015 mehrere Iterationen durchlaufen hat, was zur Existenz unterschiedlicher Implementierungen des derzeit verwendeten EVM geführt hat.

Tatsächlich ist die EVM für die Aufrechterhaltung eines Abstraktionsniveaus zwischen Tausenden von Ethereum-Knoten und dem ausführenden Code verantwortlich und fungiert als Funktion, die konsistente Ergebnisse liefert, ohne viele Details an Clients oder Knoten preiszugeben.

Das EVM hat alle im Ethereum-Netzwerk ausgeführten Anwendungen zuverlässig mit Strom versorgt, ohne dass größere Ausfallzeiten gemeldet wurden. Für Entwickler fungiert die EVM als übergeordnetes Programm, das kleinere ausführbare Programme ausführt, die in Ethereum als Smart Contracts bezeichnet werden, und ihnen gleichzeitig die Freiheit gibt, diese Smart Contracts in einer Vielzahl von Programmiersprachen zu schreiben, darunter Solidity, Vyper, Python und Yul Andere.

Aufgrund dieser Flexibilität, die das EVM bietet, hat die Ethereum-Blockchain Tausende von DApps im Bereich der dezentralen Finanzen (DeFi) und der nicht fungiblen Token (NFT) hervorgebracht. Jede dieser DApps und die Smart Contracts, aus denen sie bestehen, werden in Bytecode umgewandelt, der in die EVM eingespeist und an alle Knoten im Ethereum-Netzwerk verteilt wird. Wenn ein Smart Contract bereitgestellt wird, ist die EVM dafür verantwortlich, mit allen Knoten zu kommunizieren und Zustandsänderungen vorzunehmen, wenn ein Konsens erzielt wurde.

Man kann sagen, dass die EVM in jeden Ethereum-Knoten eingefügt wird, um intelligente Verträge mithilfe von Bytecode anstelle der Basisprogrammiersprache auszuführen und so den physischen Host-Computer vom Maschinencode zu isolieren, auf dem Ethereum läuft.

Aufgrund der Funktionsweise des EVM können Entwickler Code ausführen, ohne sich Gedanken über die Auswirkungen auf den Rest des Netzwerks machen zu müssen oder zu befürchten, dass er Daten oder persönliche Dateien, die auf einem der Knotencomputer gehostet werden, missbraucht.

Darüber hinaus können sie komplexe Smart Contracts auf verschiedenen Computerumgebungen mit verteiltem Konsens ausführen. Dadurch wird sichergestellt, dass der Ausfall eines einzelnen Knotens keine negativen Auswirkungen auf die Ausführung der DApp oder des Smart Contracts hat, da der EVM-Code über alle Knoten hinweg gleich bleibt. Da die Kontodaten im EVM außerdem auf globaler Ebene verwaltet werden, ist es für Entwickler ideal, um benutzerdefinierten Smart-Contract-Code zu schreiben und eindeutige DApps zu erstellen, die auf diesen globalen Datensatz zugreifen und zuverlässige Ausgaben erzeugen können.

Die Heiligkeit des Ergebnisses macht die EVM im Besonderen und die Ethereum-Blockchain im Allgemeinen gut geeignet für die nachhaltige Erweiterung des DApps- und Smart-Contract-Ethereum-Ökosystems. Wenn man dazu noch die Bibliothek mit Standardcodes hinzufügt, aus der Entwickler wählen können, eine zunehmende Anzahl EVM-kompatibler Layer-2-Blockchains und eine große Anzahl potenzieller EVM-Anwendungsfälle, dann ist es leicht zu erkennen, warum EVM die bevorzugte Plattform ist für die Web3-Entwicklung.

Trotz der vielen Vorteile, die das EVM bietet, gibt es bestimmte Nachteile, die Entwickler und Unternehmer, die auf Ethereum aufbauen, berücksichtigen müssen. Der wichtigste davon sind die hohen Transaktionsgebühren oder Gaskosten, die mit der Ausführung eines Smart Contracts im Ethereum-Netzwerk verbunden sind.

Diese in ETH gezahlten Gebühren variieren je nach Komplexität des Vertrags und der Netzwerküberlastung zum Zeitpunkt der Ausführung, sodass es für Entwickler und Unternehmer zwingend erforderlich ist, ihre Dienste entsprechend zu bepreisen. Da Solidity außerdem die am meisten bevorzugte Sprache für die Codierung auf der EVM ist, bedeutet dies, dass Entwickler über ausreichende Erfahrung damit verfügen und über ein Mindestmaß an technischem Fachwissen verfügen müssen, um mithilfe dieser Sprache effiziente Smart Contracts zu erstellen.

Letzteres ist wichtig, da jeder zusätzliche Rechenaufwand zu höheren Gaskosten führt und sich letztendlich als schädlich für den Erfolg des Projekts erweist. Wenn Entwickler sich dafür entscheiden, in anderen Sprachen zu programmieren, müssen sie vorsichtig sein, etwaige inhärente Wiederholungen im Code aufzulösen, da die EVM diese ohnehin kompilieren wird. Während ein Upgrade von Smart Contracts zu einem späteren Zeitpunkt möglich ist, birgt es Sicherheitsrisiken im Zusammenhang mit der Erstellung eines zwischengeschalteten Smart Contracts, der auf die Adresse des ursprünglichen Smart Contracts verweist.

Trotz der revolutionären Veränderungen, die EVM im Blockchain-Ökosystem mit sich bringt, wird diese Technologie zum Lesen und Ausführen von Code durch eine Reihe von Blockchain-Projekten verbessert.

Da die kettenübergreifende Interoperabilität der wichtigste Aspekt für Entwickler ist, haben sich viele EVM-kompatible Blockchains etabliert, wobei die meisten weniger Gas und schnellere Transaktionsgeschwindigkeiten als das Ethereum-Protokoll bieten. Dadurch sind diese Blockchains nun in der Lage, nahtlos mit Ethereum-Nutzern zu interagieren und erleichtern den Geldtransfer in ihre eigenen Netzwerke über Blockchain-Brücken.

Nachdem das Ethereum-Protokoll die Fusion jedoch im September 2022 erfolgreich abgeschlossen hat, besteht das nächste Ziel darin, von EVM auf Ethereum WebAssembly (eWASM) umzusteigen. eWASM ist hochgradig modular und plattformunabhängig konzipiert und wird als nächster Game-Changer für das Ethereum-Protokoll angepriesen. Es könnte andere Blockchains dazu motivieren, diese Laufzeitumgebung auch für Smart Contracts zu nutzen. Ob eWASMs jedoch die EVM als vertrauenswürdigsten Mechanismus für Smart Contracts ersetzen werden, ist eine Frage, die nur die Zeit beantworten wird.

Reaktion hinzufügen

Reaktion hinzufügen