FAQ publiée par Vitalik Buterin sur https://notes.ethereum.org/@vbuterin/BkSQmQTS8, traduite par Jean Zundel.
Bien sûr, le lancement réussi d’Eth2 a occupé tous les esprits ces dernières semaines, mais les travaux se poursuivent sur tous les fronts. L’EIP 1559, en dialogue depuis plusieurs mois, représente une évolution majeure en changeant fondamentalement le fonctionnement des charges, les frais de transaction.
Qu’est-ce que l’EIP 1559 ?
L’EIP 1559 est une proposition visant à réformer le marché des frais d’Ethereum, avec les changements clés suivants :
- La limite actuelle de 10 thousands and thousands de gaz est remplacée par deux valeurs : un «objectif moyen à lengthy terme» (10 thousands and thousands), et un «plafond ferme par bloc» (20 thousands and thousands) ;
- Il existe un BASEFEE (qui est brûlé) que les transactions doivent payer, qui est ajusté bloc par bloc dans le however de cibler une valeur telle que la consommation moyenne de gaz du bloc reste autour de 10 thousands and thousands.
En substance, alors que toute la volatilité à court docket terme de la demande d’espace de transaction à l’intérieur d’un bloc se traduit actuellement par une volatilité des frais de transaction, une partie se traduirait alors par une volatilité de la taille des blocs.
En quoi l’EIP 1559 est-elle bénéfique ?
Pour citer un ancien article :
Le statu quo des marchés des frais de transaction pose trois problèmes majeurs :
- Inadéquation entre volatilité des niveaux de frais de transaction et coût social des transactions : les frais de transaction sur les chaînes de blocs publiques établies, dont l’utilisation est suffisante pour que les blocs soient pleins, tendent à être extrêmement volatils. Sur Ethereum, les frais minimums tournent généralement autour de 2 gwei (109 gwei = 1 ETH), mais ils peuvent parfois monter jusqu’à 20 à 50 gwei, voire 200 gwei en une event : https://etherscan.io/chart/gasprice. Il est clair que cela engendre une certaine inefficacité automotive il est absurde de supposer que le coût supporté par le réseau pour accepter une transaction supplémentaire dans un bloc soit 100 fois plus élevé lorsque le prix du gaz est de 200 gwei que lorsqu’il est de 2 gwei ; dans les deux cas, il s’agit d’une différence entre 8 thousands and thousands de gaz et 8,02 thousands and thousands de gaz ;
- Inefficacités des enchères de premier prix : voir https://ethresear.ch/t/first-and-second-price-auctions-and-improved-transaction-fee-markets/2410 pour un compte rendu détaillé. En bref, dans l’approche actuelle, les émetteurs publient une transaction avec une redevance, les mineurs choisissent les transactions les plus rémunératrices et chacun paie ce qu’il offre. Cette approche est bien connue dans la littérature sur les mécanismes d’incitation pour être très inefficace, nécessitant des algorithmes complexes d’estimation des frais ; ces algorithmes finissent souvent par ne pas très bien fonctionner, ce qui entraîne fréquemment des frais excessifs. Voir également https://weblog.bitgo.com/the-challenges-of-bitcoin-transaction-fee-estimation-e47a64a61c72, la description par un core développeur Bitcoin des défis entraînés par le statu quo de l’estimation des frais ;
- Instabilité des chaînes de blocs sans récompense en bloc : à lengthy terme, les chaînes de blocs où il n’y aura pas d’émission (y compris Bitcoin et Zcash) ont actuellement l’intention de récompenser les mineurs par les frais des transactions. Toutefois, des résultats connus montrent que cela risque d’entraîner une grande instabilité, en incitant à miner des «blocs frères» pour voler les frais de transaction, ouvrant ainsi des vecteurs d’attaque par minage égoïste beaucoup plus puissants, and many others. Il n’existe actuellement aucune mesure efficace d’atténuation de ce phénomène.
L’EIP 1559 présente ces avantages :
- Il atténue les inefficacités économiques dues à l’inadéquation des coûts sociaux en raison de la volatilité des frais. L’argument économique est assez nuancé ; voir en particulier les pages 16 à 20 du doc dont le lien determine sur https://ethresear.ch/t/draft-position-paper-on-resource-pricing/2838 (bien que je recommande de lire l’ensemble du doc) pour une argumentation détaillée sur les raisons de cette state of affairs. Intuitivement, le mécanisme d’ajustement des frais fonctionne comme un frais fixe à court docket terme et un plafond à lengthy terme, et il s’avère qu’en raison des arguments avancés dans cet l’article de Martin Weitzman (en 1974), des frais fixes sont probablement préférables à un plafond dans les circumstances où, fondamentalement, toutes les blockchains publiques sont aujourd’hui en place.
- Il remplace la vente aux enchères par une vente à prix fixe (sauf pendant de courtes périodes où les blocs se remplissent complètement jusqu’à ce que les frais rattrapent leur retard), ce qui élimine les inefficacités de la vente aux enchères au premier prix et rend l’estimation des frais extrêmement easy : calculez les frais f pour le bloc suivant, si vous pouvez vous le permettre, payez-les, sinon ne le faites pas.
- Il crée un mécanisme similaire à une récompense permanente par bloc (le 1/N provenant du pot), ce qui atténue bon nombre des problèmes d’instabilité liés aux chaînes de blocs fonctionnant uniquement sur les frais sans nécessiter de véritable émission permanente.
Un autre avantage sous-estimé de l’EIP 1559 est qu’il permet de mesurer les prix du gaz de manière sûre. Aujourd’hui, le easy fait de regarder les prix du gaz sur la chaîne et de les utiliser comme indice est exploitable, automotive les mineurs peuvent inclure des transactions fictives à très faible ou très forte redevance, où la redevance se ferait à eux-mêmes. Mais en vertu de l’EIP 1559, le BASEFEE ne peut être manipulé qu’à un coût élevé, automotive les transactions fictives exigeraient même du mineur qu’il paie des frais (qui sont brûlés).
Les marchés actuels des frais sont-ils vraiment si inefficaces ?
Oui, la différence entre le prix moyen du gaz et le dixième centile du prix du gaz dans un bloc regular est d’environ 3 fois pour la médiane et de 5 à 8 fois pour la moyenne. Les gens paient trop, en masse, inutilement.
Toute personne qui ne paie pas trop subit un retard de 1 à 2 minutes, voire plus, et ce retard ne profite en fait à personne ; la cost totale de la chaîne est la même, qu’une unité de cost donnée atteigne la chaîne au temps N ou au temps N + 60. Il n’y a aucun avantage social réel à favoriser des members «exprimant une préférence pour la rapidité» dans le mécanisme du marché des frais, du moins dans des circumstances normales ; il s’agit d’une perte parfaitement inutile. Il vaudrait mieux pour nous tous que davantage de transactions soient incluses immédiatement, ce que permet l’EIP 1559.
Pourquoi ne pas simplement utiliser la deuxième enchère (ou une k-ième enchère) pour résoudre les inefficacités de la meilleure enchère ?
Les enchères au k-ième prix (où chacun paie un prix de gaz égal au prix le plus bas qui était inclus dans le bloc) sont effectivement «efficaces» dans une analyse économique traditionnelle*, mais elles ont le défaut d’être vulnérables à la collusion.
* Oui, bien sûr, techniquement, il faut utiliser le prix du gaz le plus élevé qui n’est pas inclus dans le bloc ; mais en pratique, étant donné que la plupart des blocs Ethereum comportent des centaines de transactions, la différence serait négligeable.
L’EIP 1559 pourrait-elle faire courir le risque de surcharger les nœuds et les mineurs pendant les périodes de forte utilisation ?
EIP 1559 peut tout au plus multiplier par 2 la taille des blocs, même à court docket terme. Chaque «bloc complet» (c’est-à-dire un bloc dont le gaz est 2x la TARGET) augmente le BASEFEE de 1,125x, donc une série de blocs complets constants augmentera le prix du gaz par un facteur 10 tous les ~20 blocs (~4,3 min en moyenne). Par conséquent, les périodes de forte cost sur la chaîne ne dureront pas plus de 5 minutes.
Notez qu’actuellement, les périodes de doublement de la cost durant 5 minutes se produisent déjà aléatoirement environ une fois tous les ~63888 blocs (~10 jours) en raison de la variance du taux de manufacturing des blocs. L’introduction de l’EIP 1559 n’entraînerait donc pas un niveau de cost sans précédent dans le système.
En outre, la limite de gaz de 10 thousands and thousands, pas plus, est justifiée dans une massive mesure non par des limites strictes du réseau (les taux d’oncles sont proches des plus bas niveaux historiques, bien que les risques pour les nœuds non-mineurs tels que les nœuds de bootstrap puissent être plus élevés), mais par des préoccupations fondamentalement lengthy terme :
- Risque de centralisation par des taux d’oncles un peu plus élevés : si les taux d’oncles grimpaient jusqu’à 20%, cela profiterait de manière disproportionnée aux grands bassins bien connectés ;
- Limites en taille de l’état ;
- Difficulté de synchronisation après une courte période hors ligne.
Dans ces trois cas, ce qui importe n’est pas la limite supérieure de la capacité dans une fenêtre de temps très courte, mais plutôt la capacité moyenne à lengthy terme. Le fait que les taux d’oncles soient de 2% pendant les heures impaires et de 18% pendant les heures paires aurait le même effet sur les trois cas précités, automotive les taux d’oncle sont toujours de 10%. Étant donné que l’EIP 1559 limite toujours la consommation de gaz à lengthy terme à une moyenne d’environ 10 thousands and thousands par bloc, il n’affecte pas la moyenne à lengthy terme.
À quoi ressemblerait un pic de consommation élevée avec l’EIP 1559 par rapport au statu quo ?
Considérons un «pic mathématiquement idéal» (par exemple, cela pourrait se produire dans la vie réelle en raison d’un événement soudain sur le marché conduisant à de nombreuses possibilités d’arbitrage sur les DEX, à des offres sur les CDP liquidés, and many others.), où N * 10 thousands and thousands de transactions de gaz, chacune avec un prix du gaz très très élevé, sont toutes diffusées.
Actuellement, cela conduirait à la state of affairs suivante :
- Les prochains blocs N seraient exclusivement remplis de nouvelles transactions à prix élevés ;
- Ensuite, les autres transactions, ainsi que celles que les gens enverraient après le pic, seraient incluses dans l’ordre décroissant du prix du gaz.
Un «utilisateur regular» moyen devrait attendre plus de N blocs.
Examinons maintenant la state of affairs avec l’EIP 1559 :
- Les blocs N/2 suivants seraient remplis exclusivement de nouvelles transactions «d’heure de pointe», chacune avec une quantité de gaz deux fois plus importante que la normale ;
- Si toutes les autres transactions sont envoyées avec un plafond de prix du gaz égal à l’ancien prix du gaz, les blocs N/2 suivants seraient vides, et après cela les choses reviendraient à la normale. Mais de manière réaliste, les transactions prioritaires fixeraient des plafonds de prix du gaz plus élevés et seraient incluses en premier, et les autres transactions plus tard.
Un «utilisateur regular» moyen devrait attendre quelque half entre N/2 et plus de N blocs.
Par conséquent, même en incluant la «période de récupération» après la période de pointe pendant laquelle la capacité des blocs serait inférieure à la normale, la plupart des transactions seraient incluses plus tôt.
Voici une simulation très grossière (il y a beaucoup d’hypothèses étranges ici, mais il est difficile de modéliser un système complet qui couvre à la fois les courbes de l’offre et de la demande et les temps d’attente) ; le tableau supply est ici.
Statu quo :
EIP 1559 :
Que ferait l’EIP 1559 en cas de pics plus importants et plus prolongés (p. ex. pics d’une journée) ?
Pas beaucoup. Le BASEFEE augmenterait et il y aurait une courte période au début où quelques transactions seraient plus rapides, mais après cela, le marché des frais fonctionnerait comme dans des circumstances «ordinaires», à un niveau de frais plus élevé. Le principal avantage de l’EIP 1559 en matière de pics est que les dommages causés par l’inefficacité des marchés de frais ordinaires sont amplifiés lorsque les frais sont élevés, de sorte qu’il devient plus vital d’avoir un marché des frais qui fonctionne.
Pourquoi restrict = cible * 2 ? Pourquoi pas 4 ? Ou 8 ?
Plus le rapport limite / cible est élevé, plus les avantages de l’EIP 1559 en termes d’efficacité du marché des frais sont importants. Cela dépend de l’amplitude des pics à court docket terme que nous sommes prêts à accepter ; 2x est assez prudent. Nous pourrions même lancer l’EIP 1559 avec un rapport limite / objectif de 2 pour commencer, et l’augmenter au fil du temps si nous voyons que le réseau fonctionne bien même en cas de pics à court docket terme.
Pourquoi les mineurs incluraient-ils des transactions ?
L’EIP comprend un «pourboire» que les émetteurs de transactions peuvent inclure pour le mineur. Ce pourboire sert à deux choses : premièrement, s’il y a subitement beaucoup plus de transactions que prévu, les mineurs incluront d’abord les transactions avec un pourboire plus élevé, de sorte que le mécanisme de priorisation basé sur les frais reste finalement actif. Deuxièmement, il compense le risque d’oncles pour les mineurs (le risque accru que leur bloc ne soit pas inclus dans la chaîne principale parce que l’ajout d’une transaction supplémentaire le ralentira).
Le calcul du niveau de pourboire qui compense le risque d’oncle donne environ 0,8 gwei (les blocs oncles obtiennent en moyenne une récompense de 1,67 ETH au lieu de la base de 2 ETH, ce qui représente une perte de ~0,33 ETH = 330m gwei, 10 thousands and thousands de blocs de gaz ajoutent ~0,025 au taux d’oncles par rapport aux blocs vides, donc le coût prévu du gaz est = 330m / 10m * 0,025 = 0,825 gwei) et les mineurs se fixent effectivement cette valeur lorsque la chaîne est vide.
Ce niveau de pourboire est indépendant du BASEFEE, de sorte que les shoppers peuvent en toute confiance fixer 1-1,5 gwei et s’attendre à ce que leurs transactions soient acceptées.
Remark les portefeuilles peuvent-ils choisir les pourboires ? Y a-t-il un risque de guerre des enchères pour les pourboires ?
Les portefeuilles pourront simplement choisir les pourboires en examinant quels pourboires ont été acceptés dans le passé sur la chaîne et en augmentant leur pourboire s’ils constatent qu’une transaction qu’ils envoient n’a pas été acceptée immédiatement. Notez que dans des «circumstances normales», il n’y a aucune raison de fixer un pourboire supérieur au strict minimal.
En cas de congestion soudaine, les pourboires se transforment en guerre d’enchères ; les portefeuilles peuvent détecter la congestion et, dans ce cas, ils peuvent offrir aux utilisateurs la possibilité de fixer une priorité faible ou élevée pour leur transaction.
Qu’est-ce que le mécanisme d’escalator ? Remark peut-il être combiné avec le PEI 1559 ?
Le mécanisme d’escalator est une proposition de réforme différente des frais de transaction dans laquelle, au lieu de spécifier des frais uniques, les utilisateurs spécifient leurs frais comme une fonction, généralement avec un début, une augmentation par bloc et un most, par exemple «5 gwei si cette transaction est incluse dans le bloc 10123456, ajouter 1 gwei pour chaque bloc suivant (par exemple 8 gwei si inclus dans le bloc 10123459), jusqu’à un most de 100 gwei».
Il s’agirait de quatre paramètres : frais de début, bloc de début, incrément par bloc, frais most.
L’objectif est d’être «plus sécurisé» envers les erreurs d’estimation des frais, automotive si les frais s’avèrent trop bas, ils augmenteront naturellement au fil du temps jusqu’à ce que la transaction soit incluse. Dans le contexte de l’EIP 1559, cela pourrait être utilisé pour fixer le pourboire. Le fait que le pourboire se situerait généralement dans une fourchette constante signifie que même un portefeuille n’utilisant que des paramètres fixes pour l’escalator donnerait des résultats assez corrects aux utilisateurs.
Les mineurs ne seront-ils pas incités à s’associer pour faire baisser le BASEFEE en limitant le remplissage de leurs blocs à moins de la moitié ?
En général, l’efficacité ce style de stratégies est limitée, automotive à moins que presque tout le monde ne soit de connivence, une transaction non incluse dans un bloc sera incluse dans le bloc suivant ; l’effet de cette motion sur le BASEFEE à lengthy terme sera donc négligeable.
Toutefois, les mineurs peuvent mettre en place une sorte de «tarification monopolistique». Supposons que les émetteurs de transactions soient prêts à payer des frais supplémentaires pour éviter d’être retardés d’un bloc. Les mineurs peuvent refuser d’inclure les transactions qui ne comportent pas un pourboire minimal T ; ils perdent une partie de leurs revenus, mais gagnent à ce que les émetteurs augmentent leurs frais s’ils évaluent la probabilité supplémentaire que vous soyez le prochain mineur et qu’ils incluent leur transaction de manière suffisamment élevée. Cette stratégie est fortement défavorable au mineur : il subit le coût whole de la perte de revenus, mais ne gagne qu’une petite partie de l’augmentation des frais de transaction que d’autres envoient.
Notez que même si un mineur réussit avec cette stratégie, il augmentera les revenus des autres mineurs plus qu’il n’augmentera ses propres revenus (automotive les autres mineurs profitent des pourboires plus élevés en raison de vos actions), et il ne s’agit donc pas d’un vecteur de centralisation.
Cela ne ramènera pas le BASEFEE à zéro, mais permettra d’atteindre un équilibre où le BASEFEE constituera toujours la majeure partie des frais et les pourboires le complétant. En effet, à moins que les mineurs ne soient tous de connivence (auquel cas nous avons des problèmes plus importants), les mineurs subissent la totalité des coûts, hors transactions, mais ne bénéficient que partiellement des avantages liés à l’augmentation des pourboires.
Si le risque que les mineurs déploient une telle stratégie reste inacceptable, nous pouvons affecter une partie (par exemple 50%) des recettes de l’EIP 1559 à un fonds commun dont un petit pourcentage est prélevé sur chaque bloc pour être ajouté à la récompense de bloc des mineurs ; cela garantit que les mineurs bénéficient d’un BASEFEE élevé, ce qui réduit encore les positive factors d’une telle attaque.
Voici, schématisée, une proposition de modification de l’EIP allant dans ce sens :
- Définir le compte
0x35
commeFEE_SMOOTHING_BUFFER
, et définirFEE_SMOOTHING_CONSTANT = 8192
; - Ajouter un terme supplémentaire à la récompense en bloc (ajouté en même temps que la récompense en bloc de base et les récompenses oncle+neveu). Soit
smoothing_reward = FEE_SMOOTHING_BUFFER.stability // FEE_SMOOTHING_CONSTANT
. Transférersmoothing_reward wei
deFEE_SMOOTHING_BUFFER
versblock.coinbase
; - Après l’utility des récompenses du bloc, la moitié des frais EIP-1559 de ce bloc (arrondis à l’inférieur) est ajoutée au solde de
FEE_SMOOTHING_BUFFER
. Le reste (c’est-à-dire la moitié arrondie à l’unité supérieure) est brûlé.
Notez que dans un contexte de preuve d’enjeu, il serait souhaitable de mettre en place des élections à bulletins secrets and techniques des dirigeants ainsi que des sanctions en cas de révélation prématurée, afin d’empêcher les validateurs d’acquérir la réputation de n’accepter que des pourboires élevés et d’en tirer eux-mêmes tout le bénéfice, automotive les émetteurs de transactions sauraient quels validateurs vont bientôt créer des blocs.
Autres ressources
Le doc unique : https://ethresear.ch/t/first-and-second-price-auctions-and-improved-transaction-fee-markets/2410
Thread de ethresear.ch sur les simulations de Barnabe : https://ethresear.ch/t/eip-1559-simulations/7280