Einleitung
Am 13. Mai 2024 schlug Vitalik EIP-7706 vor und schlug einen ergänzenden Plan zum bestehenden Gasmodell vor. Dieser Vorschlag isoliert die Gasberechnung von Anrufdaten und passt einen Mechanismus zur Preisgestaltung der Grundgebühr ähnlich wie bei Blob-Gas an, wodurch die Betriebskosten von Layer 2 (L2) weiter gesenkt werden. Die entsprechenden Vorschläge gehen auf EIP-4844 zurück, das im Februar 2022 vorgeschlagen wurde. Angesichts der erheblichen Zeitlücke werden in diesem Artikel die relevanten Materialien überprüft, um einen Überblick über die neuesten Entwicklungen im Ethereum-Gas-Mechanismus zu geben und den Lesern ein schnelles Verständnis der Aktualisierungen zu ermöglichen.
In seinem ursprünglichen Design führte Ethereum einen einfachen Auktionsmechanismus ein, um Transaktionsgebühren zu bepreisen, bei dem die Nutzer aktiv für ihre Transaktionen bieten mussten, indem sie einen Gaspreis festlegten. Da die von den Nutzern gezahlten Transaktionsgebühren an die Miner gehen, priorisieren die Miner im Allgemeinen Transaktionen auf der Grundlage der höchsten Gebote und gehen davon aus, dass der Miner Extractable Value (MEV) nicht berücksichtigt wird. Core-Entwickler identifizierten vier Hauptprobleme mit diesem Mechanismus:
Diskrepanz zwischen Volatilität der Transaktionsgebühr und Konsenskosten: Für eine aktive Blockchain besteht eine große Nachfrage nach der Einbeziehung von Transaktionen, was bedeutet, dass Blöcke leicht gefüllt werden können. Dies führt jedoch auch zu einer erheblichen Gebührenvolatilität. Wenn der durchschnittliche Gaspreis beispielsweise 10 Gwei beträgt, sind die Grenzkosten für das Hinzufügen einer weiteren Transaktion zu einem Block zehnmal höher als bei einem durchschnittlichen Gaspreis von 1 Gwei, was inakzeptabel ist.
Unnötige Verzögerungen für Benutzer: Aufgrund des harten Gaslimits pro Block und natürlicher Schwankungen des historischen Transaktionsvolumens warten Transaktionen oft mehrere Blöcke, um aufgenommen zu werden. Dies ist für das gesamte Netzwerk ineffizient, da es keinen Flexibilitätsmechanismus gibt, der es ermöglicht, dass ein Block größer und der nächste kleiner ist, um die unterschiedliche Nachfrage von Block zu Block zu erfüllen.
Ineffizienz bei der Preisgestaltung: Der einfache Auktionsmechanismus führt zu einer ineffizienten Preisfindung, die es den Nutzern erschwert, einen angemessenen Preis festzulegen. Dies führt oft dazu, dass Benutzer zu viel für Transaktionsgebühren bezahlen.
Instabilität in einer Blockchain ohne Blockbelohnungen: Wenn Blockbelohnungen aus dem Mining entfernt und ein reines Gebührenmodell eingeführt wird, kann dies zu Instabilität führen, wie z. B. der Schaffung von "Onkelblöcken", die Transaktionsgebühren stehlen und die Vektoren für mächtige egoistische Mining-Angriffe erhöhen.
Mit der Einführung und Implementierung von EIP-1559 erfuhr das Gasmodell seine erste bedeutende Iteration. Dieser Mechanismus, der von Vitalik und anderen Kernentwicklern am 13. April 2019 vorgeschlagen und während des Londoner Upgrades am 5. August 2021 übernommen wurde, gab das Auktionsmodell zugunsten eines Dual-Pricing-Modells auf, das aus einer Grundgebühr und einer Prioritätsgebühr besteht. Die Grundgebühr wird quantitativ durch ein vorgegebenes mathematisches Modell angepasst, das auf dem Gasverbrauch im Mutterblock im Verhältnis zu einem variablen und rekursiven Gasziel basiert.
Berechnung und Auswirkungen der Grundgebühr: Wenn der Gasverbrauch im vorherigen Block das Gasziel überschreitet, erhöht sich die Grundgebühr; wenn es das Gasziel nicht erreicht, sinkt die Grundgebühr. Diese Anpassung spiegelt die Dynamik von Angebot und Nachfrage gut wider und verbessert die Genauigkeit angemessener Gasvorhersagen, wodurch exorbitante Gaspreise aufgrund von Fehlbedienungen vermieden werden, da die Berechnung der Grundgebühr vom System bestimmt und nicht vom Benutzer spezifiziert wird. Der spezifische Code für die Berechnung lautet wie folgt:
Aus dem Inhalt können wir ableiten, dass, wenn die parent_gas_used größer als die parent_gas_target ist, die Grundgebühr des aktuellen Blocks im Vergleich zur Grundgebühr des vorherigen Blocks um einen Offset-Wert erhöht wird. Dieser Offset wird bestimmt, indem der parent_base_fee mit der Abweichung des Gesamtgasverbrauchs vom Gasziel im vorherigen Block multipliziert wird, dann der Rest des Gasziels und eine Konstante sowie der Maximalwert zwischen diesem Rest und 1 genommen werden. Umgekehrt gilt die Logik ähnlich, wenn die parent_gas_used kleiner als die parent_gas_target ist.
Außerdem wird die Grundgebühr nicht mehr als Belohnung an die Miner verteilt, sondern stattdessen verbrannt. Dies macht das Wirtschaftsmodell der ETH deflationär und trägt zur Stabilisierung ihres Wertes bei. Auf der anderen Seite kann die Prioritätsgebühr, ähnlich einem Trinkgeld von Benutzern an Miner, frei bepreist werden, was ein gewisses Maß an Wiederverwendung in den Sortieralgorithmen der Miner ermöglicht.
Im Jahr 2021 war die Rollup-Entwicklung in ein ausgereiftes Stadium eingetreten. Wir wissen, dass sowohl OP Rollup als auch ZK Rollup die Komprimierung von L2-Daten und das Hochladen einiger Proof-Daten über Calldata in die Kette zur Datenverfügbarkeit oder direkten On-Chain-Verifizierung beinhalten. Dies führt zu erheblichen Gaskosten bei der Aufrechterhaltung der L2-Finalität, die letztendlich von den Benutzern getragen werden, was zu höheren Kosten als erwartet für die meisten L2-Protokolle führt.
Gleichzeitig stand Ethereum vor der Herausforderung des Blockraumwettbewerbs. Jeder Block hat ein Gaslimit, was bedeutet, dass der Gesamtgasverbrauch aller Transaktionen in einem Block dieses Limit nicht überschreiten darf. Mit dem aktuellen Gaslimit von 30.000.000 gibt es theoretisch ein Limit von 1.875.000 Bytes (30.000.000 / 16) pro Block, wobei 16 Einheiten Gas für jedes von der EVM verarbeitete Calldata-Byte benötigt werden, was zu einer maximalen Datenkapazität von etwa 1,79 MB pro Block führt. Die von L2-Sequenzern generierten Rollup-bezogenen Daten sind in der Regel groß, was zu einem Wettbewerb mit den Transaktionen anderer Mainnet-Benutzer führt und die Anzahl der Transaktionen reduziert, die in einem einzelnen Block enthalten sein können, wodurch sich dies auf die TPS des Mainnets auswirkt.
Um dieses Problem zu beheben, schlugen die Kernentwickler am 5. Februar 2022 EIP-4844 vor, das nach dem Dencun-Upgrade Anfang des 2. Quartals 2024 implementiert wurde. Mit diesem Vorschlag wurde ein neuer Transaktionstyp namens Blobtransaktion eingeführt. Im Gegensatz zu herkömmlichen Transaktionen enthält Blob Transaction einen neuen Datentyp, Blobdaten, auf den im Gegensatz zu calldata nicht direkt von der EVM zugegriffen werden kann, sondern nur über ihren Hash, der auch als VersionedHash bezeichnet wird. Darüber hinaus haben Blob-Transaktionen im Vergleich zu regulären Transaktionen einen kürzeren GC-Zyklus, wodurch verhindert wird, dass Blockdaten zu stark aufgebläht werden. Blob-Daten verfügen auch über einen inhärenten Gasmechanismus, ähnlich wie EIP-1559, verwenden jedoch eine natürliche Exponentialfunktion in ihrem mathematischen Modell, die eine bessere Stabilität bei der Behandlung von Transaktionsgrößenschwankungen bietet. Die Steigung der natürlichen Exponentialfunktion ist auch eine natürliche Exponentialfunktion, was bedeutet, dass unabhängig vom aktuellen Zustand der Netzwerktransaktionsgrößen die Grundgebühr von Blobgas vollständiger auf schnelle Transaktionsanstiege reagiert und die Transaktionsaktivität effektiv eindämmt. Ein weiteres wichtiges Merkmal ist, dass der Funktionswert 1 ist, wenn die horizontale Achse 0 ist.
base_fee_per_blob_gas = MIN_BASE_FEE_PER_BLOB_GAS e*(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION)
Hier sind MIN_BASE_FEE_PER_BLOB_GAS und BLOB_BASE_FEE_UPDATE_FRACTION Konstanten, während excess_blob_gas durch die Differenz zwischen dem gesamten Blobgasverbrauch im übergeordneten Block und einer konstanten TARGET_BLOB_GAS_PER_BLOCK bestimmt wird. Wenn der Gesamtverbrauch von Blobgas den Zielwert überschreitet und die Differenz positiv wird, ist e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION) größer als 1, wodurch die base_fee_per_blob_gas erhöht wird und umgekehrt.
Dieser Mechanismus ermöglicht eine kostengünstige Ausführung von Szenarien, in denen die Konsensfähigkeit von Ethereum genutzt wird, um große Datenmengen zu beglaubigen, um die Verfügbarkeit sicherzustellen, ohne die Transaktionsverpackungskapazität zu belegen. Beispielsweise können Rollupsequenzer Blobtransaktionen verwenden, um wichtige L2-Informationen in Blobdaten zu kapseln und eine On-Chain-Überprüfung über VersionedHash innerhalb der EVM zu erreichen.
Es ist zu beachten, dass die aktuellen Einstellungen für TARGET_BLOB_GAS_PER_BLOCK und MAX_BLOB_GAS_PER_BLOCK eine Einschränkung für das Mainnet mit einem durchschnittlichen Ziel von 3 Blobs (0,375 MB) pro Block und maximal 6 Blobs (0,75 MB) pro Block auferlegen. Diese anfänglichen Grenzwerte zielen darauf ab, die durch dieses EIP verursachte Netzwerkbelastung zu minimieren, wobei erwartet wird, dass diese Grenzwerte bei zukünftigen Upgrades erhöht werden, da das Netzwerk bei größeren Blockgrößen Zuverlässigkeit zeigt.
Nachdem wir das aktuelle Ethereum-Gas-Modell verstanden haben, wollen wir uns mit den Zielen und Implementierungsdetails des EIP-7706-Vorschlags befassen. Dieser Vorschlag, der von Vitalik am 13. Mai 2024 vorgelegt wurde, zielt darauf ab, das Gasmodell für ein bestimmtes Datenfeld, das als Calldata bekannt ist, neu zu definieren, ähnlich wie die früheren Änderungen für Blob-Daten. Zusätzlich optimiert der Vorschlag die entsprechende Codelogik.
Grundlegende Konzepte
Die Berechnungslogik für die Grundgebühr für Anrufdaten in EIP-7706 spiegelt die Berechnung der Grundgebühr für Blobdaten wider, wie in EIP-4844 angegeben. Beide verwenden eine Exponentialfunktion, um die Grundgebühr basierend auf der Abweichung zwischen dem tatsächlichen Gasverbrauch und dem Zielwert im übergeordneten Block anzupassen.
Ein bemerkenswerter Aspekt dieses Vorschlags ist die Einführung eines neuen Parameterdesigns, LIMIT_TARGET_RATIOS = [2, 2, 4]. Hier ist die Aufschlüsselung:
LIMIT_TARGET_RATIOS[0]: Zielverhältnis für das Gas der Ausführungsoperation.
LIMIT_TARGET_RATIOS[1]: Zielverhältnis für Blob-Datengas.
LIMIT_TARGET_RATIOS[2]: Zielverhältnis für Calldata-Gas.
Diese Verhältnisse werden verwendet, um die Gaszielwerte für die drei Gasarten im übergeordneten Block zu berechnen, indem der Gasgrenzwert durch die jeweiligen Verhältnisse dividiert wird.
Die Gasgrenzwerte sind wie folgt festgelegt:
gas_limits[0]
folgt der bestehenden Anpassungsformel.
gas_limits[1]
gleich MAX_BLOB_GAS_PER_BLOCK
.
gas_limits[2]
gleich gas_limits[0] / CALLDATA_GAS_LIMIT_RATIO
.
Wenn der Strom gas_limits[0]
30.000.000 beträgt und der CALLDATA_GAS_LIMIT_RATIO
auf 4 voreingestellt ist, bedeutet dies, dass das aktuelle calldata
Gasziel ungefähr beträgt:
[ \frac{30.000.000}{4 \times 4} = 1.875.000 ]
Nach der aktuellen calldata
Gasberechnungslogik:
Jedes Byte ungleich Null verbraucht 16 Gas.
Jedes Null-Byte verbraucht 4 Gas.
Unter der Annahme einer gleichmäßigen Verteilung von Bytes ungleich Null und Null in einem Segment von calldata
beträgt der durchschnittliche Gasverbrauch pro Byte 10 Gas. Daher entspricht das aktuelle calldata
Gasziel etwa 187.500 Bytes von calldata
, was etwa doppelt so viel ist wie der derzeitige durchschnittliche Verbrauch.
Vorteile des Vorschlags
Diese Anpassung reduziert die Wahrscheinlichkeit calldata
, den Gasgrenzwert zu erreichen, erheblich, hält den Verbrauch durch wirtschaftliche Modellierung auf einem konstanten Niveau und calldata
verhindert Missbrauch. Die Hauptabsicht dieses Entwurfs besteht darin, das Wachstum von Layer-2-Lösungen zu erleichtern und die Kosten für Sequenzer zu senken, wenn sie zusammen mit Blob-Daten verwendet werden.
Zusammenfassend lässt sich sagen, dass EIP-7706 nicht nur das Gasmodell verfeinert calldata
, sondern Ethereum auch strategisch für die effiziente Skalierung von Layer-2-Lösungen positioniert, indem es den datenbezogenen Gasverbrauch kontrolliert und optimiert.
Einleitung
Am 13. Mai 2024 schlug Vitalik EIP-7706 vor und schlug einen ergänzenden Plan zum bestehenden Gasmodell vor. Dieser Vorschlag isoliert die Gasberechnung von Anrufdaten und passt einen Mechanismus zur Preisgestaltung der Grundgebühr ähnlich wie bei Blob-Gas an, wodurch die Betriebskosten von Layer 2 (L2) weiter gesenkt werden. Die entsprechenden Vorschläge gehen auf EIP-4844 zurück, das im Februar 2022 vorgeschlagen wurde. Angesichts der erheblichen Zeitlücke werden in diesem Artikel die relevanten Materialien überprüft, um einen Überblick über die neuesten Entwicklungen im Ethereum-Gas-Mechanismus zu geben und den Lesern ein schnelles Verständnis der Aktualisierungen zu ermöglichen.
In seinem ursprünglichen Design führte Ethereum einen einfachen Auktionsmechanismus ein, um Transaktionsgebühren zu bepreisen, bei dem die Nutzer aktiv für ihre Transaktionen bieten mussten, indem sie einen Gaspreis festlegten. Da die von den Nutzern gezahlten Transaktionsgebühren an die Miner gehen, priorisieren die Miner im Allgemeinen Transaktionen auf der Grundlage der höchsten Gebote und gehen davon aus, dass der Miner Extractable Value (MEV) nicht berücksichtigt wird. Core-Entwickler identifizierten vier Hauptprobleme mit diesem Mechanismus:
Diskrepanz zwischen Volatilität der Transaktionsgebühr und Konsenskosten: Für eine aktive Blockchain besteht eine große Nachfrage nach der Einbeziehung von Transaktionen, was bedeutet, dass Blöcke leicht gefüllt werden können. Dies führt jedoch auch zu einer erheblichen Gebührenvolatilität. Wenn der durchschnittliche Gaspreis beispielsweise 10 Gwei beträgt, sind die Grenzkosten für das Hinzufügen einer weiteren Transaktion zu einem Block zehnmal höher als bei einem durchschnittlichen Gaspreis von 1 Gwei, was inakzeptabel ist.
Unnötige Verzögerungen für Benutzer: Aufgrund des harten Gaslimits pro Block und natürlicher Schwankungen des historischen Transaktionsvolumens warten Transaktionen oft mehrere Blöcke, um aufgenommen zu werden. Dies ist für das gesamte Netzwerk ineffizient, da es keinen Flexibilitätsmechanismus gibt, der es ermöglicht, dass ein Block größer und der nächste kleiner ist, um die unterschiedliche Nachfrage von Block zu Block zu erfüllen.
Ineffizienz bei der Preisgestaltung: Der einfache Auktionsmechanismus führt zu einer ineffizienten Preisfindung, die es den Nutzern erschwert, einen angemessenen Preis festzulegen. Dies führt oft dazu, dass Benutzer zu viel für Transaktionsgebühren bezahlen.
Instabilität in einer Blockchain ohne Blockbelohnungen: Wenn Blockbelohnungen aus dem Mining entfernt und ein reines Gebührenmodell eingeführt wird, kann dies zu Instabilität führen, wie z. B. der Schaffung von "Onkelblöcken", die Transaktionsgebühren stehlen und die Vektoren für mächtige egoistische Mining-Angriffe erhöhen.
Mit der Einführung und Implementierung von EIP-1559 erfuhr das Gasmodell seine erste bedeutende Iteration. Dieser Mechanismus, der von Vitalik und anderen Kernentwicklern am 13. April 2019 vorgeschlagen und während des Londoner Upgrades am 5. August 2021 übernommen wurde, gab das Auktionsmodell zugunsten eines Dual-Pricing-Modells auf, das aus einer Grundgebühr und einer Prioritätsgebühr besteht. Die Grundgebühr wird quantitativ durch ein vorgegebenes mathematisches Modell angepasst, das auf dem Gasverbrauch im Mutterblock im Verhältnis zu einem variablen und rekursiven Gasziel basiert.
Berechnung und Auswirkungen der Grundgebühr: Wenn der Gasverbrauch im vorherigen Block das Gasziel überschreitet, erhöht sich die Grundgebühr; wenn es das Gasziel nicht erreicht, sinkt die Grundgebühr. Diese Anpassung spiegelt die Dynamik von Angebot und Nachfrage gut wider und verbessert die Genauigkeit angemessener Gasvorhersagen, wodurch exorbitante Gaspreise aufgrund von Fehlbedienungen vermieden werden, da die Berechnung der Grundgebühr vom System bestimmt und nicht vom Benutzer spezifiziert wird. Der spezifische Code für die Berechnung lautet wie folgt:
Aus dem Inhalt können wir ableiten, dass, wenn die parent_gas_used größer als die parent_gas_target ist, die Grundgebühr des aktuellen Blocks im Vergleich zur Grundgebühr des vorherigen Blocks um einen Offset-Wert erhöht wird. Dieser Offset wird bestimmt, indem der parent_base_fee mit der Abweichung des Gesamtgasverbrauchs vom Gasziel im vorherigen Block multipliziert wird, dann der Rest des Gasziels und eine Konstante sowie der Maximalwert zwischen diesem Rest und 1 genommen werden. Umgekehrt gilt die Logik ähnlich, wenn die parent_gas_used kleiner als die parent_gas_target ist.
Außerdem wird die Grundgebühr nicht mehr als Belohnung an die Miner verteilt, sondern stattdessen verbrannt. Dies macht das Wirtschaftsmodell der ETH deflationär und trägt zur Stabilisierung ihres Wertes bei. Auf der anderen Seite kann die Prioritätsgebühr, ähnlich einem Trinkgeld von Benutzern an Miner, frei bepreist werden, was ein gewisses Maß an Wiederverwendung in den Sortieralgorithmen der Miner ermöglicht.
Im Jahr 2021 war die Rollup-Entwicklung in ein ausgereiftes Stadium eingetreten. Wir wissen, dass sowohl OP Rollup als auch ZK Rollup die Komprimierung von L2-Daten und das Hochladen einiger Proof-Daten über Calldata in die Kette zur Datenverfügbarkeit oder direkten On-Chain-Verifizierung beinhalten. Dies führt zu erheblichen Gaskosten bei der Aufrechterhaltung der L2-Finalität, die letztendlich von den Benutzern getragen werden, was zu höheren Kosten als erwartet für die meisten L2-Protokolle führt.
Gleichzeitig stand Ethereum vor der Herausforderung des Blockraumwettbewerbs. Jeder Block hat ein Gaslimit, was bedeutet, dass der Gesamtgasverbrauch aller Transaktionen in einem Block dieses Limit nicht überschreiten darf. Mit dem aktuellen Gaslimit von 30.000.000 gibt es theoretisch ein Limit von 1.875.000 Bytes (30.000.000 / 16) pro Block, wobei 16 Einheiten Gas für jedes von der EVM verarbeitete Calldata-Byte benötigt werden, was zu einer maximalen Datenkapazität von etwa 1,79 MB pro Block führt. Die von L2-Sequenzern generierten Rollup-bezogenen Daten sind in der Regel groß, was zu einem Wettbewerb mit den Transaktionen anderer Mainnet-Benutzer führt und die Anzahl der Transaktionen reduziert, die in einem einzelnen Block enthalten sein können, wodurch sich dies auf die TPS des Mainnets auswirkt.
Um dieses Problem zu beheben, schlugen die Kernentwickler am 5. Februar 2022 EIP-4844 vor, das nach dem Dencun-Upgrade Anfang des 2. Quartals 2024 implementiert wurde. Mit diesem Vorschlag wurde ein neuer Transaktionstyp namens Blobtransaktion eingeführt. Im Gegensatz zu herkömmlichen Transaktionen enthält Blob Transaction einen neuen Datentyp, Blobdaten, auf den im Gegensatz zu calldata nicht direkt von der EVM zugegriffen werden kann, sondern nur über ihren Hash, der auch als VersionedHash bezeichnet wird. Darüber hinaus haben Blob-Transaktionen im Vergleich zu regulären Transaktionen einen kürzeren GC-Zyklus, wodurch verhindert wird, dass Blockdaten zu stark aufgebläht werden. Blob-Daten verfügen auch über einen inhärenten Gasmechanismus, ähnlich wie EIP-1559, verwenden jedoch eine natürliche Exponentialfunktion in ihrem mathematischen Modell, die eine bessere Stabilität bei der Behandlung von Transaktionsgrößenschwankungen bietet. Die Steigung der natürlichen Exponentialfunktion ist auch eine natürliche Exponentialfunktion, was bedeutet, dass unabhängig vom aktuellen Zustand der Netzwerktransaktionsgrößen die Grundgebühr von Blobgas vollständiger auf schnelle Transaktionsanstiege reagiert und die Transaktionsaktivität effektiv eindämmt. Ein weiteres wichtiges Merkmal ist, dass der Funktionswert 1 ist, wenn die horizontale Achse 0 ist.
base_fee_per_blob_gas = MIN_BASE_FEE_PER_BLOB_GAS e*(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION)
Hier sind MIN_BASE_FEE_PER_BLOB_GAS und BLOB_BASE_FEE_UPDATE_FRACTION Konstanten, während excess_blob_gas durch die Differenz zwischen dem gesamten Blobgasverbrauch im übergeordneten Block und einer konstanten TARGET_BLOB_GAS_PER_BLOCK bestimmt wird. Wenn der Gesamtverbrauch von Blobgas den Zielwert überschreitet und die Differenz positiv wird, ist e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION) größer als 1, wodurch die base_fee_per_blob_gas erhöht wird und umgekehrt.
Dieser Mechanismus ermöglicht eine kostengünstige Ausführung von Szenarien, in denen die Konsensfähigkeit von Ethereum genutzt wird, um große Datenmengen zu beglaubigen, um die Verfügbarkeit sicherzustellen, ohne die Transaktionsverpackungskapazität zu belegen. Beispielsweise können Rollupsequenzer Blobtransaktionen verwenden, um wichtige L2-Informationen in Blobdaten zu kapseln und eine On-Chain-Überprüfung über VersionedHash innerhalb der EVM zu erreichen.
Es ist zu beachten, dass die aktuellen Einstellungen für TARGET_BLOB_GAS_PER_BLOCK und MAX_BLOB_GAS_PER_BLOCK eine Einschränkung für das Mainnet mit einem durchschnittlichen Ziel von 3 Blobs (0,375 MB) pro Block und maximal 6 Blobs (0,75 MB) pro Block auferlegen. Diese anfänglichen Grenzwerte zielen darauf ab, die durch dieses EIP verursachte Netzwerkbelastung zu minimieren, wobei erwartet wird, dass diese Grenzwerte bei zukünftigen Upgrades erhöht werden, da das Netzwerk bei größeren Blockgrößen Zuverlässigkeit zeigt.
Nachdem wir das aktuelle Ethereum-Gas-Modell verstanden haben, wollen wir uns mit den Zielen und Implementierungsdetails des EIP-7706-Vorschlags befassen. Dieser Vorschlag, der von Vitalik am 13. Mai 2024 vorgelegt wurde, zielt darauf ab, das Gasmodell für ein bestimmtes Datenfeld, das als Calldata bekannt ist, neu zu definieren, ähnlich wie die früheren Änderungen für Blob-Daten. Zusätzlich optimiert der Vorschlag die entsprechende Codelogik.
Grundlegende Konzepte
Die Berechnungslogik für die Grundgebühr für Anrufdaten in EIP-7706 spiegelt die Berechnung der Grundgebühr für Blobdaten wider, wie in EIP-4844 angegeben. Beide verwenden eine Exponentialfunktion, um die Grundgebühr basierend auf der Abweichung zwischen dem tatsächlichen Gasverbrauch und dem Zielwert im übergeordneten Block anzupassen.
Ein bemerkenswerter Aspekt dieses Vorschlags ist die Einführung eines neuen Parameterdesigns, LIMIT_TARGET_RATIOS = [2, 2, 4]. Hier ist die Aufschlüsselung:
LIMIT_TARGET_RATIOS[0]: Zielverhältnis für das Gas der Ausführungsoperation.
LIMIT_TARGET_RATIOS[1]: Zielverhältnis für Blob-Datengas.
LIMIT_TARGET_RATIOS[2]: Zielverhältnis für Calldata-Gas.
Diese Verhältnisse werden verwendet, um die Gaszielwerte für die drei Gasarten im übergeordneten Block zu berechnen, indem der Gasgrenzwert durch die jeweiligen Verhältnisse dividiert wird.
Die Gasgrenzwerte sind wie folgt festgelegt:
gas_limits[0]
folgt der bestehenden Anpassungsformel.
gas_limits[1]
gleich MAX_BLOB_GAS_PER_BLOCK
.
gas_limits[2]
gleich gas_limits[0] / CALLDATA_GAS_LIMIT_RATIO
.
Wenn der Strom gas_limits[0]
30.000.000 beträgt und der CALLDATA_GAS_LIMIT_RATIO
auf 4 voreingestellt ist, bedeutet dies, dass das aktuelle calldata
Gasziel ungefähr beträgt:
[ \frac{30.000.000}{4 \times 4} = 1.875.000 ]
Nach der aktuellen calldata
Gasberechnungslogik:
Jedes Byte ungleich Null verbraucht 16 Gas.
Jedes Null-Byte verbraucht 4 Gas.
Unter der Annahme einer gleichmäßigen Verteilung von Bytes ungleich Null und Null in einem Segment von calldata
beträgt der durchschnittliche Gasverbrauch pro Byte 10 Gas. Daher entspricht das aktuelle calldata
Gasziel etwa 187.500 Bytes von calldata
, was etwa doppelt so viel ist wie der derzeitige durchschnittliche Verbrauch.
Vorteile des Vorschlags
Diese Anpassung reduziert die Wahrscheinlichkeit calldata
, den Gasgrenzwert zu erreichen, erheblich, hält den Verbrauch durch wirtschaftliche Modellierung auf einem konstanten Niveau und calldata
verhindert Missbrauch. Die Hauptabsicht dieses Entwurfs besteht darin, das Wachstum von Layer-2-Lösungen zu erleichtern und die Kosten für Sequenzer zu senken, wenn sie zusammen mit Blob-Daten verwendet werden.
Zusammenfassend lässt sich sagen, dass EIP-7706 nicht nur das Gasmodell verfeinert calldata
, sondern Ethereum auch strategisch für die effiziente Skalierung von Layer-2-Lösungen positioniert, indem es den datenbezogenen Gasverbrauch kontrolliert und optimiert.