Autor: Rosario Borgesi

Übersetzung: Huohuo, umgangssprachliche Blockchain

Die Ethereum-Blockchain hat dezentrale Anwendungen und Smart Contracts revolutioniert, aber für jede Transaktion fallen Ethereum-Gasgebühren an. In diesem Leitfaden entmystifizieren wir die Gasgebühren von Ethereum und lernen ihre Grundprinzipien, Berechnungsmethoden, Faktoren, die sich auf die Kosten auswirken, und wirksame Strategien zur Optimierung von Transaktionen bei gleichzeitiger Kostenkontrolle kennen.

1. Ethereum Gas verstehen

Gas ist der Treibstoff für Transaktionen und die Ausführung intelligenter Verträge auf der Ethereum-Blockchain. Es stellt den Rechenaufwand dar, der für die Verarbeitung dieser Vorgänge erforderlich ist, und wird in kleinen Ether-Stückelungen namens Gwei (1 Gwei = 10^-9 ETH) berechnet.

Mit anderen Worten: Gas ist eine Maßeinheit für Rechenarbeit, die einer bestimmten Menge Äther entspricht.

Aus diesem Grund sind Gasgebühren im Ethereum-Ökosystem von entscheidender Bedeutung:

1) Ressourcenzuweisung: Gasgebühren dienen als Mechanismus zur Zuweisung von Netzwerkressourcen. Indem es von den Nutzern verlangt, für die von ihnen genutzte Rechenleistung und den Speicherplatz zu bezahlen, gewährleistet das Netzwerk einen fairen Zugang und verhindert den Missbrauch von Ressourcen.

2) Netzwerk-Spam verhindern: Ohne Gasgebühren könnten böswillige Akteure das Netzwerk mit Spam-Transaktionen überschwemmen, das System überlasten und legitime Transaktionen verlangsamen. Gasgebühren machen Spam im Netzwerk teuer und finanziell unpraktisch.

3) Anreize für Miner schaffen: Gasgebühren bieten Minern einen Anreiz, Transaktionen in Blöcken einzubeziehen. Miner priorisieren Transaktionen mit höheren Gasgebühren und ermutigen Benutzer, wettbewerbsfähige Gebühren für eine zeitnahe Transaktionsabwicklung anzubieten.

4) Netzwerksicherheit: Gasgebühren tragen zur Sicherheit des Ethereum-Netzwerks bei. Sie stellen die korrekte Ausführung von Transaktionen und Smart Contracts sicher, indem sie den Nutzer für die damit verbundenen Rechenschritte bezahlen lassen. Dies blockiert potenzielle Angriffe und Schwachstellen.

5) Skalierbarkeit und Effizienz: Durch die Bereitstellung von Kosten für jeden Vorgang ermutigen Gasgebühren Entwickler, effizienten und optimierten Code zu schreiben. Der Fokus auf Effizienz ist für die Skalierung des Netzwerks von entscheidender Bedeutung, da er Best Practices fördert und die Belastung der Blockchain verringert.

6) Wirtschaftsmodell: Gasgebühren sind ein integraler Bestandteil des Ethereum-Wirtschaftsmodells. Sie fördern ein nachhaltiges Ökosystem, in dem Bergleute für ihre Bemühungen entlohnt werden, und fördern so das Wachstum und die Stabilität des Netzwerks.

2. Bestandteile der Gasgebühr

Verstehen Sie die Hauptkomponenten, aus denen sich die Ethereum-Gasgebühren zusammensetzen:

1) Grundgebühr: In der Vereinbarung festgelegt, müssen Sie mindestens diesen Betrag bezahlen, damit Ihre Transaktion als gültig gilt.

2) Prioritätsgebühr: ist ein Trinkgeld, das der Grundgebühr hinzugefügt wird, um Ihre Transaktion für Validatoren attraktiv zu machen, sodass diese sie in den nächsten Block aufnehmen.

Eine Transaktion, bei der nur die Grundgebühr gezahlt wird, ist technisch gültig, wird aber wahrscheinlich nicht berücksichtigt, da sie den Prüfern keinen Anreiz bietet, sich für sie zu entscheiden.

Die Prioritätsgebühr hängt von der Netzwerknutzung ab, wenn Sie die Transaktion senden: Wenn die Nachfrage groß ist, müssen Sie die Prioritätsgebühr möglicherweise höher festlegen, aber wenn die Nachfrage geringer ist, können Sie weniger bezahlen.

3. Berechnung der Transaktionsgebühr

Nehmen wir zum Beispiel an, Jordanien muss Taylor 1 ETH zahlen. Für einen ETH-Transfer sind 21.000 Gaseinheiten erforderlich, die Grundgebühr beträgt 10 Gwei. Jordan hat einen 2-Gwei-Tipp beigelegt.

Die Gesamtkosten betragen nun:

Verbrauchte Gaseinheiten * (Grundgebühr + Vorzugsgebühr)

Die Grundgebühr ist der vom Protokoll festgelegte Wert, und die Prioritätsgebühr ist der vom Benutzer als Validator-Eingabeaufforderung festgelegte Wert.

即21.000 * (10 + 2) = 252.000 wei(0,000252 ETH).

Wenn Jordan Geld überweist, werden 1,000252 ETH von Jordans Konto abgebucht. Taylor erhält 1.0000 ETH. Validatoren erhalten ein Trinkgeld von 0,000042 ETH. Die ETHbase-Gebühr von 0,00021 wird verbrannt, was bedeutet, dass sie aus dem Verkehr gezogen wird.

4. Daten lesen und schreiben

Das Ethereum-Netzwerk unterscheidet zwischen dem Schreiben von Daten in das Netzwerk und dem Lesen von Daten aus dem Netzwerk. Diese Unterscheidung spielt eine wichtige Rolle bei der Art und Weise, wie Sie Ihre Anwendungen schreiben. Im Allgemeinen wird das Schreiben von Daten als Transaktion bezeichnet, während das Lesen von Daten als Aufruf bezeichnet wird.

1) Transaktion: Eine Transaktion ändert den Netzwerkstatus beim Schreiben oder Ändern von Daten. Es kann so einfach sein wie das Senden von Ether an ein anderes Konto oder so komplex wie das Ausführen einer Vertragsfunktion oder das Hinzufügen eines neuen Vertrags zum Netzwerk. Um Transaktionen durchzuführen, müssen wir Gasgebühren zahlen, deren Bearbeitung zeitaufwändig ist.

2) Aufrufe: Aufrufe können verwendet werden, um Code über das Netzwerk auszuführen, die Daten jedoch nicht dauerhaft zu ändern. Sie werden im Wesentlichen zum Lesen von Daten verwendet und laufen daher kostenlos (es wird kein Gas verbraucht). Wenn Sie eine Vertragsfunktion durch Aufruf ausführen, erhalten Sie sofort den Rückgabewert.

5. Transaktionsobjekte

Sie können die Gasmenge festlegen, die Sie bei der Übermittlung einer Transaktion zu zahlen bereit sind, indem Sie die folgenden Parameter im Transaktionsobjekt festlegen:

1) GasLimit: Die maximale Menge an Gaseinheiten, die eine Transaktion verbrauchen kann. EVM gibt für jeden Berechnungsschritt die erforderlichen Gaseinheiten an.

2) maxPriorityFeePerGas: Der maximale Gaspreis, der als Validator-Tipp verbraucht wird.

3) maxFeePerGas: Die maximale Gebühr pro Gaseinheit, die Sie für die Transaktion zu zahlen bereit sind (einschließlich baseFeePerGas und maxPriorityFeePerGas)

6. London-Upgrade (EIP-1559)

Vor dem London-Upgrade wurden die Gebühren berechnet, ohne zwischen Grund- und Vorranggebühren zu unterscheiden.

Im Transaktionsobjekt können wir Folgendes festlegen:

1) GasLimit/startGas: Die maximale Menge an Gaseinheiten, die eine Transaktion verbrauchen kann. Das Gleiche wie zuvor.

2) Gaspreis: Der Wei-Betrag, den wir pro Gaseinheit zu zahlen bereit sind.

Angenommen, Alice muss 1 ETH an Bob zahlen. Bei der Transaktion beträgt die Gasgrenze 21.000 Einheiten und der Gaspreis 200 Gwei.

Die Gesamtkosten betragen: Gaseinheiten (Limit) * Gaspreis pro Einheit, also 21.000 * 200 = 4.200.000 gwei0,0042 ETH

7. Gebührenberechnung bei komplexen Transaktionen

Um die Transaktionskosten besser zu verstehen, können wir uns den EVM-Opcode ansehen. Berechnen wir also die Kosten für die Ausführung dieser Funktion:

Führt zu doMath ( uint a, uint b ) { a + b; b - a; a * b; a== 0;}

a + b (ADD) kostet 3 Gaseinheiten b - a (SUB) kostet 3 Gaseinheiten a * b (MUL) kostet 5 Gaseinheiten a == 0 (EQ) kostet 3 Gaseinheiten

Die Gesamtkosten dieser Transaktion betragen also 14 Gaseinheiten.

Es ist wichtig zu verstehen, dass, wenn wir im Transaktionsobjekt gasLimit gleich 6 angeben, nur die ersten beiden Vorgänge ausgeführt werden und dann die Transaktion gestoppt wird und die gezahlte gasFee nicht wiederhergestellt wird, da wir für die Arbeit bezahlen müssen Erledigt .

Wenn wir also den Parameter gasLimit auf einen ausreichenden Wert setzen müssen, damit unsere Transaktion ausgeführt werden kann, ohne unseren Ether zu verlieren.

In diesem speziellen Beispiel ist die Berechnung Ihrer Gasrechnung relativ einfach. Bei komplexeren Funktionen, insbesondere solchen mit Schleifen von Variablen unterschiedlicher Größe, kann es jedoch schwierig sein, die Gaskosten im Voraus zu bestimmen.

In diesem Fall können wir die Funktionen der beiden bekanntesten Entwicklungsbibliotheken von EstimateGas nutzen: ethers.js und web3.js. Mit dieser Funktion können wir die Gaskosten schätzen, die mit der Ausführung einer bestimmten Funktion auf der Ethereum-Blockchain verbunden sind.

Es sei jedoch daran erinnert, dass es immer eine gute Praxis ist, gasLimit und maxFeePerGas festzulegen, um die Ausführung von Transaktionen zu vermeiden, die zu viel Ether verbrauchen.

8. Strategien zur Reduzierung der Gasgebühren 1) Nutzen Sie Schicht 2

Layer-2 ist ein Hilfsframework oder -protokoll, das auf der Ethereum-Blockchain aufbaut. Diese Lösungen sollen die Skalierbarkeit verbessern und die Transaktionsgeschwindigkeit optimieren, indem sie die meisten Transaktionen außerhalb der Ethereum-Hauptkette (Layer 1 genannt) verarbeiten. Schicht 1 umfasst die Basis-Ethereum-Blockchain, wo die Transaktionskosten hoch sind und es aufgrund der hohen Nachfrage zu Skalierbarkeitsproblemen kommen kann.

Zu den verschiedenen Layer-2-Methoden gehören Rollups, die in Arbitrum und Optimism eingesetzt werden.

Rollups fassen mehrere Transaktionen zu einer einzigen Transaktion zusammen, komprimieren die Daten und speichern sie im Ethereum-Mainnet. Dies reduziert die Gasgebühren erheblich und verbessert die Skalierbarkeit, da eine einzelne Mainnet-Transaktion eine große Anzahl von Off-Chain-Transaktionen darstellen kann.

2) Ausführung in Zeiten geringer Netzwerküberlastung

Wenn wir auf der ersten Ebene operieren wollen, liegt die kostensparende Lösung auf der Hand: Wir müssen Transaktionen dann durchführen, wenn das Netzwerk weniger überlastet ist.

Tatsächlich erlaubt die Ethereum-Blockchain nur etwa 20–40 Transaktionen pro Sekunde (TPS) (das ist die Gesamtzahl aller Ethereum-Benutzer); wenn das Limit erreicht ist, sind Benutzer gezwungen, miteinander zu konkurrieren, um ihre Transaktionen zu erhalten Ursachen Gebühren steigen.

Um die Netzwerklast zu überprüfen, können wir Etherscan verwenden.

3) Transaktionen minimieren

Für jede Transaktion auf der Ethereum-Blockchain fallen Kosten an, die sogenannte Gasgebühr. Um diese Gebühren zu senken, müssen nach Möglichkeit mehrere Vorgänge zu einer einzigen Transaktion zusammengefasst werden. Beispielsweise können durch die Bündelung mehrerer Token-Transfers oder Interaktionen mit Smart Contracts in einer einzigen Transaktion die Gesamtkosten deutlich gesenkt werden.

4) Optimieren Sie die Codekomplexität

Bei Ethereum-Transaktionen wird Code ausgeführt, der in der Blockchain gespeichert ist. Komplexer und ineffizienter Code erfordert mehr Rechenressourcen, was zu höheren Gasgebühren führt. Durch die Optimierung und Vereinfachung Ihres Codes können Sie den für die Ausführung erforderlichen Aufwand reduzieren. Dazu gehören effiziente Codierungspraktiken, die Minimierung redundanter Berechnungen und der Einsatz effizienter Programmiertechniken.

5) Energiesparender Smart Contract

Bei der Entwicklung intelligenter Verträge ist es entscheidend, sie so zu gestalten, dass der Gasverbrauch minimiert wird. Dazu gehört die Vermeidung unnötiger Speichervorgänge, die Optimierung von Schleifen und die Reduzierung der Komplexität der Vertragslogik. Während der Entwicklung sollten Tools und Best Practices zur Gasoptimierung eingesetzt werden.

9. Fazit

Zusammenfassend lässt sich sagen, dass Gasgebühren ein wichtiger Bestandteil von Ethereum sind, da sie die Netzwerkintegrität wahren, Anreize für die korrekte Nutzung schaffen, Sicherheit gewährleisten und Skalierbarkeit unterstützen, was alles zusammen zum Aufbau eines effizienten und nachhaltigen Blockchain-Netzwerks beiträgt.

In diesem Artikel untersuchen wir die Berechnung und Schätzung von Gasgebühren und geben Einblick in verschiedene Strategien zur Minderung ihrer Auswirkungen. Durch den Einsatz von Optimierungstechniken, die Nutzung von Layer-2-Lösungen und die Implementierung von gassparendem Smart-Contract-Code können Benutzer und Entwickler die Transaktionskosten effektiv senken und die Gesamteffizienz von Anwendungen im Ethereum-Netzwerk steigern.

Mit einem tieferen Verständnis der Gasgebühren und praktischen Strategien zu deren Verwaltung sind Sie nun bereit, sich in der Ethereum-Umgebung zurechtzufinden und Ihre Codierungsbemühungen zu optimieren. Viel Spaß beim Codieren und mögen Ihre Ethereum-Interaktionen sowohl kostengünstig als auch innovativ sein!