paint-brush
Skalierung von Ethereum: Datenaufblähung, Datenverfügbarkeit und die Cloudless-Lösungvon@logos
5,369 Lesungen
5,369 Lesungen

Skalierung von Ethereum: Datenaufblähung, Datenverfügbarkeit und die Cloudless-Lösung

von Logos11m2024/06/12
Read on Terminal Reader

Zu lang; Lesen

Codex ist ein cloudloses, vertrauensloses P2P-Speicherprotokoll, das starke Datenpersistenz- und Haltbarkeitsgarantien für das Ethereum-Ökosystem und darüber hinaus bieten soll. Aufgrund der schnellen Entwicklung und Implementierung neuer Protokolle ist die Ethereum-Blockchain-Kette mit Daten aufgebläht. Diese Datenüberlastung kann auch als „Netzwerküberlastung“ definiert werden, bei der Transaktionsdaten das Netzwerk verstopfen und die Skalierbarkeit beeinträchtigen. Codex bietet eine Lösung für das DA-Problem, allerdings mit Datenpersistenz.
featured image - Skalierung von Ethereum: Datenaufblähung, Datenverfügbarkeit und die Cloudless-Lösung
Logos HackerNoon profile picture

Codex ist ein cloudloses, vertrauensloses P2P-Speicherprotokoll, das starke Datenpersistenz- und Haltbarkeitsgarantien für das Ethereum-Ökosystem und darüber hinaus bieten soll. Derzeit bietet EIP-4844 nur eine Teillösung für das Problem der Datenüberladung. Die Gebühren bleiben hoch und das Ökosystem bietet nur wenige Optionen für die langfristige Datenspeicherung.


Wenn man feststellt, wie man die überschüssigen Daten von Ethereum speichert, kann man es in Zukunft unbegrenzt skalieren. Codex ist auf den Plan getreten, um diese Bedenken auszuräumen. Lassen Sie uns das Problem untersuchen.


Haben Sie auf Uniswap schon einmal ETH gegen ein anderes Token getauscht?


Ich habe mich über Metamask verbunden und versucht, 0,001 Eth (ungefähr 35 $) gegen SNT einzutauschen. Die Gasgebühr kostet so viel wie die Transaktion. Das ist eine zu hohe Gebühr für den Handel mit Kryptowährung. Die meisten Leute wollen nicht so viel bezahlen.


Kommen wir zum Kern der Frage, warum diese Transaktionen so teuer sind.



20.03.2024

Web3 und dezentrale Finanzen sind in den letzten Jahren massiv gewachsen. Aufgrund der rasanten Entwicklung und Implementierung neuer Protokolle ist die Ethereum-Blockchain-Kette mit Daten aufgebläht. Das Ergebnis? Unerschwinglich hohe Gasgebühren und schlechte Benutzererfahrung. Diese Datenflut kann auch als „Netzwerküberlastung“ definiert werden, bei der Transaktionsdaten das Netzwerk verstopfen und die Skalierbarkeit beeinträchtigen.


Dieser Artikel untersucht, warum die Blockchain so aufgebläht ist, warum der Transaktionsdurchsatz gelitten hat und welche verschiedenen Ansätze es zur Lösung des Problems gibt. Ich werde mich insbesondere auf die Datenverfügbarkeit im Zusammenhang mit Ethereum und Rollups konzentrieren. Ich werde untersuchen, wie Codex eine Lösung für das DA-Problem bietet, allerdings mit Garantien für Datenpersistenz und -haltbarkeit, die den meisten anderen Lösungen fehlen.


Haben Sie Geduld mit mir. Ich werde Fachjargon und Fachsprache verwenden, aber ich werde mein Bestes tun, um dieses wichtige, unterschätzte Thema in klarer Sprache zu behandeln. Mehr Leute im Ökosystem müssen sich damit auseinandersetzen, wie robust Data Availability Sampling (DAS) für die Skalierung von Blockchains ist. Bevor der Leser fortfährt, sollte er sich über Konsensmechanismen, Proof of Stake und die Funktionsweise der Technologie auf hohem Niveau informiert haben.


Beginnen wir mit der Analyse des Blockchain-Trilemmas.

Problematisches Trilemma

Alle dezentralen Technologien, die wachsen wollen, leiden unter ähnlichen Einschränkungen.


Sie wollen skalieren, damit immer mehr Benutzer die Technologie nutzen können – von Tausenden bis hin zu Millionen. Die Skalierung verschiedener Technologien bringt jedoch unterschiedliche technische Herausforderungen mit sich.


Im Fall von Ethereum enthalten die Blöcke in der Kette Transaktions-, Status- und Smart-Contract-Daten. Je mehr Leute das Netzwerk nutzen, desto mehr Daten werden jedem Block hinzugefügt. Das Problem ist, dass, wenn die Blöcke voll sind, ein Gebührenmarkt entsteht, auf dem diejenigen, die höhere Gasgebühren zahlen, mit größerer Wahrscheinlichkeit ihre Transaktion im nächsten Block erhalten.


Eine einfache Lösung wäre, die Blockgröße zu erweitern und mehr Transaktionsdaten zuzulassen. Dieser Ansatz hat jedoch ein Problem, das Teil des Blockchain-Trilemmas ist.

Das Trilemma besagt, dass Blockchains drei Hauptmerkmale haben, die beibehalten und verbessert werden sollen: Skalierbarkeit, Dezentralisierung und Sicherheit. Das Trilemma legt nahe, dass der Versuch, zwei dieser Merkmale zu verbessern, das andere reduziert.


Im Falle von Ethereum erhöht die Erweiterung der Blockkapazität auch die Hardwareanforderungen für den Betrieb eines voll validierenden Knotens im Netzwerk. Wenn das Netzwerk die Hardwareanforderungen auf diese Weise erhöht, wird es für normale Benutzer schwieriger, einen vollständigen Knoten zu betreiben – was sich negativ auf das Netzwerk auswirkt, da die allgemeine Dezentralisierung und Zensurresistenz abnimmt.


Oberflächlich betrachtet scheint das Problem unüberwindbar. Glücklicherweise denken Entwickler und Ingenieure darüber nach, wie Blockchains skaliert werden können. Sie stellen sich Blockchains und ihre Ökosysteme eher modular als monolithisch vor.

Modular versus monolithisch

Es ist wichtig, noch einmal zu betonen, dass der Betrieb eines vollständigen Knotens im Netzwerk für dessen Erfolg unerlässlich ist. Aber was genau ist ein „vollständiger Knoten“ oder „vollständig validierender Knoten“?


Ein Full Node ist ein Netzwerkteilnehmer, der alle Blockchain-Daten herunterlädt und alle im Netzwerk erstellten Transaktionen ausführt. Full Nodes benötigen mehr Rechenleistung und Speicherplatz, da sie den gesamten Transaktionsdatensatz herunterladen.


Ein Artikel von Yuan Han Li mit dem Titel „ WTF ist Datenverfügbarkeit “ erklärt:

„Da Vollknoten jede Transaktion prüfen, um sicherzustellen, dass sie den Regeln der Blockchain entspricht, können Blockchains nicht mehr Transaktionen pro Sekunde verarbeiten, ohne die Hardwareanforderungen für den Betrieb eines Vollknotens zu erhöhen (bessere Hardware = leistungsfähigere Vollknoten = Vollknoten können mehr Transaktionen prüfen = größere Blöcke mit mehr Transaktionen sind zulässig).“


Das Problem bei der Aufrechterhaltung der Dezentralisierung besteht darin, dass einige Netzwerkteilnehmer vollständige Knoten ausführen sollen. Diese Knoten erfordern jedoch enorme Rechenleistung, deren Anschaffung und Wartung für die meisten Benutzer zu teuer ist. Und wenn dies geschieht, begrenzt es die Anzahl der Knoten im Netzwerk drastisch und schadet der allgemeinen Dezentralisierung.


Das Hauptproblem besteht darin, dass die Miner und Validierer Daten aus dem Netzwerk zurückhalten könnten, wodurch andere daran gehindert würden, auf alle Daten zuzugreifen. Dies ist der Kern des Problems im Zusammenhang mit „monolithischen Blockchains“.


Obwohl dies in diesem Ökosystem ein etwas überstrapaziertes Schlagwort ist, bedeutet die Idee des „Monolithischen“ in der Blockchain, dass die Basisschicht – oder die Ethereum-Blockchain – als Abwicklungsschicht, Konsensschicht und Datenverfügbarkeitsschicht fungieren muss, was das System mit Daten aufbläht, den Transaktionsdurchsatz verlangsamt und die Gebühren erhöht.


Die Lösung für dieses Problem einer „monolithischen“ Blockchain besteht darin, ihre Funktionalität zu „modularisieren“ und die Datenverfügbarkeitsfunktion auf andere Netzwerkteilnehmer auszulagern. In diesem Szenario würde die Basisschicht der Blockchain dann nur als Abwicklungs- und Konsensschicht fungieren. Alle Anforderungen an die Datenverfügbarkeit würden auf andere Akteure im Netzwerk ausgelagert.

Nachdem wir nun die Vorteile der Modularisierung verstanden haben, stellt sich die Frage, was genau Datenverfügbarkeit ist und warum sie für das Netzwerk von entscheidender Bedeutung ist.

Das DA-Problem und Rollups

Datenverfügbarkeit ist das, was eine Blockchain benötigt, um als unveränderlicher Schiedsrichter der Wahrheit zu funktionieren. Ohne die Verfügbarkeit von Transaktionsdaten wüsste niemand, ob die Blockchain betrügerische oder ungültige Transaktionen enthält. Mit anderen Worten, niemand könnte beweisen, ob die Validierer und Miner böswillig gehandelt haben oder nicht. Ein __ Artikel __ von Emmanuel Awosika beschrieb es:

„Datenverfügbarkeit“ ist die Garantie, dass die Daten hinter einem neu vorgeschlagenen Block – die zur Überprüfung der Richtigkeit des Blocks erforderlich sind – anderen Teilnehmern im Blockchain-Netzwerk zur Verfügung stehen.“


Eine wichtige Randbemerkung: Beachten Sie, dass es einen Unterschied zwischen „Datenverfügbarkeit“ und „Datenspeicherung“ gibt. Viele Leute in diesem Bereich verwechseln die beiden. Bei der Datenverfügbarkeit geht es darum, ob die Daten verfügbar sind und jeder darauf zugreifen kann, und bei der Datenspeicherung geht es darum, Daten langfristig an einem Ort aufzubewahren. In diesem Sinne beinhaltet die Datenspeicherung die Idee der „Datenpersistenz“. Nick White, COO von Celestia, gab einen starke Analogie :


Wenn Sie Konserven haben, stellen diese eine Datenspeicherung dar. Die Lebensmittel sind in der Dose und werden langfristig gelagert. Sie können jederzeit abgerufen und aus dem Lager genommen werden. In diesem Sinne gibt es im Hinblick auf die „Datenspeicherung“ ein Element der „Datenpersistenz“. Umgekehrt ist die Datenverfügbarkeit eher wie ein Buffet. Die Lebensmittel werden zubereitet und auf einem Buffettisch ausgebreitet. Sie stehen jedem zum Probieren zur Verfügung. Mit der Datenverfügbarkeit verhält es sich ähnlich.


Daten werden dem Netzwerk in erster Linie zur Verfügung gestellt, damit die Netzwerkteilnehmer überprüfen können, ob die Daten korrekt sind und keine böswilligen Transaktionen enthalten.

Dies wirft die Frage auf: Was ist das „Datenverfügbarkeitsproblem“?


Das „Problem der Datenverfügbarkeit“ ist das zentrale Problem, das Technologen zu lösen versuchen, um Ethereum zu skalieren. Das Problem besteht darin, dass kleinere Knoten, sogenannte „Light Nodes“, normalerweise nicht über die Hardwareanforderungen verfügen, um alle Transaktionen herunterzuladen und auszuführen, wenn ein vollständiger Knoten Transaktionsdaten im Ökosystem überträgt.

In einem Artikel auf ledger.com wird die Funktionsweise von Light Nodes erklärt:

„Light Nodes laden keine Transaktionen herunter oder validieren sie und enthalten nur den Blockheader. Mit anderen Worten: Light Nodes gehen davon aus, dass Transaktionen in einem Block gültig sind, ohne die Überprüfung, die Full Nodes bieten, was Light Nodes weniger sicher macht. Dieses Problem wird als Datenverfügbarkeitsproblem bezeichnet.“


In diesem Fall müssen diese Knoten nur wissen, ob die Daten verfügbar sind und ob sie den aktuellen „Zustand“ der Blockchain darstellen. Ein „Zustand“ sind einfach alle in der Kette gespeicherten Blockchain-Daten, Adresssalden und Smart-Contract-Werte. In der Ethereum-Blockchain in ihrer aktuellen Form müssen sich Light Clients auf sogenannte Datenverfügbarkeitskomitees (DACs) verlassen, die On-Chain-Bestätigungen abgeben, dass die Daten tatsächlich verfügbar sind.


Im Rahmen einer Ethereum-Skalierungslösung, einem sogenannten Rollup, müssen diese Daten verfügbar gemacht werden, damit die Netzwerkteilnehmer feststellen können, ob diese Daten den Netzwerkregeln entsprechen. Mit anderen Worten, sie müssen sicherstellen, dass die Daten korrekt sind und dass die Validierer nicht versuchen, die Light-Clients zu täuschen.

Optimistische und ZK-Rollups

Um das DA-Problem besser zu verstehen, ist es wichtig, Rollups zu verstehen. Rollups sind Blockchains der zweiten Schicht, die Knoten haben, die Sequenzer genannt werden. Diese Sequenzer helfen beim Batching, Komprimieren und Ordnen von Transaktionen. Benjamin Simon beschrieb die Beziehung zwischen Rollups und Ethereum:

„Ein Rollup ist im Wesentlichen eine separate Blockchain, allerdings mit ein paar Modifikationen. Wie Ethereum verfügt ein Rollup-Protokoll über eine „virtuelle Maschine“, die Smart-Contract-Code ausführt. Die virtuelle Maschine des Rollups arbeitet unabhängig von Ethereums eigener virtueller Maschine (der „ EVM ”), aber es wird von einem Ethereum-Smart-Contract verwaltet. Diese Verbindung ermöglicht die Kommunikation zwischen Rollups und Ethereum. Ein Rollup führt Transaktionen aus und verarbeitet Daten, und Ethereum empfängt und speichert die Ergebnisse.”


Vereinfacht ausgedrückt sind Rollups Off-Chain-Skalierungslösungen. Rollups opfern jedoch nicht die Sicherheit, wie dies bei vielen „Off-Chain“-Skalierungslösungen normalerweise der Fall wäre. Bei Rollups erfolgen nur die Datenverarbeitung und -berechnung Off-Chain (über Sequenzer). Die Transaktionen werden letztendlich auf der Layer-1-Blockchain gespeichert, wodurch die Sicherheit gewahrt bleibt. Diese On-Chain-Daten wurden früher als „ Calldata “ bezeichnet.


In gewisser Weise sind Rollups die Möglichkeit für die Community, „alles zu haben und alles zu essen“. Sie können die Netzwerksicherheit aufrechterhalten und gleichzeitig die Benutzerfreundlichkeit skalieren. Es ist eine geniale Lösung.


Es gibt zwei beliebte Arten von Rollups: Optimistic Rollups und ZK Rollups.

  • Optimistische Rollups sind die am häufigsten diskutierten und eingesetzten Rollup-Typen. Wie der Name schon sagt, gehen „optimistische“ Rollups davon aus, dass es im Ökosystem mindestens 1 xn gute Akteure gibt. Was bedeutet das? Optimistische Rollups gehen davon aus, dass alle an das Netzwerk gesendeten Transaktionen gültig sind. Um diesen „Optimismus“ auszugleichen, bieten Rollups dem Netzwerk ein 7-tägiges Zeitfenster, um eine „ betrugssicher ”, die angibt, dass die vom Rollup übermittelten Transaktionen ungültig sind.


    Eine wichtige Sache, die man über optimistische Rollups wissen sollte, ist, dass sie größtenteils EVM-kompatibel sind, sodass Entwickler effizient mit ihnen arbeiten können. In dieser Hinsicht können sie als die beliebtere Skalierungslösung von Ethereum angesehen werden. Zwei Beispiele für optimistische Rollups sind Optimismus Und Arbitrum .

  • ZK-Rollups verwenden Zero-Knowledge-Kryptografie, um zu beweisen, dass die Transaktionen, die sie komprimieren und bündeln, korrekt und genau sind. Anstatt davon auszugehen, dass alle Transaktionen korrekt sind (wie optimistische Rollups), generieren ZK-Rollups einen „Gültigkeitsnachweis“, um die Gültigkeit der Transaktionen sofort nachzuweisen, wodurch Wartezeiten entfallen.


    Es ist jedoch bekannt, dass die Arbeit mit ZK-Rollups für Entwickler schwieriger sein kann, da nicht alle von ihnen EVM-kompatibel sind. ZK-Rollups sind außerdem rechenintensiv, da die Generierung der Proofs viele Ressourcen verbraucht. Dennoch kommen immer mehr EVM-kompatible Rollups auf den Markt. Die Scroll-Rollup EVM Lösung ist nur ein Beispiel.

Lösung: Datenverfügbarkeits-Sampling und Codex

Ich habe bereits erwähnt, dass Rollups ihre Daten irgendwo ablegen müssen. Die meisten Rollups haben, wie erwähnt, Daten an die Ethereum-Hauptkette gesendet – was zum Kern des Problems führt: Datenaufblähung. Wenn eine Datenaufblähung auftritt, leidet der Transaktionsdurchsatz und die Gebühren für Transaktionen und die Ausführung von Smart Contracts steigen.


Denken Sie daran, dass ein Teil der Lösung nicht darin besteht, sich für die Netzwerksicherheit auf vollständig validierte Knoten zu verlassen. Wenn wir uns nur auf diese Knoten verlassen, könnten die meisten Benutzer aufgrund der unerschwinglich teuren Hardwareanforderungen keine vollständigen Knoten ausführen. (Beachten Sie, dass die Erhöhung der Blockgröße eine mögliche, wenn auch zweifelhafte Lösung ist, da sich dieser Weg negativ auf die Dezentralisierung auswirkt. Dennoch ist dieses spezielle Argument ungültig geworden, da Rollups als Skalierungslösungen der Schicht 2 fungieren, die die Sicherheit der Hauptkette aufrechterhalten).

Was ist also die Lösung dafür, dass nicht jeder vollständige Knoten ausführt?

Die Lösung besteht darin, Light Nodes (sowie Full Nodes) zu befähigen, Daten zu verifizieren, ohne alle Transaktionen herunterzuladen und auszuführen. Dies ist der Kern des Problems und hier liegt die Magie der Skalierung des Ethereum-Netzwerks (unter anderen Blockchains).

Datenverfügbarkeit, Erasure Encoding und Codex

Der erste Schritt besteht darin, eine Datenverfügbarkeitsschicht mit einem robusten Netzwerk von Light Clients zu haben, um festzustellen, ob die Daten verfügbar sind. Aber wie können Light Clients, die normalerweise nur Header-Daten prüfen und sich für ihre Informationen auf vollständige Knoten verlassen, sicherstellen, dass ihre Daten gültig und vollständig sind? Die Antwort findet sich in einem mathematischen Trick namens „Data Availability Sampling (DAS)“.


DAS ist eine Methode, bei der ein Datenblock aus einem Datenblock entnommen und verwendet wird, um den Rest der vorhandenen Daten wahrscheinlichkeitsmäßig zu bestimmen und zu rekonstruieren. Viele Organisationen (einschließlich der Celestia Blockchain und DA-Schicht) nutzen DAS durch Erasure Encoding und polynomische Verpflichtungen. Reed Solomon Codes sind bei vielen Projekten die beliebteste Wahl. Diese Arten von Polynomen sieht aus wie das :

Y = a[o] + a[1]x + a[2]x^2+...+a[k]x^k


Diese Funktionen werden verwendet, um fehlende Daten zu ermitteln und sie vollständig wiederherzustellen. Dies funktioniert, indem K von N Daten erstellt werden, wobei K die Originaldaten und N die „Paritätsdaten“ sind. Wenn einige der Originaldaten verloren gehen, nutzt die Maschine des Knotens eine mathematische Funktion namens Lagrange Interpolation nach wiederherstellen. Die Mathematik dahinter erscheint den meisten Leuten geheimnisvoll, aber die Idee ist einfach.

Es gibt einige klare Beispiele für Erasure Coding in Aktion. Die Methode wurde verwendet, um zerkratzte CDs zu sichern. Erasure Coding in CDs kann die fehlenden Musikstücke aufgrund von Oberflächenschäden rekonstruieren. Satelliten nutzen Erasure Codes ebenfalls, wenn Daten in den Weiten des Weltraums verloren gehen. Der Satellit oder die CD können fehlende Daten rekonstruieren und so beiden Systemen redundanten Schutz bieten.


Das spezielle Schema, das Codex (und auch Celestia) verwenden, wird als 2D-Erasure-Coding-Schema bezeichnet. Es ist zu beachten, dass 2D-Erasure-Coding, obwohl es im Krypto-Ökosystem beliebt ist, keine neue Technologie ist. Allerdings ist es recht interessant, wie es zur Lösung des DA-Problems eingesetzt wird. Dr. Bautista __ erklärte __, wie das Codex-Team Erasure Coding einsetzt:

„Ähnlich wie bei Codex ist die Erasure Coding-Methode, also das Umwandeln der Originaldaten in eine redundantere und robustere Datenstruktur, grundlegend für das Funktionieren des restlichen Protokolls. Ohne sie funktioniert keine Magie. Bei Codex geschieht dies innerhalb des Codex-Clients des Knotens, der die Daten hochladen möchte, während dies bei Ethereum innerhalb des Ethereum-Validators des Consensus-/Beacon-Clients des Knotens geschieht, der den Block erstellt/vorschlägt.“

Es gibt noch mehr zu der Geschichte über die Reise der Daten im Codex, aber das geht über den Rahmen dieses Artikels hinaus. Lesen Sie Dr. Bautistas Stück um die Datenverteilung, das Sampling und die von Codex genutzten „Lazy Repair“-Mechanismen zu verstehen.


Codex beabsichtigt, eine gleichzeitige Datenspeicherung und -abruffunktion sowie eine Datenverfügbarkeitsprüfung durch Proof-Komprimierung zu bieten. Dies würde die Verarbeitung kurzlebiger Daten (oder Daten, die langfristig nicht benötigt werden) ermöglichen, und die Datenpersistenz und -haltbarkeit garantiert, dass sie in anderen Projekten nicht vorhanden sind.

Fazit: Das Problem lösen

Die Debatte darüber, wie man Blockchains skalieren kann, geht zu Ende. Im Bitcoin-Ökosystem wurde heftig darüber gestritten, wie man eine Blockchain skalieren kann, von der Erhöhung der Blockgrößenbeschränkung bis hin zur Nutzung von Layer-2-Lösungen. Tatsächlich ist eine Mischung aus beidem die vernünftigste Lösung. Beispielsweise kann Codex als Cloudless-Datenverfügbarkeitsschicht für Ethereum (und auch für andere Blockchains) fungieren, wodurch die Blockgröße wachsen kann, da das Netzwerk viele Knoten enthalten würde, um DA-Prüfungen im Netzwerk durchzuführen.

Die gute Nachricht ist, dass dadurch der Durchsatz des Netzwerks erhöht wird, während die Sicherheit der Basisschicht erhalten bleibt. Und was ergibt sich daraus? Ja, Sie haben es verstanden: günstigere Gebühren und schnellere Transaktionen. Als Benutzer von Blockchains ist uns das wirklich am wichtigsten.

Eines Tages, vielleicht bald, kann ich meinen Token-Tausch für ein paar Cent statt für 35 Dollar machen.


by Sterlin Lujan