EIP-2929: Erhöhte Gaskosten für State-Zugriffe
EIP-2929, eingeführt mit dem Berlin-Hard-Fork, modifiziert die Berechnung der Gaskosten für Zustandszugriffsoperationen auf Ethereum. Es erhöht die Kosten für den erstmaligen Zugriff auf eine Adresse oder einen Speicherplatz innerhalb
Struktur, Lesbarkeit, interne Verlinkung und SEO-Metadaten wurden automatisiert geprüft. Der Artikel wird fortlaufend aktualisiert und dient der Bildung, nicht als Finanzberatung.
Definition
EIP-2929, oder Ethereum Improvement Proposal 2929, stellt eine bedeutende Protokolländerung dar, die mit dem Berlin-Hard-Fork eingeführt wurde. Sein Hauptzweck ist es, die Gaskosten für den Zugriff auf den Ethereum-Zustand anzupassen, indem die Kosten für bestimmte Operationen erhöht werden, wenn sie zum ersten Mal innerhalb einer Transaktion ausgeführt werden. Diese Modifikation zielt darauf ab, die von diesen Operationen verbrauchten Rechenressourcen genauer widerzuspiegeln und die Widerstandsfähigkeit des Netzwerks gegen Denial-of-Service (DoS)-Angriffe zu verbessern.
EIP-2929 ist ein Ethereum Improvement Proposal, das die Gaskosten für den erstmaligen Zugriff auf bestimmte Zustandselemente (wie Speicherplätze oder Vertragsadressen) innerhalb einer Transaktion erhöht, während nachfolgende Zugriffe auf dieselben Elemente vergleichsweise günstiger werden.
Kernaussage
Die zentrale Auswirkung von EIP-2929 ist eine Neuausrichtung der Gaskosten, die „kalte“ Zustandszugriffe (der erste Lese- oder Schreibvorgang eines bestimmten Zustandselements in einer Transaktion) erheblich teurer macht, während „warme“ Zugriffe (nachfolgende Lese- oder Schreibvorgänge auf ein bereits zugriffenes Element) entweder günstiger sind oder ihre vorherigen Kosten beibehalten. Dies ermutigt Entwickler, Smart Contracts für effiziente Zustandszugriffsmuster zu optimieren und bietet ein robusteres Wirtschaftsmodell für die Nutzung von Netzwerkressourcen.
Mechanik
Vor dem Berlin-Hard-Fork waren die Gaskosten für Operationen wie SLOAD (Lesen aus dem Speicher) oder CALL (Interaktion mit einem anderen Vertrag) fest, unabhängig davon, ob dieser spezifische Speicherplatz oder diese Vertragsadresse bereits früher in derselben Transaktion aufgerufen worden war. Dieses feste Kostenmodell berücksichtigte nicht vollständig den zugrunde liegenden Rechen- und I/O-Overhead, der beim erstmaligen Abrufen von Daten aus dem Ethereum-Zustandsbaum anfällt. Jeder erstmalige Zugriff erfordert das Durchlaufen des Merkle-Patricia-Tries, was eine ressourcenintensivere Operation ist als der Zugriff auf Daten, die bereits während der Ausführung der aktuellen Transaktion in den Speicher geladen wurden.
EIP-2929 begegnet diesem Problem, indem es die Konzepte des „kalten“ und „warmen“ Zugriffs einführt. Wenn ein Opcode versucht, auf eine Adresse oder einen Speicherplatz zuzugreifen, prüft die Ethereum Virtual Machine (EVM) zunächst, ob dieses spezifische Element bereits zu einem transaktionsspezifischen Satz von accessed_addresses oder accessed_storage_keys hinzugefügt wurde. Ist das Element nicht in diesen Sätzen enthalten, gilt es als kalter Zugriff und verursacht höhere Gaskosten. Das Element wird dann dem jeweiligen Satz hinzugefügt. Ist das Element bereits vorhanden, handelt es sich um einen warmen Zugriff, und es werden geringere Gaskosten angewendet. Dieser Mechanismus stellt sicher, dass die anfängliche, teurere Abfrage von Zustandsdaten bezahlt wird, während nachfolgende, günstigere Zugriffe innerhalb derselben Transaktion davon profitieren, dass die Daten bereits „zwischengespeichert“ oder leicht verfügbar sind.
Konkret stiegen die Gaskosten für SLOAD (Lesen eines Speicherplatzes) von 800 Gas auf 2100 Gas für einen kalten Zugriff. Für warme Zugriffe wurden die Kosten auf 100 Gas gesenkt. Ähnlich wurden die Gaskosten für die CALL-Opcode-Familie (CALL, CALLCODE, DELEGATECALL, STATICCALL), BALANCE und die EXT*-Opcode-Familie (EXTCODESIZE, EXTCODEHASH, EXTCODECOPY) für kalte Zugriffe auf 2600 Gas erhöht. Warme Zugriffe für diese Opcodes verursachen typischerweise Kosten von 100 Gas. Eine wichtige Ausnahme gilt für vorkompilierte Verträge (Precompiles), die spezielle Verträge an festen Adressen (0x01 bis 0x09) sind und komplexe kryptografische oder Dienstfunktionen effizienter ausführen; Zugriffe auf diese unterliegen nicht den Kostensteigerungen von EIP-2929. Diese Differenzierung ist entscheidend, da Precompiles für viele kryptografische Operationen grundlegend und bereits hochoptimiert sind.
Trading-Relevanz
EIP-2929 beeinflusst die Ökonomie der Interaktion mit der Ethereum-Blockchain erheblich, insbesondere für dezentrale Anwendungen (dApps) und Smart Contracts. Für Nutzer bedeutet dies, dass Transaktionen, die Verträge betreffen, die viele einzigartige Zustandszugriffe durchführen, insbesondere über verschiedene Verträge oder zahlreiche Speicherplätze hinweg, wahrscheinlich höhere Gasgebühren verursachen werden. Dies kann die Kosten von Operationen wie der Interaktion mit komplexen DeFi-Protokollen, dem Prägen von NFTs aus neuen Sammlungen oder der Ausführung von Transaktionen beeinflussen, die eine Vielzahl von Vertragszuständen zum ersten Mal in einem bestimmten Block berühren. Entwickler müssen diese Gaskostenimplikationen nun bei der Gestaltung und Optimierung ihrer Smart Contracts berücksichtigen. Verträge, die häufig dieselben Speicherplätze aufrufen oder wiederholt mit denselben externen Verträgen innerhalb einer einzigen Transaktion interagieren, profitieren von den „warmen“ Zugriffsrabatten, was zu einer effizienteren Ausführung führt.
Umgekehrt könnten Verträge, die nicht unter Berücksichtigung von EIP-2929 entwickelt wurden, insbesondere ältere, nicht aktualisierbare Verträge, teurer in der Nutzung werden. Dies könnte zu einer Verringerung ihrer Benutzerfreundlichkeit führen oder sogar einige Operationen wirtschaftlich unrentabel machen, wenn die Gaskosten unerschwinglich hoch werden. Um dies abzumildern, bietet EIP-2930, das zusammen mit EIP-2929 im Berlin-Hard-Fork eingeführt wurde, eine Lösung: Zugriffslisten (Access Lists). Eine Zugriffsliste ermöglicht es einem Transaktionssender, explizit zu deklarieren, welche Adressen und Speicherplätze seine Transaktion beabsichtigt aufzurufen. Durch diese Vordeklaration kann die EVM diese spezifischen Zugriffe von Anfang an als „warm“ behandeln, selbst wenn sie sonst „kalt“ wären. Diese Funktion bietet einen Mechanismus für Benutzer und Wallets, um die Gaskosten für ältere Verträge zu optimieren, ohne Vertragsänderungen zu erfordern, wodurch die Auswirkungen der Kaltzugriffsstrafen von EIP-2929 effektiv reduziert werden.
Risiken
Die Einführung von EIP-2929 birgt mehrere Risiken, die sich hauptsächlich um erhöhte Transaktionskosten und potenzielle Kompatibilitätsprobleme für bestehende Smart Contracts drehen. Für dApps, die vor dem Berlin-Hard-Fork bereitgestellt wurden und auf eine große Anzahl einzigartiger Zustandszugriffe innerhalb einer einzigen Transaktion angewiesen sind, könnten die erhöhten Gaskosten für kalte Zugriffe ihre Operationen erheblich verteuern. Dies könnte zu einer verschlechterten Benutzererfahrung, einer geringeren Akzeptanz oder sogar dazu führen, dass bestimmte Funktionalitäten wirtschaftlich unrentabel werden. Entwickler solcher Verträge müssten, sofern sie aktualisierbar sind, ihren Code überarbeiten, um kalte Zustandszugriffe zu minimieren oder die Verwendung von EIP-2930-Zugriffslisten zu fördern.
Darüber hinaus kann die durch das Kalt-/Warm-Zugriffsmodell eingeführte Komplexität sowohl für Entwickler als auch für Benutzer eine Herausforderung darstellen. Entwickler benötigen ein tieferes Verständnis der EVM-Ausführung und der Zustandszugriffsmuster, um gas-effizienten Code zu schreiben. Benutzer, insbesondere solche, die mit älteren Verträgen interagieren, könnten unerwartet hohe Gasgebühren erleben, wenn sie sich der EIP-2929-Änderungen nicht bewusst sind und keine Zugriffslisten verwenden. Dies könnte zu Verwirrung und Frustration innerhalb des Ökosystems führen. Obwohl EIP-2929 darauf abzielt, die Netzwerksicherheit und -effizienz zu verbessern, bergen die Übergangsphase und die Notwendigkeit der Anpassung inhärente Risiken im Zusammenhang mit wirtschaftlichen Störungen und potenzieller Fragmentierung, falls Teile des Ökosystems sich nicht effektiv anpassen.
Geschichte und Beispiele
EIP-2929 wurde offiziell als Teil des Berlin-Hard-Forks eingeführt, der am 14. April 2021 im Ethereum-Mainnet live ging. Dieser Hard Fork war ein bedeutendes Netzwerk-Upgrade, das mehrere Ethereum Improvement Proposals bündelte, die darauf abzielten, die Effizienz, Sicherheit und das Wirtschaftsmodell des Netzwerks zu verbessern. Die Hauptmotivation hinter EIP-2929 war es, langjährige Bedenken hinsichtlich der Unterbewertung von Zustandszugriffsoperationen anzugehen, die das Ethereum-Netzwerk anfällig für Denial-of-Service (DoS)-Angriffe machten. Angreifer konnten Transaktionen erstellen, die wiederholt auf verschiedene Teile des Zustandsbaums zugriffen und Knoten dazu zwangen, teure I/O-Operationen für relativ geringe Gaskosten durchzuführen, wodurch das Netzwerk verlangsamt wurde.
Ein konkretes Beispiel für die Auswirkungen von EIP-2929 ist eine Transaktion, die mit mehreren verschiedenen ERC-20-Token interagiert. Vor EIP-2929 würde, wenn eine Transaktion balanceOf für zehn verschiedene ERC-20-Verträge aufrief, jede CALL-Operation feste Gaskosten verursachen. Nach EIP-2929, wenn diese zehn Verträge zuvor nicht in der Transaktion aufgerufen wurden, wäre jede der zehn CALL-Operationen ein „kalter“ Zugriff, der jeweils 2600 Gas kosten würde, deutlich höher als die vorherigen Kosten. Wenn die Transaktion jedoch dann balanceOf für einen dieser zehn Verträge erneut aufrief, wäre dieser zweite Zugriff „warm“ und würde nur 100 Gas kosten. Dies veranschaulicht, wie das EIP Anreize schafft, Zustandszugriffe zu konsolidieren oder Zugriffslisten zu verwenden. Ein weiteres Beispiel ist eine komplexe DeFi-Strategie, die mehrere Swaps über verschiedene dezentrale Börsen (DEXs) oder die Interaktion mit verschiedenen Lending-Protokollen beinhaltet. Jede Interaktion mit einem neuen Vertrag oder einem neuen Speicherplatz innerhalb eines Vertrags würde einen kalten Zugriff auslösen und potenziell die gesamten Transaktionskosten erhöhen.
Häufige Missverständnisse
Eines der am weitesten verbreiteten Missverständnisse bezüglich EIP-2929 ist, dass es eine pauschale Erhöhung aller Ethereum-Transaktionsgaskosten darstellt. Dies ist unzutreffend. EIP-2929 erhöht nicht einheitlich den Gaspreis für jede Operation; stattdessen zielt es spezifisch auf die erstmaligen Zustandszugriffe innerhalb einer Transaktion ab und erhöht deren Kosten. Transaktionen, die hauptsächlich mit bereits „warmen“ Zustandselementen interagieren oder die sorgfältig optimiert sind, um einzigartige Zustandszugriffe zu minimieren, könnten minimale oder sogar reduzierte Gesamtgaskosten aufgrund der niedrigeren Warmzugriffsgebühren sehen. Die Erhöhung ist bedingt und gilt nur, wenn eine Adresse oder ein Speicherplatz zum ersten Mal im Ausführungskontext einer bestimmten Transaktion aufgerufen wird.
Ein weiteres häufiges Missverständnis ist, dass EIP-2929 alle älteren Smart Contracts unbrauchbar oder unerschwinglich teuer macht. Während es stimmt, dass einige ältere Verträge aufgrund ihrer Zustandszugriffsmuster höhere Gaskosten verursachen könnten, bietet die Einführung von EIP-2930 (Zugriffslisten) eine entscheidende Abhilfestrategie. Benutzer und Wallets können Zugriffslisten nutzen, um die Zustandselemente, die eine Transaktion berühren wird, vorab zu deklarieren, wodurch das, was kalte Zugriffe gewesen wären, effektiv zu warmen Zugriffe wird und somit die Gaskosten reduziert werden. Dies bedeutet, dass selbst für nicht aktualisierbare Verträge ein Mechanismus zur Verwaltung und potenziellen Reduzierung der Auswirkungen der Kostensteigerungen von EIP-2929 existiert, wodurch weitreichende Störungen des bestehenden dApp-Ökosystems verhindert werden. Das EIP wurde entwickelt, um die Gesundheit des Netzwerks zu verbessern, nicht um bestehende Funktionalitäten ohne einen Anpassungspfad zu zerstören.
Zusammenfassung
EIP-2929 hat das Gaskostenmodell für Zustandszugriffsoperationen auf Ethereum, eingeführt mit dem Berlin-Hard-Fork, grundlegend verändert. Es unterscheidet zwischen „kalten“ (erstmaligen) und „warmen“ (nachfolgenden) Zugriffen auf Adressen und Speicherplätze innerhalb einer Transaktion, wodurch die Gaskosten für kalte Zugriffe erheblich erhöht und warme Zugriffe günstiger werden. Diese Änderung zielt darauf ab, die von der Zustandsabfrage verbrauchten Rechenressourcen genauer widerzuspiegeln und die Netzwerksicherheit gegen DoS-Angriffe zu verbessern. Obwohl es zu höheren Transaktionskosten für bestimmte dApps, insbesondere ältere, führen kann, fördert es auch gas-effizientes Vertragsdesign und wird durch die Zugriffslisten von EIP-2930 ergänzt, die es Benutzern ermöglichen, Kosten durch Vordeklaration von Zustandszugriffen zu optimieren. Das Verständnis von EIP-2929 ist für Entwickler und Benutzer, die sich in der sich entwickelnden Ökonomie der Ethereum-Blockchain bewegen, unerlässlich.
OKX EU · Offizieller Biturai-Partner
MiCA-lizenziert handeln. Flexibel mit Euro einzahlen.
Starte mit OKX EU auf einer vollständig MiCA-lizenzierten Plattform für den EWR. Zahle Euro per SEPA oder PayPal ein, kaufe Krypto mit Karte, Apple Pay oder Google Pay und prüfe die monatlichen 1:1-Reserven selbst.
- Vollständige MiCA-Lizenz für alle 30 EWR-Staaten
- Euro einzahlen per SEPA oder PayPal
- Krypto kaufen mit Karte, Apple Pay und Google Pay
- 1:1 gedeckte Reserven, monatlich nachprüfbar
Partnerlink · Biturai kann bei Nutzung eine Vergütung erhalten · PayPal für vollständig verifizierte EU-Konten · keine Anlageberatung
