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 discussion depuis plusieurs mois, reprĂ©sente une Ă©volution majeure en changeant fondamentalement le fonctionnement des fees, 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 millions de gaz est remplacée par deux valeurs : un «objectif moyen à long terme» (10 millions), et un «plafond ferme par bloc» (20 millions) ;
- Il existe un BASEFEE (qui est brûlé) que les transactions doivent payer, qui est ajusté bloc par bloc dans le but de cibler une valeur telle que la consommation moyenne de gaz du bloc reste autour de 10 millions.
En substance, alors que toute la volatilitĂ© Ă court 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 occasion : https://etherscan.io/chart/gasprice. Il est clair que cela engendre une certaine inefficacitĂ© car 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 millions de gaz et 8,02 millions 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://blog.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 : Ă long 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, etc. 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 document dont le lien figure sur https://ethresear.ch/t/draft-position-paper-on-resource-pricing/2838 (bien que je recommande de lire lâensemble du document) pour une argumentation dĂ©taillĂ©e sur les raisons de cette situation. Intuitivement, le mĂ©canisme dâajustement des frais fonctionne comme un frais fixe Ă court terme et un plafond Ă long 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 conditions 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 simple : 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 simple fait de regarder les prix du gaz sur la chaĂźne et de les utiliser comme indice est exploitable, car 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Ă©, car 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 normal 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 charge totale de la chaĂźne est la mĂȘme, quâune unitĂ© de charge 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 participants «exprimant une prĂ©fĂ©rence pour la rapidité» dans le mĂ©canisme du marchĂ© des frais, du moins dans des conditions 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 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 charge sur la chaĂźne ne dureront pas plus de 5 minutes.
Notez quâactuellement, les pĂ©riodes de doublement de la charge 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 production des blocs. Lâintroduction de lâEIP 1559 nâentraĂźnerait donc pas un niveau de charge sans prĂ©cĂ©dent dans le systĂšme.
En outre, la limite de gaz de 10 millions, pas plus, est justifiĂ©e dans une large 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 long 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 Ă long 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, car les taux dâoncle sont toujours de 10%. Ătant donnĂ© que lâEIP 1559 limite toujours la consommation de gaz Ă long terme Ă une moyenne dâenviron 10 millions par bloc, il nâaffecte pas la moyenne Ă long 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, etc.), oĂč N * 10 millions de transactions de gaz, chacune avec un prix du gaz trĂšs trĂšs Ă©levĂ©, sont toutes diffusĂ©es.
Actuellement, cela conduirait Ă la situation 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 normal» moyen devrait attendre plus de N blocs.
Examinons maintenant la situation 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 normal» moyen devrait attendre quelque part 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 source 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 conditions «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 important dâavoir un marchĂ© des frais qui fonctionne.
Pourquoi limit = 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 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 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 millions 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 clients peuvent en toute confiance fixer 1-1,5 gwei et sâattendre Ă ce que leurs transactions soient acceptĂ©es.
Comment 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 «conditions normales», il nây a aucune raison de fixer un pourboire supĂ©rieur au strict minimum.
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 ? Comment 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 maximum, 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 maximum de 100 gwei».
Il sâagirait de quatre paramĂštres : frais de dĂ©but, bloc de dĂ©but, incrĂ©ment par bloc, frais maximum.
Lâobjectif est dâĂȘtre «plus sĂ©curisé» envers les erreurs dâestimation des frais, car 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 genre de stratĂ©gies est limitĂ©e, car Ă 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 action sur le BASEFEE Ă long 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 minimum 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 total 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 (car 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 gains 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.balance // FEE_SMOOTHING_CONSTANT
. Transférersmoothing_reward wei
deFEE_SMOOTHING_BUFFER
versblock.coinbase
; - AprĂšs lâapplication 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 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, car les Ă©metteurs de transactions sauraient quels validateurs vont bientĂŽt crĂ©er des blocs.
Autres ressources
Le document original : 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
The post FAQ EIP 1559 first appeared on Ethereum France.