Ethereum met les gaz ! – Tout comprendre à l’EIP 1559

A fond les ballons – Le modèle de frais de transaction sur Ethereum va être amené à changer. Ce sont ces frais, exprimés en gas, qui rémunèrent les mineurs du réseau. Le système actuel, bien qu’ingénieux à la base, se révèle de plus en plus inefficient.

La sécurisation d’une blockchain passe par un jeu d’incitations économiques, où tous les acteurs du réseau doivent y gagner. Sur Ethereum, il est temps de mettre à jour le modèle de fees.

Fonctionnement des frais sur Ethereum

Ethereum gas

La récompense minimale des mineurs

Le base fee est fixé par le protocole afin de garantir un revenu suffisant pour les mineurs. Il s’ajuste automatiquement de telle sorte qu’en moyenne, une transaction coûte 10 millions de gas. Pour chaque bloc, il peut varier de 12,5 % pour s’adapter à l’engorgement de la blockchain. C’est ensuite à l’utilisateur de manipuler deux valeurs afin de déterminer les frais totaux qu’il souhaite allouer à sa transaction.

Le pourboire des utilisateurs

Le gas premium est fixé librement par l’utilisateur pour récompenser les mineurs. Si la transaction soumise au réseau n’a pas besoin d’être validée au plus vite, une valeur faible suffira. Si, en revanche, la transaction doit être validée rapidement, il faut profiter de ce système d’enchères en donnant beaucoup de gas pour être sélectionné au plus vite dans un bloc par les mineurs.

Les différends plafonds : comment sont-ils ajustés ?

Le gas limit est la valeur-plafond fixée par l’utilisateur pour ses frais totaux de transaction (base fee + gas premium). Ainsi, ils ne dépasseront pas la somme totale à allouer.

Le gas est donc l’unité comptable de ces frais. Sa valeur dépend alors de deux paramètres, ajustés par l’utilisateur au moment de sa transaction :

  • Le gas price (prix du gas) est déterminé en GWei. Pour rappel, 1 GWei = 1 milliardième d’ether. Le gas price est donc le prix en ether que l’utilisateur souhaite allouer à une unité de gas.
  • Le gas limit représente le nombre d’unité maximal que l’utilisateur est prêt à dépenser – au prix qu’il a fixé – pour sa transaction.

L’image de du gasoil prend donc du sens. Le gas price est le prix payé à la pompe et le gas limit la capacité du réservoir du véhicule de la transaction sur le réseau.

Évolution du prix du gas sur Ethereum - Etherscan
Évolution du prix du gas sur Ethereum – Etherscan

Enfin, une autre limite en gas est codée au sein du protocole par consensus des mineurs. Il s’agit du nombre maximal de gas pouvant être contenus dans un bloc de transactions. Elle est actuellement de 16 millions. Il s’agit de la quantité de gasoil disponible pour tous les véhicules dans un certain laps de temps pour reprendre l’image de la station-service.

Ce modèle est donc, à l’heure actuelle, un peu plus complexe que celui de Bitcoin, mais il repose sur les mêmes principes économiques. Les mineurs sont en compétition pour trouver des blocs et cherchent donc à récupérer le plus de gas possible à chaque fois. Les utilisateurs enchérissent alors en fixant leurs frais, en fonction du délai de transaction souhaité.

Les problèmes actuels du modèle de frais

Ce système dynamique de frais est donc basé sur un principe d’enchères. Les utilisateurs placent leurs enchères en fixant leur gas price et leur gas limit. Les mineurs, quant à eux, sélectionnent les transactions présentant les enchères les plus élevées pour maximiser leur profit.

Même si le modèle est pratique, le marché des frais de transaction sur Ethereum présente plusieurs inefficiences.

  1. La volatilité des frais de transaction est forte et peut créer des situations absurdes. Le gas price varie typiquement entre 2 et 200 GWei : les frais de l’utilisateur varient d’un rapport de 100, alors que la variation de la récompense des mineurs est négligeable.
  2. La limite de gas par bloc fixée par le protocole ne variant que très peu, dans les situations d’engorgement de la blockchain, les utilisateurs se livrent une compétition coûteuse qui, pourtant, ne leur garantit pas un délai de transaction faible. Lorsque Ethereum est engorgé, le temps de confirmation s’allonge, malgré des frais parfois délirants pour passer avant les autres dans un bloc.
  3. Le système d’enchères est trop simpliste et ne garantit pas la meilleure résistance aux attaques venant des mineurs ni la meilleure efficience pour les utilisateurs. Pour comprendre ce problème (qui se pose également sur Bitcoin), lire cet article de Vitalik Buterin.

Ethereum Improvment Proposal 1559

L’idée de cette amélioration du modèle de frais, est d’ajuster les frais de base en fonction de l’engorgement du réseau. Elle nous vient de Vitalik Buterin.

Vitalik-Buterin

Description

Pour l’instant, le protocole est codé pour qu’ils se situent autour des 10 millions de gas. Avec l’EIP 1559, la capacité totale du réseau passera à 16 millions de gas. Lorsque la cible de 10 millions sera franchie à la hausse, le protocole l’ajustera légèrement au-dessus pour le bloc suivant. Si cette capacité n’est pas atteinte, la valeur-cible sera légèrement diminuée. Ces petits incréments rendront les fluctuations plus prévisibles.

Ensuite, un autre changement est proposé sur la rémunération des mineurs. Le base fee ne sera plus fixé par consensus des mineurs, et ces frais seront tout simplement brûlés.

Cela aura plusieurs conséquences :

  • Les mineurs n’étant désormais récompensés que par les pourboires (le gas premium), ils ne pourront pas manipuler le base fee à leur avantage.
  • Cela contrebalance l’inflation d’Ethereum, sans pour autant diminuer la récompense des mineurs.

Implémentation et spécifications

L’implémentation de ce nouveau système se fera de façon progressive.

Au départ, Ethereum continuera d’accepter les transactions non-EIP 1559. Le nombre de transactions EIP 1559 devrait croître progressivement, jusqu’à représenter la totalité des frais du réseau. Une fois que ce sera le cas, plus aucune transaction ne respectant pas l’EIP-1559 ne sera acceptée.

Ceux qui souhaitent plus de détails sur les paramètres qui changeront dans le code d’Ethereum peuvent se rendre sur GitHub, et consulter cette proposition de Vitalik Buterin. Il s’agira du changement le plus important sur la première version d’Ethereum, en attendant ETH2, Serenity. À ce jour, aucune date précise n’a été définie.

Morgan Phuc

Cofounder @ 8Decimals & Partner @ Node Guardians - Making crypto great again - Journal du Coin / BitConseil