Verbesserte Skalierbarkeit mit WASM-Vorkompilierungen – Guillaume Ballet


Dies ist eine Zusammenfassung meiner Devcon 5-Präsentation, in der erläutert wird, wie WASM-Vorkompilierungen den aktuellen Status von Ethereum verbessern und den Weg für Ethereum 2.0 bereiten können.

Herausforderungen für Eth1

Die wichtigsten technischen Herausforderungen für Ethereum in den kommenden Jahren lauten wie folgt:

  • Staatliches Wachstumsmanagement: Vertragsersteller können die Speicherzuordnungskosten einmal bezahlen und erwarten, dass ihre Daten dauerhaft aufbewahrt werden. Dies hat dazu geführt, dass der Speicher auf eine Größe angewachsen ist, die das typische Handheld-Gerät nicht mehr speichern kann, und es wird für Standard-Desktop-Computer sogar schwierig, sie zu verwalten. Das mittelfristige Risiko besteht darin, dass die Teilnahme an dem Netzwerk in die Zuständigkeit großer Bergbaubetriebe fällt, was wiederum ein erhebliches Kollusionsrisiko darstellt.
  • Funktionsübernahme: Das Hinzufügen neuer Vorkompilierungen und Features hat bei den Kundenbetreuern zu erheblichen Problemen geführt. Das Hinzufügen eines neuen Features bedeutet, dass dieses Feature von allen Kundenbetreuern richtig verstanden und implementiert werden muss. Dies ist eine ziemlich schwierige Aufgabe, insbesondere angesichts der Tatsache, dass die Kundenteams in der Regel unterbesetzt sind.
  • Netzwerkwartung: Ein Problem, das mit dem vorherigen korreliert. Da Forschungsinteressen auf Eth2 umsteigen, bleiben nur wenige Menschen zurück, um das Netzwerk aufrechtzuerhalten, bis Eth2 produktionsbereit ist.
  • Privatsphäre: Ein Anliegen, das in einem öffentlichen Hauptbuch immer schwer zu beantworten ist;
  • Paradigmenwechsel der Benutzererfahrung in Eth2: Derzeit werden noch viele Details diskutiert. Es ist jedoch bereits ersichtlich, dass Eth2 eine wichtige Änderung in der Benutzererfahrung einführt, die für alle Eth1-Benutzer eine nicht triviale Schwierigkeitsstufe darstellt.

Wie es funktioniert

Wie bei regulären Vorkompilierungen kann während der Ausführung des Vertragscodes ein spezieller Vertrag aufgerufen werden. Dieser Vertrag ist besonders, weil:

  • Die angebotene Funktionalität wird von vielen Verträgen benötigt, daher ist es sinnvoll, den gleichen Code nicht immer wieder zu duplizieren.
  • Dieser Vertrag ist so geschrieben, dass seine Ausführung schneller ist als wenn derselbe Code in EVM-Bytecode geschrieben worden wäre (d. H. Mit Solidität oder Vyper).

Im vorliegenden Fall ist dieser Sondervertrag in WASM abgefasst. Warum WASM? Denn der Code für eine bestimmte Vorkompilierung kann nur einmal geschrieben werden und ist dann überall verfügbar (dh in jedem Client).

Das Hauptaugenmerk liegt auf einer Änderung des igApp-Entwicklungsparadigmas durch Bereitstellung der Tools für Entwickler, mit denen die meisten Aufgaben außerhalb der Kette erledigt werden können. Dies trägt erheblich zur Skalierbarkeit bei, da nur die minimale Datenmenge, die zur Wahrung der Sicherheitseigenschaften einer Blockchain (im Allgemeinen ein 32-Byte-Hash) erforderlich ist, in der Kette erhalten bleibt. Darüber hinaus werden die meisten Aktualisierungen dieser Daten durch Vorkompilierungen vorgenommen, sodass auch die Entwicklung, die Ausführungskosten und die Wartung erheblich vereinfacht werden.

Vorteile dieses Ansatzes

  • Einfach zu implementieren: Als Host von WASM stehen Dolmetscher zur Verfügung, die in einer Vielzahl von Sprachen verfasst sind. Die Client-Integration ist daher unkompliziert und es gibt bereits einen Geth-basierten Prototyp.
  • Neue Funktionen, schnell: Es muss nur ein WASM-Programm validiert werden, das anschließend in jedem Client abgelegt werden kann und ohne Aufwand funktioniert.
  • Kein Lock-In: Wenn Kunden mit der Ausführungsgeschwindigkeit von WASM unzufrieden sind, können sie sich die Zeit nehmen, die Vorkompilierung in ihrer bevorzugten Sprache neu zu schreiben. Die WASM-Datei kann dann verwendet werden, um die Ausgabe von "nativen" Vorkompilierungen zu validieren.
  • Fairere Gaspläne: Für jeden Client gibt es eine einzelne anweisungsbasierte Referenz. Dies liefert unvoreingenommene Argumente für eine Änderung des Gasfahrplans, da Daten aus dem Benchmarking der WASM-Vorkompilierung leicht veröffentlicht und überprüft werden können.
  • Fokus auf Ebene 2 oder staatenlos lösungen: Diese Vorkompilierungen konzentrieren sich auf kryptografische Grundelemente und die Überprüfung von Beweisen, was die Möglichkeit eröffnet, den Status jedes Vertrags auf nur 32 Byte zu reduzieren.
  • Eine UX, die der von Eth2 näher kommt: Vorkompilierungen sind dem Eth2-Konzept von sehr ähnlich Ausführungsumgebungen (EE). Eth2 EE wird unter anderem WASM-basiert sein. Die Einführung von WASM-Vorkompilierungen ermöglicht einen reibungslosen Übergang zu dem starken Paradigmenwechsel, den Eth2 darstellt.

Herausforderungen

  • Ausführungsgeschwindigkeit: Kurznachrichten: WASM ist langsamer als native. Derzeit wird viel geforscht, nicht zuletzt im ewasm-Team, um Bereiche für eine Beschleunigung zu erkunden.
  • Risiko einer Überlastung der Vorkompilierung: Jeder möchte, dass sein Code als Vorkompilierung hinzugefügt wird, damit sein Code subventioniert wird. Dies ist älter als WASM-Vorkompilierungen und Kundenbetreuer sind es gewohnt, solche Vorschläge zurückzudrängen. Es gibt keinen Grund, dies zu ändern. Siehe entsprechende Frage in den FAQ.
  • Ein drittes Problem ist die Möglichkeit, das Rad neu zu erfinden, wie z. Einige Themen sind denen von Eth2 sehr ähnlich. Es wird darauf geachtet, Redundanzen zu vermeiden.

Im Rahmen dieses Projekts wurden mehrere Implementierungen für Eth1-Herausforderungen angeboten, zu denen in Kürze weitere Details veröffentlicht werden. In diesem Abschnitt werde ich skizzieren, wie eine Vorkompilierung für die Proof-Überprüfung bei der Implementierung einer statusfreien Version des ERC20-Standards helfen kann.

Abbildung 1 Eine in der Hauptkette gespeicherte Baumwurzel verweist auf einen Baum außerhalb der Kette, der Konten eines ERC20-ähnlichen Tokens enthält. In dieser Ansicht ist das Konto an der Adresse 0x221234 erweitert wird. Im Gegensatz zur Hauptkette werden in diesem Konto Daten nur linear gespeichert, Schlüssel sind viel kürzer (6 Nibbles oder 3 Bytes) und Knoten haben maximal 4 untergeordnete Knoten.

Wie in Abbildung 1 zu sehen ist, speichert ein On-Chain-Vertrag nur die Wurzel eines Merkle-Baums, der die Konten darstellt. Es ist zu beachten, dass in dieser Figur die willkürliche Auswahl eines linearen Speicherplatzes getroffen wurde.

Wenn ein Benutzer sein Konto aktualisieren möchte, muss er den aktuellen Status seines Kontos nachweisen. Der Vertrag erhält diesen Nachweis, überprüft, ob er dem aktuell gespeicherten Stamm entspricht, aktualisiert die Konten, berechnet den Stamm neu und aktualisiert ihn.

Infolgedessen ist es von großem Vorteil, eine Vorkompilierung zu verwenden, um diese sich sehr wiederholende Aufgabe zu erledigen, da die Beweisberechnung gasintensiv ist. Beachten Sie, dass die Vorkompilierung für mehr als nur ERC20-Token verwendet wird, da dieses System auch auf andere Layer 2-Lösungen angewendet werden kann. Und da es sowieso mehr als ein ERC20-Token gibt, ist seine Aufnahme als Vorkompilierung gerechtfertigt.

Was ist der Sinn? Steht das Eth2 nicht sehr nahe? Oder staatenlose Clients? Oder ?

Es hat sicherlich Ähnlichkeiten (und ist inspiriert von) all diesen. Der Vorteil ist, dass der Aufwand für die Implementierung minimal ist und gleichzeitig der Weg für das Aufkommen dieser Technologien geebnet wird.

Können Sie meine Vorkompilierung hinzufügen?

Wir können nicht alles vorkompilieren. Vorkompilierungen sollten als Faktorisierung von Code verstanden werden, der ansonsten bei vielen Verträgen dupliziert würde. Als Faustregel, um von der Community berücksichtigt zu werden, müssen die Kandidaten Folgendes nachweisen:

  • (Viele) mehr als eine Bewerbung haben;
  • Eine Relevanz für entweder a) kryptographische Primitive, b) Proof-Verification oder c) Layer-2-Lösungen

Erwarten Sie von den Kundenbetreuern so viel Zurückhaltung wie derzeit.

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

Werbung: Immobilienmakler HeidelbergMakler Heidelberg

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close