Mit zunehmender Nutzung von Ethereum wird der Betrieb eines vollständigen Knotens immer ressourcen- und bandbreitenintensiver. Dies führt dazu, dass immer weniger Menschen in der Lage sind, vollständige Knoten zu betreiben, wodurch das Netzwerk weniger dezentralisiert wird. Darüber hinaus hat Ethereum Schwierigkeiten bei der Skalierung, da die Transaktionsnachfrage steigt, was zu Netzwerküberlastungen und hohen Gasgebühren führt.
Registrieren Sie sich für die drei großen Börsen im Währungskreis (kopieren Sie den Link und öffnen Sie ihn im Browser).
https://www.communityrebate.com
Der von Vitalik im Jahr 2017 vorgeschlagene staatenlose Client bietet eine mögliche Lösung für die Dezentralisierungsherausforderungen, mit denen Ethereum konfrontiert ist. Die Kernidee eines zustandslosen Clients besteht darin, die für den Betrieb eines vollständigen Knotens erforderlichen Speicher- und Bandbreitenanforderungen zu reduzieren, um mehr Menschen die Teilnahme zu ermöglichen und das Netzwerk zu dezentralisieren. In diesem Artikel werfen wir einen detaillierten Blick auf die Funktionsweise staatenloser Clients und ihre potenziellen Vor- und Nachteile.
Was ist der Ethereum-Status?
Um zustandslose Clients zu verstehen, müssen wir zunächst das Konzept des „Staates“ in Ethereum verstehen. Der Status von Ethereum bezieht sich auf den aktuellen Status aller Konten, Verträge, Salden, Nonces und Speicher in der Ethereum-Welt. Man kann es sich als eine Datenbank vorstellen, die alle relevanten Informationen über das Ethereum-Netzwerk zu einem bestimmten Zeitpunkt speichert.
Der Zustand wird in Form eines Merkle-Patricia-Tries beibehalten, bei dem es sich im Wesentlichen um einen modifizierten Merkle-Baum handelt, der zum Speichern von Schlüssel-Wert-Paaren verwendet wird. Der Root-Hash des Versuchs fasst den gesamten Zustand zusammen. Bei jedem neuen Block wird der Status basierend auf den Transaktionen in diesem Block aktualisiert. Der neue Status-Root-Hash ist im Blockheader enthalten.
Im Laufe der Zeit wurde der Zustand von Ethereum immer größer, da immer mehr Konten, Verträge und Transaktionen hinzugefügt wurden. Derzeit übersteigt die Größe des Staates 1 TB, wobei jedes Jahr Dutzende GB hinzukommen. Dieser wachsende Staat ist die Hauptursache des Dezentralisierungsproblems.
Warum Staatswachstum Probleme bereitet
Die Zunahme der Staatsgröße von Ethereum hat zu einigen Schlüsselproblemen geführt:
● Lange Synchronisierungszeit für neue Knoten – Es dauert lange, bis neue Knoten alle historischen Statusänderungen synchronisiert haben. Dies erhöht die Schwierigkeit, neue vollständige Knoten zu betreiben, was die Dezentralisierung behindert. Die Synchronisierung neuer Knoten vom Genesis-Block auf den neuesten Stand dauert derzeit viele Tage oder sogar Wochen, was für Verbraucherhardware ein großes Hindernis für die effektive Einführung neuer Knoten und die Ermöglichung des Beitritts von mehr Teilnehmern zum Netzwerk darstellt.
● Erhöhte Hardwareanforderungen – Größere Bundesstaaten benötigen mehr Speicher, Arbeitsspeicher und Rechenleistung zum Speichern, Zugreifen und Aktualisieren. Dies macht es für Benutzer mit weniger Ressourcen unmöglich, Knoten auszuführen. Für den Betrieb eines vollständig synchronisierten Ethereum-Knotens ist jetzt mindestens eine SSD mit 1–2 TB Kapazität erforderlich. Dies ist für viele potenzielle Knotenbetreiber unerreichbar.
● Erhöhte Bandbreitennutzung – die Übertragung eines neuen Blocks muss auch den aktualisierten Status enthalten, was mehr Bandbreite erfordert. Dies erhöht die Kosten für Knotenbetreiber. Derzeit dominiert der Staat die meisten Blockübertragungen, daher nehmen die Blockgrößen weiter zu. Mehr Bandbreite führt zu höheren Kosten für Knotenbetreiber.
● Verlangsamte Blocküberprüfung – Das Lesen und Aktualisieren größerer Zustände verlangsamt die Blocküberprüfung und begrenzt den Transaktionsdurchsatz. Jede Transaktion erfordert mehrere Lese- und Schreibvorgänge im Speicher, um Salden, Nonces, Vertragsstatus usw. zu aktualisieren. Ein größerer Zustand bedeutet mehr Lese-/Schreibvorgänge pro Block, wodurch sich die Anzahl der Transaktionen verringert, die pro Sekunde verarbeitet werden können.
● Permanente Speicherkosten – Sobald Daten dem Status hinzugefügt wurden, müssen sie dauerhaft gespeichert werden. Dadurch wächst der unbegrenzte Zustand. Derzeit gibt es keinen Mechanismus zum proaktiven Löschen alter und nicht verwendeter Statusdaten. Daher werden die staatlichen Aufbewahrungskosten auf unbestimmte Zeit steigen, solange Ethereum weiter funktioniert.
Was ist ein staatenloser Client?
Zustandslose Clients bieten eine Möglichkeit, neue Blöcke zu validieren, ohne Zugriff auf den vollständigen Ethereum-Status zu benötigen. Sie nutzen kryptografische Beweise, sogenannte „Zeugen“, um die Gültigkeit von Zustandsänderungen in einem Block zu beweisen, ohne dass spezifische Zustandsdaten erforderlich sind.
Der zustandslose Client funktioniert wie folgt:
1. Der Client speichert nur den Blockheader und den Statusstamm, nicht die vollständigen Statusdaten. Der Blockheader enthält Metadaten wie den Root-Hash des Statusversuchs nach der Verarbeitung des Blocks.
2. Bei der Validierung eines neuen Blocks erhält der Client zusammen mit dem Block einen „Zeugen“. Bei diesem Zeugen handelt es sich um eine Reihe von Merkle-Beweisen, die beweisen, dass eine bestimmte Statusaktualisierung in der Transaktion gültig ist.
3. Der Zeuge enthält einen Merkle-Beweis über einen bestimmten Staatswert, der zur Abwicklung von Transaktionen verwendet wird. Zum Beispiel Aktualisierungen von Kontoständen oder Vertragsspeicherungen.
4. Der Client verwendet Zeugen, um die Gültigkeit des letzten bekannten Statusstamms des Transaktionspaars sicherzustellen. Der Beweis verifiziert, dass die Zustandsänderung mit der vorherigen Wurzel übereinstimmt.
5. Wenn gültig, aktualisiert der Client auf den neuen Statusstamm, der im Blockheader angegeben ist. Dieser neue Zustandsstamm wird zur Validierung des nächsten Blocks verwendet.
Durch die Verwendung von Zeugen zur Überprüfung des Status, anstatt den vollständigen Status lokal zu speichern, haben zustandslose Clients mehrere Vorteile:
● Sehr schnelle Synchronisierungszeiten – keine vollständige Synchronisierung historischer Statusänderungen erforderlich. Zustandslose Clients können fast sofort synchronisiert werden und benötigen nur Blockheader.
● Geringe Speicheranforderungen – der Statusstamm ist nur 32 Bytes groß. Anstelle von Hunderten von Gigabyte an Status werden nur Blockheader benötigt.
● Geringere Bandbreitennutzung – es werden nur Blockheader und Zeugen übertragen, nicht der vollständige Status. Die Bandbreitennutzung wird minimiert.
● Schnelle Überprüfung – Zeugen enthalten nur eine kleine Teilmenge relevanter Zustände. Nur aktualisierte Konten/Shops haben sich als nützlich erwiesen.
● Einfache Unterstützung von Light-Kunden – Light-Kunden können Proofs problemlos überprüfen. Das Light-Client-Modell ist sehr kompatibel mit der zustandslosen Validierung.
Herausforderungen staatenloser Kunden
Während zustandslose Clients einige erhebliche Vorteile mit sich bringen, gibt es auch einige erhebliche technische Herausforderungen:
● Zeugengröße – Zeugen sind möglicherweise zu groß, um effizient übermittelt zu werden. Wenn vollständige Merkle-Beweise verwendet werden, kann es sein, dass diese die Blockgrößenbeschränkung überschreiten.
● Zeugenerstellung – Die Generierung optimaler Zeugen ist für Blockantragsteller komplex. Der Antragsteller muss die richtigen Beweise zusammenstellen, um jede Transaktion zu überprüfen.
● Keine Zeugenanreize – Es gibt keine direkte Belohnung für die Zeugenaussage. Im Gegensatz zum Bergbau gibt es keine eingebauten Anreize für die Schaffung von Zeugen.
● Temporäre Daten – Zeugen beweisen den Status zu einem bestimmten Zeitpunkt und müssen neu generiert werden. Zeugen können während der Staatsentwicklung nicht wiederverwendet werden.
● Zustandsspeicherung – Jemand muss immer noch den vollständigen Zustand aufrechterhalten, um Zeugen zu generieren. Die zustandslose Validierung basiert auf der Generierung zustandsbehafteter Zeugen.
● Komplexe Anwendungen – Einige Verträge basieren möglicherweise auf größeren Teilmengen von Staaten, wodurch der Zeuge aufgebläht wird. Zum Beispiel ein Vertrag, der viele Speicherplätze pro Transaktion aktualisiert.
mögliche Lösungen
Forscher haben verschiedene Lösungen vorgeschlagen, um diese Herausforderungen anzugehen:
● Verkle-Baum – eine spezielle Datenstruktur zur Reduzierung der Zeugengröße. Verkle-Bäume verwenden prägnante kryptografische Verpflichtungen, um die Beweisgröße zu minimieren.
● Zeugen-Cache – Antragsteller können aktuelle Zeugen zur Wiederverwendung aufbewahren. Caching kann wiederum nützlich sein, da die Erstellungskosten amortisiert werden können.
● Protokollanreize – bieten einen Belohnungsmechanismus für nützliche Zeugen. Neue Anreizstrukturen können die Schaffung von Zeugen kompensieren.
● Zwischenstatus-Wurzeln – Verfolgen Sie Wurzeln im Laufe der Zeit, um eine erneute Generierung von Beweisen zu vermeiden. Die Beibehaltung von Teilen der Wurzel ermöglicht die Wiederverwendung von Zeugenfragmenten.
● Zustandsmiete – Erfordert eine Zahlung, um den Zustand über einen längeren Zeitraum aufrechtzuerhalten und ungenutzten Zustand zu beschneiden. Miete erzwingt die Bereinigung von veraltetem Speicher, um die Proofgröße zu begrenzen.
● Partitioniertes Zeugenmodell – geteilte Zustandsverarbeitung zwischen Antragstellern und Validatoren. Eine Reihe dedizierter Antragstellerknoten generieren Zeugen.
Es gibt Kompromisse zwischen diesen Ansätzen und es sind weitere Untersuchungen erforderlich, um die optimale Umsetzung zu ermitteln. Glücklicherweise können schnelle Innovationen in der wissensfreien Kryptographie zu neuen Möglichkeiten für effiziente zustandslose Clients führen.
mögliche Auswirkungen
Wenn technische Hürden überwunden werden können, könnten staatenlose Clients das Wachstum von Ethereum deutlich ankurbeln:
● Schnellere Synchronisierung und Überprüfung zur Unterstützung eines höheren Transaktionsdurchsatzes. Die zustandslose Überprüfung wird die Blockverarbeitung erheblich beschleunigen.
● Reduzieren Sie die für den Betrieb von Knoten erforderlichen Ressourcen und verbessern Sie die Dezentralisierung. Laptops und Bastler können realistischerweise vollständige Knoten ausführen.
● Bessere Unterstützung für Light-Clients wie mobile Geldbörsen. Der Staatsnachweis ist in hohem Maße mit dem Light-Client-Modell kompatibel.
● Führen Sie Sharding reibungsloser ein und führen Sie eine zustandslose Überprüfung zwischen Shards durch. Shardübergreifende Transaktionen können von effizienten Zustandsnachweisen profitieren.
● Die Möglichkeit, alte Zustandsdaten, die nicht mehr nützlich sind, zu löschen und zu bereinigen. Das Staatswachstum kann aktiv gesteuert werden, anstatt endlos zu wachsen.
● Die Möglichkeit für Knotenbetreiber, den Status flexibler an die Bedürfnisse anzupassen. Knoten können Statusaufbewahrungsrichtlinien basierend auf Anwendungsfällen anpassen.
● Übergang zu einem Modell, bei dem Rechenleistung und Bandbreite wichtiger sind als Speicher. Die Architektur ändert sich hin zu cloudfreundlicheren Modellen.
Darüber hinaus bestehen potenzielle Risiken, etwa eine erhöhte Anfälligkeit für DDoS-Angriffe und die Tatsache, dass nur wenige Knotenbetreiber den Blockchain-Verlauf zuverlässig speichern. Allerdings können kryptografische Beweise diese Risiken verringern. Insgesamt sind staatenlose Clients eine der vielversprechendsten Möglichkeiten, die aktuellen Einschränkungen von Ethereum zu überwinden.
abschließend
Mit zunehmender Akzeptanz stellt die wachsende Staatsgröße von Ethereum eine Herausforderung für die Dezentralisierung dar. Zustandslose Clients bieten eine Lösung, indem sie es Knoten ermöglichen, Transaktionen zu überprüfen, ohne den vollständigen Blockchain-Status zu benötigen. Dies könnte es schließlich ermöglichen, dass Mobiltelefone Ethereum-Knoten betreiben, was die Dezentralisierung erheblich steigert. #DeFiChallenge
