EVM ist eine Abstraktionsschicht zwischen dem Code und dem Host, die als Garantie dafür dient, den reibungslosen Betrieb von Ethereum aufrechtzuerhalten. Was ist EVM überhaupt? Was sind die Prinzipien und typischen Anwendungsfälle von EVM? Lassen Sie uns tiefer eintauchen.
Als derzeit beliebteste Blockchain bietet Ethereum den Benutzern eine Vielzahl dezentraler Anwendungen. Es ist der am häufigsten genannte Begriff, wenn sich Leute auf DeFi, NFTs usw. beziehen. Und EVM als Kernbestandteil von Ethereum zieht auch die große Aufmerksamkeit der Menschen auf sich. Was ist dann die Beziehung zwischen EVM und Ethereum?
EVM steht für Ethereum Virtual Machine. Wie von Ethereum definiert, ist EVM die Laufzeitumgebung, in der alle Ethereum-Konten und Smart Contracts in der Ethereum-Kette leben.
EVM existiert als eine einzige Einheit, die von allen verbundenen Computern verwaltet wird, auf denen ein Ethereum-Client läuft. Es definiert die Regeln zum Berechnen eines neuen gültigen Zustands von Block zu Block.
Anstelle eines verteilten Hauptbuchs wie Bitcoin ist Ethereum eine verteilte Zustandsmaschine. Der Wechsel von Block zu Block stellt eine Aktualisierung des Status aller Konten und Guthaben auf Ethereum dar. Die Aktualisierung wird anhand des Vertragscodes von der EVM berechnet.
Abbildung: https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf
EVM ist eine Stack-basierte virtuelle Maschine und führt alle ihre Operationen direkt im Stack aus. Wenn der Smart Contract in Bytecode kompiliert wird, führt die EVM Operationen basierend auf dem Bytecode aus, einschließlich Abrufen von Variablen aus dem Speicher und Hinzufügen zum Stack, Berechnen der Variablen im Stack und Speichern von Variablen im Speicher usw.
Es gibt zwei Haupttypen der Datenspeicherung in EVM: Arbeitsspeicher und Speicherung. Die Variablen im Speicher werden dauerhaft auf Ethereum gespeichert, nachdem der Vertrag ausgeführt wurde, während die Variablen im Speicher vorübergehend existieren, während der Code auf EVM ausgeführt wird.
Nehmen Sie als Beispiel den Aufruf eines Vertrags. Wir haben einen Vertrag mit Solidity abgeschlossen, Metadaten über einen Compiler zusammengestellt und auf Ethereum veröffentlicht. Wenn wir den Vertragsstatus aktualisieren müssen, müssen wir den Vertrag aufrufen. Weder das Betriebssystem noch Windows können Smart Contracts jedoch direkt ausführen. EVM wird benötigt, um eine laufende Umgebung für Smart Contracts bereitzustellen. Die einzelnen Schritte sind wie folgt: Zuerst findet die EVM den auf Ethereum gespeicherten Vertragscode über die Vertragsadresse; dann wird eine Ausführungsumgebung erzeugt; Abschließend wird der Vertragsinhalt in Bytecode umgewandelt und in die EVM zum Betrieb gebracht. Das aus der Operation erhaltene Ergebnis wird als letzter Zustand im nächsten Block gespeichert, wodurch der Zustandsaktualisierungsprozess abgeschlossen wird.
Abbildung: https://cnodejs.org/topic/5aeecba802591040485bab2a
EVM-Implementierungen
Derzeit enthalten alle Ethereum-Clients eine EVM-Implementierung. Ethereum hat den Quellcode mehrerer Programmiersprachen veröffentlicht, darunter Python, C++, js, Go usw., um EVM-Funktionalitäten zu implementieren. Es hilft Benutzern, das Prinzip von EVM auf bequemere Weise zu verstehen.
Py-EVM – Python: https://github.com/ethereum/py-evm
evmone – C++: https://github.com/ethereum/evmone
Ethereumjs – vm – JavaScript: https://github.com/ethereumjs/ ethereumjs-monorepo
eEVM – C++: https://github.com/microsoft/eevm
Hyperledger Burrow – Los: https://github.com/hyperledger/burrow
Smart Contracts sind Code, der ausschließlich auf der EVM läuft. Sie können nach der Bereitstellung nicht mehr geändert werden. Ethereum definiert, modifiziert und speichert den Zustand durch Smart Contracts, um verschiedene dezentrale Anwendungen zu erreichen. EVM fungiert als Umgebung, in der intelligente Verträge ausgeführt werden können, was der Beziehung zwischen einer Autobahn und einem Auto ähnelt.
Es ist eine erhebliche Rechenleistung erforderlich, um Smart Contracts auf EVM auszuführen, die eine bestimmte Menge an Gas verbrauchen. Denken Sie zum besseren Verständnis an Fahrzeuge, die auf mautpflichtigen Straßen Maut zahlen müssen.
Gasgebühren tragen dazu bei, Miner aus der ganzen Welt dazu anzuregen, sich zu beteiligen und Rechenleistung bereitzustellen, um Ethereum dezentraler zu machen. Es verhindert auch, dass Benutzer zufällige Operationsanfragen senden, die zu einer Überlastung des Ethereum Mainnet führen können, oder schützt Ethereum vor Abstürzen, indem es böswillige Angriffe verhindert.
Ethereum Smart Contracts sind in Solidity geschrieben und werden in Bytecode kompiliert, bevor sie auf dem EVM ausgeführt werden. Bytecode enthält Opcodes oder Operationscodes. EVM hat 144 Opcodes, jeder mit spezifischer Funktionalität, was EVM Turing-komplett macht. Es kann jede Art von Berechnungsproblem lösen. Solidity und Opcodes ermöglichen es uns, komplexe Smart Contracts zu schreiben und eine Vielzahl von Funktionen auf EVM zu implementieren, wodurch den Benutzern eine Vielzahl von dApps zur Verfügung gestellt wird.
Für denselben Codeabschnitt ist die Ausgabe dieselbe, nachdem sie auf verschiedenen EVMs ausgeführt wurde, da sie nichts mit der Ausführungsumgebung und der Anzahl der Ausführungen zu tun hat. Die Gewissheit von EVM gewährleistet die Zuverlässigkeit des Codes und vermeidet unerwartete Folgen. Diese Funktion trägt dazu bei, die Interessen der Benutzer zu schützen, insbesondere wenn sie große Transaktionen auf Ethereum tätigen.
EVM ist wie eine isolierte Sandbox, in der der Code ausgeführt wird. Der laufende Prozess wird weder die Software/Hardware des Computers beschädigen noch das zugrunde liegende Protokoll von Ethereum beeinflussen. Die Isolierung von EVM verhindert, dass Hacker den Computer angreifen, auf dem ein EVM ausgeführt wird, und schützt auch das zugrunde liegende Protokoll von Ethereum vor Manipulationen. Es dient als Garantie, die Ethereum sichert.
Der Prozess der EVM-Ausführung von Code kann unterbrochen werden. Wenn der Benutzer den falschen Code ausführt, z. B. eine Endlosschleife, kann der Gasmechanismus eingesetzt werden, um den Ausführungsprozess zu beenden, um zu verhindern, dass dieser Code auf unbestimmte Zeit Rechenleistung belegt. Bevor der Code auf dem EVM ausgeführt wird, sollte die Gasobergrenze im Voraus festgelegt werden. Wenn das Gas aufgebraucht ist, hört der Code auf zu laufen, und der Status wird ohne Aktualisierung der Kette zurückgesetzt.
Mit zunehmender Benutzerzahl stößt Ethereum Mainnet auf viele Probleme, wie z. B. überlastete Netzwerke und hohe Gasgebühren. Beschränkt auf das Design von Ethereum können diese Probleme nicht radikal gelöst werden.
In den letzten Jahren gab es viele neue öffentliche Ketten, die niedrigere Gasgebühren und schnellere Netzwerke und Layer-2-Ketten haben, die darauf ausgelegt sind, Ethereum zu skalieren. Bei diesen Ketten handelt es sich allesamt um intelligente Vertragsketten, die angeblich bessere zugrunde liegende Designs haben und zum Erstellen einer Vielzahl von dApps verwendet werden können.
Diese Ketten übernehmen die überschüssige Nachfrage des Ethereum-Ökosystems und stellen den dominanten Status von Ethereum in Frage. Müssen Ethereum-Pendants mit EVM kompatibel sein? Bezüglich dieser Divergenz werden diese Ketten in zwei Kategorien eingeteilt: EVM-kompatible Ketten und Nicht-EVM-Ketten.
In letzter Zeit sind öffentliche Layer-1-Chains nacheinander aufgetaucht. Obwohl der Wiederaufbau eines On-Chain-Ökosystems, das parallel zu Ethereum läuft, die bestehenden Mängel von Ethereum überwinden könnte, erfordert es erhebliche menschliche Ressourcen, um ein vollständiges Ökosystem aufzubauen und eine dApp von Grund auf neu zu entwickeln. Der Mangel an qualifizierten Programmierern behindert das Wachstum neuer öffentlicher Kettenökosysteme. Für eine öffentliche Kette mit einem unentwickelten Ökosystem wäre es schwierig, innerhalb kurzer Zeit einen Benutzer von Ethereum zu gewinnen.
Vor diesem Hintergrund sind einige öffentliche Ketten so konzipiert, dass sie mit EVM kompatibel sind. DApps, die ursprünglich auf Ethereum laufen, können mit nur geringfügigen Änderungen am Quellcode vollständig auf EVM-kompatible öffentliche Ketten umgestellt werden. Es kann nicht nur die Nutzung von Entwicklungsressourcen maximieren, sondern bietet den Benutzern auch eine bessere Erfahrung beim Migrationsprozess von Ethereum zu einer neuen Kette.
Die EVM-Kompatibilität ist jedoch zwangsläufig mit bestimmten Problemen verbunden. Beschränkt auf die Regeln von EVM, stoßen viele EVM-kompatible Ketten auf ein Problem, wie Innovationen ohne Homogenisierung erreicht werden können. Nicht-EVM-Ketten können diese Regeln jedoch brechen und ein neues Regelwerk von Grund auf entwickeln, wodurch Innovation grundlegend erreicht wird.
Derzeit sind mehr als 70 % der öffentlichen Mainstream-Ketten mit EVM kompatibel, wie BSC, Avalanche, Fantom, Tron, Celo usw. Es wäre für Entwickler nicht schwierig, dApps zu entwickeln oder Ethereum-Apps auf diesen Ketten einzusetzen, um eine höhere Leistung und niedrigere Gasgebühren zu erzielen und somit die Benutzererfahrung zu verbessern.
Einige andere öffentliche Ketten sind Nicht-EVM, haben aber ihre eigenen virtuellen Maschinen entwickelt, wie Sol, Terra usw. Obwohl diese Ketten nicht mit EVM kompatibel sind, haben sie mit ihrem innovativen Design und ihrer hervorragenden On-Chain-Leistung eine Gruppe treuer Benutzer und Institutionen angezogen. So basieren beispielsweise die beiden in letzter Zeit weltweit beliebten Blockchain-Spiele Step N und Let me speak auf der Sol-Kette und ziehen begeisterte Fans aus aller Welt zum Mitmachen an.
Insbesondere können EVM-kompatible Ketten mit Nicht-EVM-Ketten koexistieren. Einige Nicht-EVM-Ketten beginnen auch mit EVM kompatibel zu sein. Der Prozess, dies zu erreichen, wäre mühsam, da es umfangreiche Bemühungen erfordert, den Code zu ändern. Ein Beispiel dafür ist Sol, der Neon auf den Markt gebracht hat, mit dem Entwickler dApps auf EVM erstellen können.
Abbildung: EVM-Kompatibilität öffentlicher Ketten
Als Skalierungslösung von Ethereum ist Layer 2 komplementär zu Ethereum und nicht zu seinem Konkurrenten. Layer-2-Ketten sind alle EVM-kompatibel, mit einem höheren Grad an Kompatibilität als der von Layer 1. Damit Layer 2 mit EVM kompatibel ist, haben wir zwei Lösungen: EVM-Kompatibilität und EVM-Äquivalenz.
Die frühen Layer-2-Ketten sind EVM-kompatibel, was der EVM-Kompatibilität der Layer-1-Ketten ähnlich ist. Intelligente Verträge auf der Ethereum-Schicht 1 können auf Schicht 2 bereitgestellt werden, indem einige Änderungen vorgenommen werden. Zum Beispiel ist Unipig, das von Optimism gestartet wurde, eine vollständige Rekonstruktion des Uniswap-Codes. Es gilt als Uniswap auf Layer 2.
Es gibt einige Einschränkungen bei der EVM-Kompatibilität. Bei der Entwicklung von Smart Contracts auf einer EVM-kompatiblen Kette sind einige EVM-basierte Entwicklungstools und Frameworks möglicherweise nicht verfügbar. Zudem müssen Entwickler bei den ursprünglich in Layer 1 angeordneten Smart Contracts noch einige Anpassungen vornehmen, damit die Smart Contracts reibungslos auf der EVM-kompatiblen Blockchain laufen können.
Die EVM-Äquivalenz zielt darauf ab, Entwicklern bei der Entwicklung intelligenter Verträge auf Layer 2 genau die gleiche Erfahrung zu bieten wie auf Ethereum Layer 1. Dies hat Layer2-Entwicklern großen Nutzen gebracht, die Entwicklungseffizienz weiter verbessert und die Kosten für Entwicklung und Codewartung auf der Grundlage der EVM-Kompatibilität eingespart.
Gegenwärtig haben Mainstream-Layer-2-Lösungen wie Artbitrum, Optimism und Metis die EVM-Äquivalenz erreicht. EVM-Äquivalenz kann die Eigenschaften von Ethereum besser auf Layer 2 übertragen, um den durch die Skalierung verursachten Entwicklungs- und Migrationsaufwand zu minimieren. Es wird erwartet, dass die EVM-Äquivalenz in Zukunft zum Mainstream-Standard von Layer 2 wird, und viele Layer-2-Lösungen werden einen heftigen Wettlauf um die EVM-Äquivalenz führen.
EVM ist der Kern, der Ethereum am Laufen hält. Mit der Etablierung der Dominanz von Ethereum sind große öffentliche Chains und Layer-2-Chains dem zugrunde liegenden Designkonzept von EVM gefolgt oder mit diesem kompatibel. Daher hat EVM definitiv einen tiefgreifenden Einfluss auf die gesamte Blockchain gehabt. Das EVM selbst bringt viele Probleme mit sich, was es schwierig macht, dass die neuen Ketten mit dem EVM kompatibel sind. Trotzdem haben die Entwickler hart daran gearbeitet, Verbesserungen vorzunehmen, was die Entstehung vieler anderer öffentlicher Ketten erheblich erleichtert hat.
EVM ist eine Abstraktionsschicht zwischen dem Code und dem Host, die als Garantie dafür dient, den reibungslosen Betrieb von Ethereum aufrechtzuerhalten. Was ist EVM überhaupt? Was sind die Prinzipien und typischen Anwendungsfälle von EVM? Lassen Sie uns tiefer eintauchen.
Als derzeit beliebteste Blockchain bietet Ethereum den Benutzern eine Vielzahl dezentraler Anwendungen. Es ist der am häufigsten genannte Begriff, wenn sich Leute auf DeFi, NFTs usw. beziehen. Und EVM als Kernbestandteil von Ethereum zieht auch die große Aufmerksamkeit der Menschen auf sich. Was ist dann die Beziehung zwischen EVM und Ethereum?
EVM steht für Ethereum Virtual Machine. Wie von Ethereum definiert, ist EVM die Laufzeitumgebung, in der alle Ethereum-Konten und Smart Contracts in der Ethereum-Kette leben.
EVM existiert als eine einzige Einheit, die von allen verbundenen Computern verwaltet wird, auf denen ein Ethereum-Client läuft. Es definiert die Regeln zum Berechnen eines neuen gültigen Zustands von Block zu Block.
Anstelle eines verteilten Hauptbuchs wie Bitcoin ist Ethereum eine verteilte Zustandsmaschine. Der Wechsel von Block zu Block stellt eine Aktualisierung des Status aller Konten und Guthaben auf Ethereum dar. Die Aktualisierung wird anhand des Vertragscodes von der EVM berechnet.
Abbildung: https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf
EVM ist eine Stack-basierte virtuelle Maschine und führt alle ihre Operationen direkt im Stack aus. Wenn der Smart Contract in Bytecode kompiliert wird, führt die EVM Operationen basierend auf dem Bytecode aus, einschließlich Abrufen von Variablen aus dem Speicher und Hinzufügen zum Stack, Berechnen der Variablen im Stack und Speichern von Variablen im Speicher usw.
Es gibt zwei Haupttypen der Datenspeicherung in EVM: Arbeitsspeicher und Speicherung. Die Variablen im Speicher werden dauerhaft auf Ethereum gespeichert, nachdem der Vertrag ausgeführt wurde, während die Variablen im Speicher vorübergehend existieren, während der Code auf EVM ausgeführt wird.
Nehmen Sie als Beispiel den Aufruf eines Vertrags. Wir haben einen Vertrag mit Solidity abgeschlossen, Metadaten über einen Compiler zusammengestellt und auf Ethereum veröffentlicht. Wenn wir den Vertragsstatus aktualisieren müssen, müssen wir den Vertrag aufrufen. Weder das Betriebssystem noch Windows können Smart Contracts jedoch direkt ausführen. EVM wird benötigt, um eine laufende Umgebung für Smart Contracts bereitzustellen. Die einzelnen Schritte sind wie folgt: Zuerst findet die EVM den auf Ethereum gespeicherten Vertragscode über die Vertragsadresse; dann wird eine Ausführungsumgebung erzeugt; Abschließend wird der Vertragsinhalt in Bytecode umgewandelt und in die EVM zum Betrieb gebracht. Das aus der Operation erhaltene Ergebnis wird als letzter Zustand im nächsten Block gespeichert, wodurch der Zustandsaktualisierungsprozess abgeschlossen wird.
Abbildung: https://cnodejs.org/topic/5aeecba802591040485bab2a
EVM-Implementierungen
Derzeit enthalten alle Ethereum-Clients eine EVM-Implementierung. Ethereum hat den Quellcode mehrerer Programmiersprachen veröffentlicht, darunter Python, C++, js, Go usw., um EVM-Funktionalitäten zu implementieren. Es hilft Benutzern, das Prinzip von EVM auf bequemere Weise zu verstehen.
Py-EVM – Python: https://github.com/ethereum/py-evm
evmone – C++: https://github.com/ethereum/evmone
Ethereumjs – vm – JavaScript: https://github.com/ethereumjs/ ethereumjs-monorepo
eEVM – C++: https://github.com/microsoft/eevm
Hyperledger Burrow – Los: https://github.com/hyperledger/burrow
Smart Contracts sind Code, der ausschließlich auf der EVM läuft. Sie können nach der Bereitstellung nicht mehr geändert werden. Ethereum definiert, modifiziert und speichert den Zustand durch Smart Contracts, um verschiedene dezentrale Anwendungen zu erreichen. EVM fungiert als Umgebung, in der intelligente Verträge ausgeführt werden können, was der Beziehung zwischen einer Autobahn und einem Auto ähnelt.
Es ist eine erhebliche Rechenleistung erforderlich, um Smart Contracts auf EVM auszuführen, die eine bestimmte Menge an Gas verbrauchen. Denken Sie zum besseren Verständnis an Fahrzeuge, die auf mautpflichtigen Straßen Maut zahlen müssen.
Gasgebühren tragen dazu bei, Miner aus der ganzen Welt dazu anzuregen, sich zu beteiligen und Rechenleistung bereitzustellen, um Ethereum dezentraler zu machen. Es verhindert auch, dass Benutzer zufällige Operationsanfragen senden, die zu einer Überlastung des Ethereum Mainnet führen können, oder schützt Ethereum vor Abstürzen, indem es böswillige Angriffe verhindert.
Ethereum Smart Contracts sind in Solidity geschrieben und werden in Bytecode kompiliert, bevor sie auf dem EVM ausgeführt werden. Bytecode enthält Opcodes oder Operationscodes. EVM hat 144 Opcodes, jeder mit spezifischer Funktionalität, was EVM Turing-komplett macht. Es kann jede Art von Berechnungsproblem lösen. Solidity und Opcodes ermöglichen es uns, komplexe Smart Contracts zu schreiben und eine Vielzahl von Funktionen auf EVM zu implementieren, wodurch den Benutzern eine Vielzahl von dApps zur Verfügung gestellt wird.
Für denselben Codeabschnitt ist die Ausgabe dieselbe, nachdem sie auf verschiedenen EVMs ausgeführt wurde, da sie nichts mit der Ausführungsumgebung und der Anzahl der Ausführungen zu tun hat. Die Gewissheit von EVM gewährleistet die Zuverlässigkeit des Codes und vermeidet unerwartete Folgen. Diese Funktion trägt dazu bei, die Interessen der Benutzer zu schützen, insbesondere wenn sie große Transaktionen auf Ethereum tätigen.
EVM ist wie eine isolierte Sandbox, in der der Code ausgeführt wird. Der laufende Prozess wird weder die Software/Hardware des Computers beschädigen noch das zugrunde liegende Protokoll von Ethereum beeinflussen. Die Isolierung von EVM verhindert, dass Hacker den Computer angreifen, auf dem ein EVM ausgeführt wird, und schützt auch das zugrunde liegende Protokoll von Ethereum vor Manipulationen. Es dient als Garantie, die Ethereum sichert.
Der Prozess der EVM-Ausführung von Code kann unterbrochen werden. Wenn der Benutzer den falschen Code ausführt, z. B. eine Endlosschleife, kann der Gasmechanismus eingesetzt werden, um den Ausführungsprozess zu beenden, um zu verhindern, dass dieser Code auf unbestimmte Zeit Rechenleistung belegt. Bevor der Code auf dem EVM ausgeführt wird, sollte die Gasobergrenze im Voraus festgelegt werden. Wenn das Gas aufgebraucht ist, hört der Code auf zu laufen, und der Status wird ohne Aktualisierung der Kette zurückgesetzt.
Mit zunehmender Benutzerzahl stößt Ethereum Mainnet auf viele Probleme, wie z. B. überlastete Netzwerke und hohe Gasgebühren. Beschränkt auf das Design von Ethereum können diese Probleme nicht radikal gelöst werden.
In den letzten Jahren gab es viele neue öffentliche Ketten, die niedrigere Gasgebühren und schnellere Netzwerke und Layer-2-Ketten haben, die darauf ausgelegt sind, Ethereum zu skalieren. Bei diesen Ketten handelt es sich allesamt um intelligente Vertragsketten, die angeblich bessere zugrunde liegende Designs haben und zum Erstellen einer Vielzahl von dApps verwendet werden können.
Diese Ketten übernehmen die überschüssige Nachfrage des Ethereum-Ökosystems und stellen den dominanten Status von Ethereum in Frage. Müssen Ethereum-Pendants mit EVM kompatibel sein? Bezüglich dieser Divergenz werden diese Ketten in zwei Kategorien eingeteilt: EVM-kompatible Ketten und Nicht-EVM-Ketten.
In letzter Zeit sind öffentliche Layer-1-Chains nacheinander aufgetaucht. Obwohl der Wiederaufbau eines On-Chain-Ökosystems, das parallel zu Ethereum läuft, die bestehenden Mängel von Ethereum überwinden könnte, erfordert es erhebliche menschliche Ressourcen, um ein vollständiges Ökosystem aufzubauen und eine dApp von Grund auf neu zu entwickeln. Der Mangel an qualifizierten Programmierern behindert das Wachstum neuer öffentlicher Kettenökosysteme. Für eine öffentliche Kette mit einem unentwickelten Ökosystem wäre es schwierig, innerhalb kurzer Zeit einen Benutzer von Ethereum zu gewinnen.
Vor diesem Hintergrund sind einige öffentliche Ketten so konzipiert, dass sie mit EVM kompatibel sind. DApps, die ursprünglich auf Ethereum laufen, können mit nur geringfügigen Änderungen am Quellcode vollständig auf EVM-kompatible öffentliche Ketten umgestellt werden. Es kann nicht nur die Nutzung von Entwicklungsressourcen maximieren, sondern bietet den Benutzern auch eine bessere Erfahrung beim Migrationsprozess von Ethereum zu einer neuen Kette.
Die EVM-Kompatibilität ist jedoch zwangsläufig mit bestimmten Problemen verbunden. Beschränkt auf die Regeln von EVM, stoßen viele EVM-kompatible Ketten auf ein Problem, wie Innovationen ohne Homogenisierung erreicht werden können. Nicht-EVM-Ketten können diese Regeln jedoch brechen und ein neues Regelwerk von Grund auf entwickeln, wodurch Innovation grundlegend erreicht wird.
Derzeit sind mehr als 70 % der öffentlichen Mainstream-Ketten mit EVM kompatibel, wie BSC, Avalanche, Fantom, Tron, Celo usw. Es wäre für Entwickler nicht schwierig, dApps zu entwickeln oder Ethereum-Apps auf diesen Ketten einzusetzen, um eine höhere Leistung und niedrigere Gasgebühren zu erzielen und somit die Benutzererfahrung zu verbessern.
Einige andere öffentliche Ketten sind Nicht-EVM, haben aber ihre eigenen virtuellen Maschinen entwickelt, wie Sol, Terra usw. Obwohl diese Ketten nicht mit EVM kompatibel sind, haben sie mit ihrem innovativen Design und ihrer hervorragenden On-Chain-Leistung eine Gruppe treuer Benutzer und Institutionen angezogen. So basieren beispielsweise die beiden in letzter Zeit weltweit beliebten Blockchain-Spiele Step N und Let me speak auf der Sol-Kette und ziehen begeisterte Fans aus aller Welt zum Mitmachen an.
Insbesondere können EVM-kompatible Ketten mit Nicht-EVM-Ketten koexistieren. Einige Nicht-EVM-Ketten beginnen auch mit EVM kompatibel zu sein. Der Prozess, dies zu erreichen, wäre mühsam, da es umfangreiche Bemühungen erfordert, den Code zu ändern. Ein Beispiel dafür ist Sol, der Neon auf den Markt gebracht hat, mit dem Entwickler dApps auf EVM erstellen können.
Abbildung: EVM-Kompatibilität öffentlicher Ketten
Als Skalierungslösung von Ethereum ist Layer 2 komplementär zu Ethereum und nicht zu seinem Konkurrenten. Layer-2-Ketten sind alle EVM-kompatibel, mit einem höheren Grad an Kompatibilität als der von Layer 1. Damit Layer 2 mit EVM kompatibel ist, haben wir zwei Lösungen: EVM-Kompatibilität und EVM-Äquivalenz.
Die frühen Layer-2-Ketten sind EVM-kompatibel, was der EVM-Kompatibilität der Layer-1-Ketten ähnlich ist. Intelligente Verträge auf der Ethereum-Schicht 1 können auf Schicht 2 bereitgestellt werden, indem einige Änderungen vorgenommen werden. Zum Beispiel ist Unipig, das von Optimism gestartet wurde, eine vollständige Rekonstruktion des Uniswap-Codes. Es gilt als Uniswap auf Layer 2.
Es gibt einige Einschränkungen bei der EVM-Kompatibilität. Bei der Entwicklung von Smart Contracts auf einer EVM-kompatiblen Kette sind einige EVM-basierte Entwicklungstools und Frameworks möglicherweise nicht verfügbar. Zudem müssen Entwickler bei den ursprünglich in Layer 1 angeordneten Smart Contracts noch einige Anpassungen vornehmen, damit die Smart Contracts reibungslos auf der EVM-kompatiblen Blockchain laufen können.
Die EVM-Äquivalenz zielt darauf ab, Entwicklern bei der Entwicklung intelligenter Verträge auf Layer 2 genau die gleiche Erfahrung zu bieten wie auf Ethereum Layer 1. Dies hat Layer2-Entwicklern großen Nutzen gebracht, die Entwicklungseffizienz weiter verbessert und die Kosten für Entwicklung und Codewartung auf der Grundlage der EVM-Kompatibilität eingespart.
Gegenwärtig haben Mainstream-Layer-2-Lösungen wie Artbitrum, Optimism und Metis die EVM-Äquivalenz erreicht. EVM-Äquivalenz kann die Eigenschaften von Ethereum besser auf Layer 2 übertragen, um den durch die Skalierung verursachten Entwicklungs- und Migrationsaufwand zu minimieren. Es wird erwartet, dass die EVM-Äquivalenz in Zukunft zum Mainstream-Standard von Layer 2 wird, und viele Layer-2-Lösungen werden einen heftigen Wettlauf um die EVM-Äquivalenz führen.
EVM ist der Kern, der Ethereum am Laufen hält. Mit der Etablierung der Dominanz von Ethereum sind große öffentliche Chains und Layer-2-Chains dem zugrunde liegenden Designkonzept von EVM gefolgt oder mit diesem kompatibel. Daher hat EVM definitiv einen tiefgreifenden Einfluss auf die gesamte Blockchain gehabt. Das EVM selbst bringt viele Probleme mit sich, was es schwierig macht, dass die neuen Ketten mit dem EVM kompatibel sind. Trotzdem haben die Entwickler hart daran gearbeitet, Verbesserungen vorzunehmen, was die Entstehung vieler anderer öffentlicher Ketten erheblich erleichtert hat.