paint-brush
„Rollups“ in Krypto verstehen: Gebühren und Überlastung reduzierenvon@0xkishan
274 Lesungen

„Rollups“ in Krypto verstehen: Gebühren und Überlastung reduzieren

von Kishan Kumar7m2023/07/17
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Derzeit ist Ethereum nur in der Lage, etwa 15 Transaktionen pro Sekunde abzuwickeln. Validatoren wählen eine Reihe von Transaktionen aus einem Transaktionspool aus, die noch bestätigt werden müssen, und die Art und Weise, wie sie diese Transaktionen auswählen, hängt von ihrem Gewinn ab. Sie müssen also dafür kämpfen, dass Ihre Transaktion aufgenommen wird, da nur eine begrenzte Anzahl von Transaktionen gleichzeitig verarbeitet werden kann.

People Mentioned

Mention Thumbnail
featured image - „Rollups“ in Krypto verstehen: Gebühren und Überlastung reduzieren
Kishan Kumar HackerNoon profile picture
0-item
1-item
2-item

Derzeit ist Ethereum nur in der Lage, etwa 15 Transaktionen pro Sekunde abzuwickeln; Dies bedeutet, dass Validatoren eine Reihe von Transaktionen aus einem Transaktionspool auswählen, die noch bestätigt werden müssen, und dass die Art und Weise, wie sie diese Transaktionen auswählen, tatsächlich mit ihrem Gewinn zusammenhängt. Sie müssen also dafür kämpfen, dass Ihre Transaktion aufgenommen wird, da nur eine begrenzte Anzahl von Transaktionen gleichzeitig verarbeitet werden kann.


Sie wissen, dass den Prüfern Gebühren zugesprochen werden, wenn sie Ihre Transaktion in einen Block aufnehmen. Denken Sie nun aus der Sicht eines Validators. Im Transaktionspool befinden sich derzeit zwei Transaktionen, die darauf warten, von einem Prüfer abgeholt zu werden. Eine Transaktion ist bereit, 10 $ zu zahlen, und die andere Transaktion zahlt nur 1 $ als Gebühr. Für welche Transaktion werden Sie sich entscheiden?


Der 10-Dollar-Preis, oder? Denn wenn Sie diese Transaktion in den Block aufnehmen, erhalten Sie 10 Dollar als Gebühr.

Aber bedeutet das, dass meine Transaktion nur dann abgeholt wird, wenn ich meine Gebühren hoch ansetze?

Lassen Sie mich das auf einfache Weise erklären. Bei der Interaktion mit dem Ethereum-Netzwerk rufen Sie normalerweise bestimmte Smart Contracts auf. Intelligente Verträge sind eine Reihe von Anweisungen; Betrachten Sie sie als ein Programm. Jede Anweisung erfordert eine gewisse Rechenleistung.


Das Folgende ist ein einfacher Vertrag in solider Sprache.


 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract HelloWorld { string public message; constructor() { message = "Hello World"; } function getMessage() public view returns (string memory) { return message; } function setMessage(string memory newMessage) public { message = newMessage; } }


Wenn du eine ... bist Solidität Als Entwickler können Sie abschätzen, wie viel Gas dieser Vertrag benötigt, wenn er auf EVM bereitgestellt wird.


Wenn Sie diesen Vertrag bereitstellen, wird als Erstes sein Konstruktor aufgerufen, der die message auf „Hello World“ setzt. Dadurch ändert sich der Zustand der Blockchain . Für jede Zustandsänderung fallen Gebühren an. Nehmen wir an, dass das Speichern einer Zeichenfolge in einer Variablen 1 $ kostet.


Wenn Sie die Nachricht auf etwas anderes setzen möchten, sagen wir „Willkommen zu Kishans Artikel“ , müssen Sie die Methode setMessage() im Vertrag aufrufen und Ihre erforderliche Nachricht übergeben. Dafür fallen wiederum einige Gebühren an, weil Sie verändern den Staat. Nehmen wir an, es war erneut 1 $ erforderlich.


Was ist, wenn ich die Nachricht sehen möchte? Sie können einfach getMessage(); aufrufen. Hierfür fallen keine Gebühren an, da der Status dadurch nicht geändert wird. Nachdem wir das erklärt haben, kehren wir zu unserer Diskussion zurück.


Nehmen wir an, aus irgendeinem Grund ruft Ihre Transaktion, die sich derzeit im Transaktionspool befand, diesen HelloWorld Smart-Vertrag auf und setzt die Nachricht auf Ihren Namen.


Nehmen wir nun an, dass ein Validator Ihre Transaktion hypothetisch auswählt. Er sieht, dass Sie die Gebühren auf 1 $ festgelegt haben und dass der Aufruf des Smart Contracts selbst 1 $ kostet. Er selbst erhielt also keine Gegenleistung. Alle Gebühren wurden durch die Interaktion mit dem Smart Contract verwendet. Warum wird er es dann aufheben? Diese Transaktion wird abgelehnt, da für den Validator kein Anreiz besteht, sie zu verarbeiten und in die Kette aufzunehmen. Sie müssen es also noch einmal mit höheren Gebühren versuchen, damit Sie den Prüfer dazu verleiten können, Ihre Transaktion auszuwählen.


Die Gasgebühr kann sehr wettbewerbsfähig werden, wenn viele Benutzer Transaktionen auf Ethereum durchführen. Ja, Sie können die Gebühren manuell festlegen. Beachten Sie jedoch, dass die Bestätigung viel Zeit in Anspruch nehmen kann, da die Prüfer nur die Transaktionen auswählen, die ihnen zugute kommen.


Wenn Ihre Transaktion zeitkritisch ist, Sie beispielsweise möchten, dass ein Geschäft so schnell wie möglich abgeschlossen wird, besteht das Risiko einer Liquidation. In diesem Szenario setzen Sie die Gebühren besser so hoch wie möglich an oder nutzen eine der Wallets, die Ihnen einen Kostenvoranschlag geben, der Ihre Transaktion innerhalb von Sekunden bestätigt. Denn Benzineinsparungen können dazu führen, dass Ihr gesamtes Portfolio vernichtet wird.


Diese hohen Gebühren haben viele Krypto-Enthusiasten davon abgehalten, Transaktionen auf Ethereum durchzuführen, und es wurden viele andere Layer-1-Lösungen eingeführt, um dieses Problem zu lösen. Aber es mangelt ihnen allen an Dezentralisierung, weshalb jeder auf web3 umsteigen würde.


Gibt es dafür eine Lösung?

Wir wollen die Dezentralisierung und Sicherheit von Ethereum nutzen, aber gleichzeitig nicht durch die hohen Gebühren unser Portemonnaie verlieren.


Eine Möglichkeit, diese Probleme anzugehen, sind Rollups, eine Layer-2-Skalierungslösung.

Rollups

Rollups sind eine Möglichkeit, Transaktionen zu aggregieren und außerhalb der Kette zu verarbeiten und das Ergebnis wieder in der Kette zu veröffentlichen.


All dies außerhalb und innerhalb der Kette könnte Zweifel am Verständnis aufkommen lassen, also lassen Sie es mich etwas näher erläutern. Stellen Sie sich Rollups als einen Prozess vor, der die Gebühren und die Überlastung der Ethereum-Blockchain erheblich reduzieren kann. Die Art und Weise, wie dies funktioniert, besteht darin, einen großen Stapel von Transaktionen zusammenzufassen (zu aggregieren) und sie auf eine Off-Chain wie Parallelkette, VM usw. zu verschieben. Diese Parallelketten werden von Layer-2-Netzwerken wie Arbitrum, zkSync , betrieben. Optimismus usw.

Wer aggregiert die Transaktion?

Die Aggregation erfolgt durch eine Entität namens Rollup-Operator, deren Hauptaufgabe darin besteht, Transaktionen von verschiedenen Benutzern zu sammeln und sie in einer Off-Chain-Umgebung auszuführen. Auch hier kann Off-Chain je nach Implementierung viele Dinge bedeuten, beispielsweise eine virtuelle Maschine, eine Sidechain oder ein anderes Layer-2-Protokoll.


Sobald es die Transaktionen ausgeführt hat, übermittelt es die aggregierten Daten (Rollup-Block) als Aufrufdaten an die Ethereum-Kette, zusammen mit dem Nachweis, dass es sie korrekt ausgeführt hat. Bis hierher ist uns klar, aber was sind Anrufdaten ?


Stellen Sie sich Anrufdaten als eine besondere Art von Daten vor, die auf Ethereum gespeichert werden können, ohne ausgeführt zu werden oder ihren Zustand zu beeinflussen.


Rollup-Betreiber müssen eine Gebühr an den Ethereum-Validator zahlen, um die Anrufdaten in einen Block aufzunehmen. Sobald es aufgenommen wurde. Der Rollup-Betreiber überwacht den Rollup-Vertrag (im nächsten Abschnitt erläutert) auf etwaige Anfechtungen oder Streitigkeiten seitens anderer Benutzer oder Prüfer. Bei Streitigkeiten wird entsprechend reagiert.

Wer überprüft es?

Ein Rollup-Vertrag ist für die Überprüfung der Transaktionsdaten und Nachweise verantwortlich, die in den von unserem Rollup-Betreiber übermittelten Anrufdaten enthalten sind. Es handelt sich um einen intelligenten Vertrag, der auf Ethereum bereitgestellt wird und den Status und die Logik des Rollups verwaltet.


Ein Rollup-Vertrag empfängt die Transaktionsdaten und Nachweise vom Rollup-Betreiber als Aufrufdaten, überprüft sie, aktualisiert den Status der Rollups und gibt bei Statusänderungen ein Ereignis aus.

Wie funktioniert es?

Fassen wir alles zusammen, was wir gelernt haben, und fassen es anhand eines Beispiels zusammen:

  1. Nehmen wir an, Sie möchten per Rollup 1 ETH an Ihren Freund Ram senden.


  2. Sie geben die Adresse des Ram und den zu sendenden Betrag in Ihrem Wallet an und unterzeichnen die Transaktion.


  3. Anschließend übermitteln Sie die Transaktion an einen Rollup-Operator, der für die Zusammenfassung der Transaktionen verschiedener Benutzer und deren Ausführung außerhalb der Chain-Ausführungsumgebung verantwortlich ist.


  4. Der Rollup-Betreiber bündelt Ihre Transaktion dann mit anderen Transaktionen in einem sogenannten Rollup-Block und übermittelt ihn als Calldata an die Ethereum-Kette. Anschließend zahlt es die Gebühren an die Validatoren für die Aufnahme in den Block.


  5. Abhängig von der Art des Rollups muss der Rollup-Betreiber nun möglicherweise zusammen mit den Anrufdaten einen Nachweis oder eine zusätzliche Bestätigung der Gültigkeit des Rollup-Blocks vorlegen.


  6. Anschließend wird der Rollup-Block vom Rollup-Vertrag verarbeitet, einem intelligenten Vertrag, der in der Ethereum-Kette bereitgestellt wird und den Status und die Logik des Rollups verwaltet. Der Vertrag überprüft den Beweis oder die Behauptung, aktualisiert den Status der Rollup-Benutzer und gibt ein Ereignis für alle Statusänderungen aus.


  7. Schließlich erhält Ram von Ihnen 1 ETH auf seinem Rollup-Konto.

Art der Rollups

Optimistische Rollups

Optimistische Rollups sind optimistisch. Ich meine damit, dass sie davon ausgehen, dass jede Transaktion im Stapel gültig ist. Aber es gibt einen Haken. Sie gewähren eine Nachfrist, in der ein Benutzer oder Prüfer, der die Transaktion für ungültig hält, diese durch Vorlage eines Betrugsbeweises anfechten kann. Das Ethereum-Mainnet verifiziert es dann, und wenn die Herausforderung erfolgreich ist, wird der Rollup-Block abgelehnt und der unehrliche Betreiber wird schwer bestraft.


Wenn es nach Ablauf der Schonfrist keine Streitigkeiten gibt, wird der Transaktionsstapel im Ethereum verankert und die darin enthaltenen Statusänderungen werden abgeschlossen.


Obwohl es eine erhöhte Skalierbarkeit und niedrigere Gasgebühren bietet, kommt es zu einer Verzögerung bei der Transaktionsendgültigkeit, da man auf die Kulanzfrist warten muss.


Es gibt zwei Hauptpferde im Rennen:

  1. Arbitrum ,
  2. Optimismus .

zK-Rollups

Ich habe einen ausführlichen Artikel geschrieben, in dem ZK-Rollups erläutert werden und auf den Sie sich beziehen können. Wie auch immer, ich möchte Ihnen einen kurzen Überblick darüber geben, was es ist und wie es funktioniert.


ZK-Rollups gehen im Gegensatz zu optimistischen Rollups davon aus, dass jede Transaktion ungültig ist, bis ihre Gültigkeit nachgewiesen ist. Es verwendet „Zero-Knowledge-Proofs“, um die Authentizität der Transaktion zu validieren. Sobald alle Transaktionen im Stapel durchlaufen sind, sendet es eine einzelne Transaktion zusammen mit dem Nachweis, dass der Rollup-Vertrag leicht überprüft werden kann, an Ethereum zurück.


Es ist sicherer als ein Optimistic-Rollup. Da es keine Schonfrist gibt, sind die Transaktionen sofort endgültig, da die Gültigkeit bereits durch kryptografische Beweise nachgewiesen ist. Die Erstellung des Beweises erfordert jedoch erhebliche Rechenleistung und Fachwissen, um ihn umzusetzen. Dies kann die Komplexität im Vergleich zu optimistischen Rollups erhöhen.


Zwei wichtige Pferde im Rennen sind:

  1. Polygon zkEVM

  2. zkSync-Ära


Vielen Dank, dass Sie sich die Zeit genommen haben, diesen Artikel zu lesen.

Weiterführende Literatur:

Verweise:

  1. Layer-2-Skalierung: zk-Rollups und optimistische Rollups | Zwillinge
  2. Zero-Knowledge-Rollups | ethereum.org
  3. Optimistische Rollups | ethereum.org
  4. Schicht 2 | ethereum.org
  5. Was sind „Rollups“ in Krypto? | Coinbase
  6. Was sind optimistische Rollups? — 101 Blockchains