Découvrez comment l'EIP-1559 multidimensionnel optimise l'efficacité du gaz d'Ethereum en séparant les coûts des ressources, en améliorant l'évolutivité et en améliorant l'utilisation du réseau.
L'EIP-1559 multidimensionnel est devenu un sujet de recherche après avoir été introduit par Vitalik Buterin dans un article d'EthResearch en janvier 2022. Bien qu'il n'ait pas reçu autant d'attention que d'autres sujets de recherche comme les rollups, MEV ou les solutions de disponibilité des données, il s'agit d'un domaine d'étude actif.
Des articles de recherche récemment publiés par Guillermo Angeris et Theo Diamandis explorent les fondements théoriques et la robustesse des marchés de frais multidimensionnels et proposent comment ils devraient être construits.
En fait, des marchés de frais multidimensionnels sont déjà utilisés aujourd'hui. Avec l'adoption de l'EIP-4844 en mars 2024, Ethereum a introduit le gaz blob, créant un marché de frais distinct pour les transactions blob. Cela a marqué le passage d'un modèle de gaz unidimensionnel à un marché de frais bidimensionnel.
Cependant, il est toujours nécessaire d'augmenter le nombre de dimensions de ressources pour optimiser l'utilisation des ressources de transaction. L'expansion des marchés de frais multidimensionnels est une solution d'évolutivité pour améliorer la capacité d'Ethereum à gérer diverses ressources plus efficacement.
Cet article explore l'importance et la mécanique des marchés de frais de gaz multidimensionnels, expliquant comment ils améliorent l'évolutivité et l'allocation des ressources d'Ethereum.
Commençons d’abord par examiner ce qu’est exactement la tarification multidimensionnelle du gaz.
La tarification multidimensionnelle du gaz est une solution de mise à l'échelle de niveau 1, comme l'augmentation de la limite de gaz récemment implémentée sur Ethereum. Bien qu'elle n'augmente pas directement la capacité totale de transaction d'Ethereum, elle maximise l'utilisation des ressources dans les limites existantes. Cela permet à davantage d'applications décentralisées (DApps) et d'utilisateurs d'effectuer des transactions sur la couche de base d'Ethereum sans congestion inutile.
Ethereum regroupe actuellement tous les coûts des ressources, tels que le calcul, le stockage et la bande passante, dans une seule unité de gaz. La tarification multidimensionnelle du gaz sépare plutôt ces ressources, optimisant leur allocation tout en maintenant la sécurité et la décentralisation d'Ethereum.
Pour comprendre pourquoi cela est bénéfique, considérons une analogie du monde réel.
Imaginez un club de fitness avec divers équipements, comme des tapis de course pour le cardio, des racks à squat pour la musculation et des haltères pour un usage général. Les membres ont des préférences différentes : certains utilisent exclusivement des tapis de course, d'autres se concentrent sur les racks à squat et quelques-uns alternent entre les deux.
Dans un système où la salle de sport facture un prix d'entrée fixe en fonction du nombre total de membres, des inefficacités apparaissent. Les jours où les tapis de course sont surchargés mais les racks à squat sous-utilisés, le prix fixe monte en flèche pour tout le monde, obligeant les entraîneurs de musculation à payer pour la congestion qu'ils n'ont pas provoquée. De même, lorsque les racks à squat sont très demandés, mais que les tapis de course sont vides, les utilisateurs de cardio supportent des coûts inutiles. Cette tarification unidimensionnelle lie la capacité de la salle de sport à sa ressource la plus encombrée, ce qui crée une sous-utilisation des autres installations. On peut considérer cela comme un modèle de tarification unidimensionnel.
Imaginez maintenant que la salle de sport introduise un modèle de tarification multidimensionnel. Au lieu d'un tarif forfaitaire, elle facture séparément les tapis de course et les racks à squat. Les utilisateurs de cardio et les entraîneurs de musculation ne sont plus affectés par l'utilisation des autres, et la salle de sport peut optimiser sa capacité en gérant ces ressources de manière indépendante. Avec une utilisation plus équilibrée, la salle de sport peut accueillir plus d'utilisateurs sans augmenter la congestion globale.
Cette approche illustre l’essence même de la tarification multidimensionnelle : répartir les ressources en marchés distincts pour améliorer l’équité et l’efficacité. Cependant, une granularité trop importante, comme une tarification distincte pour chaque équipement, peut introduire une complexité inutile et rendre le système plus difficile à utiliser. C’est pourquoi, dans la pratique, les clubs de fitness ont généralement un prix d’entrée fixe et insistent sur un modèle de tarification unidimensionnel.
De la même manière que des frais distincts pour les tapis de course et les supports à squat peuvent réduire la congestion, Ethereum peut utiliser des marchés distincts pour les ressources, telles que le calcul et l’utilisation des données.
Avant l'EIP-4844, Ethereum utilisait un modèle de tarification du gaz unidimensionnel, où toutes les ressources de transaction, y compris le calcul, le stockage et la bande passante, étaient regroupées dans une seule métrique : le gaz. Ce modèle conduit intrinsèquement à des inefficacités, similaires à l'analogie du club de fitness :
Un exemple clé de cette inefficacité est la manière dont les rollups stockaient auparavant les données de transaction. Avant l'EIP-4844, les rollups publiaient leurs données de transaction dans le champ de données d'appel d'Ethereum et payaient des frais de gaz en fonction du prix des données d'appel. Cependant, avec l'adoption de l'EIP-4844 en mars 2024, les rollups utilisent désormais une unité distincte appelée blob gas, qui leur permet de stocker des données dans des structures dédiées appelées blobs.
Bien que l'EIP-4844 ait introduit une deuxième dimension de gaz (gaz blob) pour les données de cumul, sa portée reste limitée : le gaz blob s'applique uniquement aux transactions blob. D'autres composants de transaction, notamment l'exécution EVM, les données d'appel et le stockage, sont toujours tarifés selon un modèle de gaz unique.
Les transactions Ethereum consomment toujours plusieurs ressources indépendantes, mais toutes sont facturées en gaz, ce qui conduit à des scénarios du pire inefficaces.
Par exemple, supposons qu'une seule transaction consomme la totalité de la limite de gaz (actuellement 36 M) lors de l'exécution d'EVM. Même si les nœuds Ethereum pouvaient gérer en toute sécurité des tailles de données plus importantes, la transaction ne peut pas propager de données supplémentaires puisque le gaz est traité comme une contrainte unique plutôt que comme plusieurs limites indépendantes.
Ce problème devient encore plus évident lorsqu'on examine la distribution de la taille des blocs d'Ethereum. De juillet 2024 à décembre 2024, la taille moyenne des blocs a été d'environ 73 Ko, la plupart des blocs étant bien inférieurs à 100 Ko. Cependant, dans le bloc n° 21419230 , la taille maximale du bloc a atteint 1,48 Mo, soit 20 fois plus que la moyenne.
La tarification multidimensionnelle du gaz résout ce problème en traitant chaque ressource indépendamment : le calcul, le stockage et la bande passante bénéficient de tarifs et de limites distincts. Cette séparation évite les goulots d'étranglement lorsqu'une ressource domine les coûts du gaz et optimise la capacité sans augmenter les risques de sécurité.
Les articles de Vitalik Buterin proposent plusieurs types de ressources clés pour la séparation. Explorons ces ressources candidates et pourquoi leur séparation pourrait améliorer l'évolutivité d'Ethereum.
Lors de la conception d’un marché de frais multidimensionnel, l’indépendance des ressources est l’un des facteurs les plus critiques. Si deux ressources hautement interdépendantes sont placées sur des marchés de frais distincts, cela peut entraîner des inefficacités, des erreurs de tarification et une complexité inutile. Par exemple, si les calculs (cycles CPU) et l’utilisation de la mémoire (RAM) sont tarifés séparément, alors que l’un dépend de l’autre, les utilisateurs risquent de manipuler le système en déplaçant les coûts entre eux, ce qui conduit à une tarification sous-optimale.
Ainsi, avant de classer les ressources d’Ethereum dans des marchés de gaz distincts, nous devons d’abord identifier quelles ressources sont suffisamment indépendantes pour être tarifées séparément sans fausser l’économie du réseau.
À la base, un nœud Ethereum est un ordinateur qui gère plusieurs ressources en parallèle. Les ressources matérielles traditionnelles sont classées en composants distincts qui peuvent être optimisés indépendamment :
Le principe clé ici est la parallélisabilité : si un système peut traiter ces ressources de manière indépendante, il est judicieux de les séparer pour la tarification. En appliquant cela à Ethereum, nous devrions viser à classer les ressources Ethereum d'une manière qui permette aux nœuds Ethereum de fonctionner aussi efficacement que possible sans dépendances inutiles.
Contrairement aux ordinateurs, les opérations Ethereum ne rentrent pas parfaitement dans une seule catégorie. De nombreuses opérations consomment plusieurs ressources simultanément, ce qui rend difficile leur séparation parfaite. Par exemple,
Ces interdépendances rendent la séparation de chaque ressource dans son propre marché de tarification peu pratique. Nous devrions plutôt nous concentrer sur les goulots d'étranglement les plus importants qui ont un impact direct sur l'évolutivité d'Ethereum.
Bien que les opérations Ethereum impliquent de multiples ressources, les candidats à la tarification multidimensionnelle actuellement discutés sont :
Calcul (exécution EVM) – Les opérations simples comme ADD et MULTIPLY sont des tâches purement CPU.
E/S de stockage (SSTORE/SLOAD) – Lectures et écritures persistantes qui affectent le gonflement de l'état d'Ethereum.
Données d'appel de transaction – Utilise principalement la bande passante mais contribue également au stockage.
Données témoins – Affecte la bande passante et les E/S de stockage, en particulier pour les clients sans état.
En alignant ces catégories sur la manière dont les systèmes informatiques gèrent les ressources, nous pouvons rendre la structure tarifaire d’Ethereum plus intuitive et efficace.
En théorie, nous pourrions subdiviser les ressources d'Ethereum en catégories encore plus granulaires, mais cela augmenterait la complexité sans apporter d'avantages proportionnels. Nous devrions plutôt nous concentrer sur les principaux goulots d'étranglement qui limitent les performances d'Ethereum aujourd'hui.
Par exemple, la taille des données d'appel de transaction détermine directement la taille maximale du bloc, ce qui en fait un goulot d'étranglement crucial pour la couche de consensus d'Ethereum. De plus, la croissance du stockage doit être contrôlée pour éviter que les nœuds complets ne deviennent trop coûteux à exploiter, tout en maintenant la décentralisation.
Ainsi, plutôt que d’introduire trop de dimensions, il est pratique de se concentrer sur quelques ressources clés qui dominent l’efficacité d’Ethereum.
Une fois ces ressources primaires identifiées, nous pouvons explorer deux manières distinctes de réaliser une tarification multidimensionnelle : des marchés de tarifs distincts ou une unité de gaz unique modifiée.
Une approche pour mettre en œuvre une tarification multidimensionnelle du gaz consiste à créer des marchés de frais indépendants pour chaque ressource, garantissant ainsi une allocation plus efficace. Cette méthode a déjà été partiellement mise en œuvre via EIP-4844, qui a introduit le gaz blob comme une unité distincte pour le stockage des données de cumul.
Ce concept peut être étendu à d'autres ressources, telles que la croissance de l'état ou la taille du témoin, permettant à Ethereum de gérer les limites de chaque ressource séparément au lieu de regrouper tous les coûts sous une seule métrique de gaz.
Pour formaliser cette approche, définissons bi comme le tarif de base pour la ressource i, gi comme la consommation de la ressource i dans une transaction et ki comme la limite de la ressource i dans un seul bloc.
Les frais de transaction totaux seraient calculés comme ibi*gi, et un bloc doit satisfaire la contrainte all txbi ki, for all i for all resources i. Comme le modèle EIP-1559 actuel, bi est ajusté dynamiquement en fonction de l'utilisation précédente du bloc. Ethereum pourrait adopter des modèles de tarification exponentielle (comme ceux utilisés pour le gaz blob) ou un autre mécanisme de mise à jour des frais pour réguler la consommation de ressources.
Le modèle de marché à frais séparés offre des avantages majeurs. Il permet un contrôle précis de chaque ressource en permettant un plafonnement indépendant, ce qui permet d’éviter les estimations inefficaces du pire cas dans le cadre du modèle de gaz actuel. Il évite également une congestion inutile, en garantissant qu’une forte demande pour une ressource n’augmente pas de manière disproportionnée les frais d’opérations sans rapport. De plus, cette approche optimise l’utilisation du réseau en permettant des limites directes sur des facteurs tels que la propagation des données, comme le plafonnement à 1 Mo ou la croissance de l’état, plutôt que de s’appuyer sur des ajustements indirects du prix du gaz pour réguler la consommation des ressources.
Si des marchés de frais distincts permettent une meilleure allocation des ressources, une subdivision trop granulaire des ressources introduit une complexité significative. La création de marchés indépendants pour chaque type de ressource nécessiterait des modifications majeures du protocole, ce qui pourrait déstabiliser la couche de base d'Ethereum. Les DApps et les portefeuilles seraient également confrontés à des défis supplémentaires, car ils devraient suivre plusieurs marchés de frais et prévoir les fluctuations des frais de base pour chaque ressource, ce qui rendrait plus difficile l'inclusion rentable et rapide des transactions.
Un autre problème se pose lorsqu’une ressource connaît une hausse de prix imprévisible. Même si un portefeuille optimise les frais pour toutes les autres ressources, une hausse soudaine sur un seul marché de frais pourrait empêcher l’inclusion d’une transaction dans un bloc, ce qui entraînerait une incertitude et des inefficacités pour les utilisateurs.
Les validateurs sont confrontés à des défis similaires, car leur objectif est de maximiser les gains tout en restant dans les limites de chaque ressource. À mesure que le nombre de marchés de ressources indépendants augmente, cette situation devient un problème d'optimisation complexe, ressemblant à un problème de sac à dos multidimensionnel où la sélection des transactions les plus rentables devient de plus en plus difficile.
Certains estiment que cette complexité n’est peut-être pas un problème majeur puisque les gains de la valeur extractible maximale (MEV) contribuent de manière significative aux bénéfices des validateurs, ce qui rend les frais prioritaires moins critiques dans leur prise de décision. Cependant, la faisabilité globale de la mise en œuvre de marchés de frais entièrement distincts pour chaque ressource reste une question de recherche ouverte, nécessitant une exploration plus approfondie des compromis entre efficacité, facilité d’utilisation et stabilité du réseau.
Une alternative plus simple à la séparation totale des marchés de frais consiste à conserver le gaz comme unité principale tout en ajustant la manière dont les frais sont calculés. Au lieu d'introduire de nouvelles unités pour chaque ressource, les frais de transaction totaux sont déterminés par la ressource qui consomme le plus de gaz.
Définissons le coût du gaz pour la ressource i comme ci et la quantité de ressource utilisée comme gi. Les frais de transaction sont alors déterminés par :
(c1*g1 , c2*g2 , c3*g3,...)
Au lieu de additionner la consommation de gaz des différentes ressources, une transaction est facturée uniquement sur la base de la ressource la plus chère qu'elle consomme.
Prenons par exemple une transaction qui consomme 50 000 gaz pour l'exécution de l'EVM et 200 000 gaz pour les données d'appel. Dans ce modèle, les frais de transaction sont de 200 000 gaz puisque les données d'appel sont la ressource dominante et le coût d'exécution est effectivement ignoré.
Bien que cette méthode simplifie la tarification, elle introduit des problèmes potentiels :
Malgré ces inquiétudes, le principal avantage de cette approche est sa simplicité. En gardant le gaz comme unité de tarification universelle, Ethereum évite la complexité de la gestion de plusieurs unités de ressources tout en différenciant les différents types d’utilisation des ressources.
L'EIP-7623 , qui sera implémenté dans la mise à niveau de Pectra , suit une approche similaire mais légèrement modifiée. Il introduit un mécanisme de double tarification pour les transactions à forte consommation de données d'appel, garantissant que les transactions avec une utilisation disproportionnée des données d'appel paient des frais plus élevés. Bien qu'il ne s'agisse pas d'un modèle de tarification du gaz multidimensionnel complet, il représente une étape vers une meilleure différenciation des ressources sans remanier la structure du gaz d'Ethereum.
La norme EIP-7623 introduit des frais plus élevés pour les transactions de disponibilité des données (DA), en particulier lorsque l'utilisation des données d'appel dépasse largement l'utilisation du gaz d'exécution. Ce mécanisme garantit que les transactions consommant trop de données d'appel paient des frais plus élevés, décourageant ainsi le stockage de données inutile sans nécessiter de nouvelles unités de tarification.
Une version simplifiée du calcul du gaz EIP-7623 est la suivante :
total_gaz_utilisé max(4_jetons_dans_les_données_d'appel + evm_gas_used, 10*jetons_dans_les_données_d'appel)
Ce qui se simplifie encore davantage en :
total_gas_used 4 jetons_dans_les_données_d'appel + max(evm_gas_used, 6*jetons_dans_les_données_d'appel)
Cette formule détermine la consommation totale de gaz en prenant le maximum entre le gaz d'exécution et le gaz de données d'appel. Si une transaction utilise principalement des données d'appel, des frais plus élevés lui seront facturés pour ces données plutôt que d'être subventionnée par des coûts d'exécution inférieurs. Cela décourage le stockage excessif de données tout en garantissant que les transactions nécessitant beaucoup de calculs ne sont pas injustement pénalisées.
L'EIP-7623 est une version simplifiée de la tarification multidimensionnelle du gaz car elle introduit une distinction implicite entre le gaz d'exécution et le gaz de données d'appel, encourageant une allocation plus équilibrée des ressources du réseau.
Bien que la tarification multidimensionnelle du gaz soit souvent considérée comme une amélioration économique ou de l'interface utilisateur/expérience utilisateur, il s'agit d'une amélioration fondamentale de l'évolutivité qui permet une allocation optimisée des ressources. Cependant, sa mise en œuvre est confrontée à des défis importants, principalement en raison des modifications importantes requises au niveau de la couche de protocole et de la difficulté de séparer complètement les types de ressources. Par conséquent, il est peu probable que la tarification du gaz à plus grande dimension soit adoptée dans un avenir proche.
Malgré ces défis, la tarification multidimensionnelle du gaz offre des avantages substantiels, notamment une meilleure utilisation des ressources, une sécurité renforcée du réseau et un fonctionnement durable des nœuds. Permettre une utilisation plus efficace de la capacité de calcul et de stockage d'Ethereum présente une voie viable pour qu'Ethereum évolue tout en préservant la décentralisation et la sécurité.
Une version de cet article a été initialement publiée