
Auteur: Toni Wahrstätter
Récemment, il existe de nombreuses discussions sur l’amélioration de la limite supérieure du gaz de bloc Ethereum.Certaines personnes préconisent la taille du bloc en fonction de la loi de Moore, certaines personnes sont basées sur l’intuition personnelle, certaines personnes diffusent simplement des nouvelles à volon .
Ensuite, je veux montrer des graphiques et des données, ce qui peut nous aider à prendre une décision de maximiser la limite de gaz sur la prémisse que l’Ethereum est décentralisé.
Dès le début
Contrairement à Bitcoin, Ethereum n’a pas de limite de taille de bloc fixe, mais dépend d’un mécanisme de taille de bloc flexible.Dans Ethereum, le gaz est une unité qui mesure le calcul requis pour les opérations d’exécution (telles que les transactions ou les contrats intelligents).Chaque opération dans Ethereum nécessite une certaine quantité de gaz pour terminer.
Au début, en 2015, Ethereum avait une limite de 5000 gaz à Ethereum.Cette limite supérieure a été rapidement augmentée à environ 3 millions, puis a augmenté à environ 4,7 millions plus tard en 2016.Avec la mise en œuvre de Tangerine Whistle Hard Fork (EIP-150) en 2016, en réponse aux attaques DOS, en réduisant divers codes d’exploitation à forte intensité de l’Io, la limite de gaz a été augmentée à 5,5 millions.Après ces attaques, les mineurs ont continué d’augmenter la limite supérieure du gaz, de juillet 2017 à environ 6,7 millions, de décembre 2017 à environ 8 millions, de septembre 2019 à environ 10 millions, août 2020 à 12,5 millions, et enfin en 2021 en 2021 du 3 avril à environ 15 millions.
>
Depuis lors, avec l’activation de Dragon, Byzance, Constantinople, Isstanbul et Berlin, la tarification de certains codes de fonctionnement a été détaillée.Ces exemples raffinés comprennent EIP-145, EIP-160, EIP-1052, EIP-108, EIP-1884, EIP-2028, EIP-2200, EIP-2565 et EIP-2929.
Les changements les plus importants du marché des coûts Ethereum ont eu lieu dans l’introduction de la Fork Hard London (EIP-1559) en août 2021.L’EIP-1559 introduit les frais de base, qui seront ajustés dynamiquement en fonction de la demande d’espace de bloc au fil du temps / du bloc.Dans le même temps, la «taille cible» a été introduite pour la fixer sur 15 millions de gaz par bloc.Cet objectif est utilisé pour guider l’ajustement dynamique des frais de base.Si le nombre total de gaz utilisé dans un bloc dépasse cet objectif, les frais de base du bloc suivant augmenteront.Au lieu de cela, si le nombre total de gaz utilisé est inférieur à la cible, la sensation de base est réduite.Ce mécanisme vise à créer un marché des coûts plus prévisible et à améliorer l’expérience utilisateur grâce à des dépenses de transaction stables.En outre, l’EIP-1559 a également introduit le mécanisme de destruction des frais de base, qui a supprimé définitivement la partie de l’éther du volume d’écoulement.Cela améliore la durabilité du protocole et crée le ventilateur de monnaie ultra-stable,
Dans le cadre de l’EIP-1559, il y a également une limite supérieure maximale (ou «limite supérieure dure»), qui est le double de celle de la cible, soit 30 millions de gaz.Cela signifie qu’un bloc peut emballer une transaction avec une utilisation totale allant jusqu’à 30 millions de gaz.
>
Depuis lors, la limite supérieure du gaz de bloc d’Ethereum est restée inchangée.
Sommes-nous prêts à augmenter la taille du bloc?
Récemment, certaines personnes ont exprimé leurs préoccupations concernant le gaz d’Ethereum et ont demandé à l’augmenter.Dans la dernière Fondation Ethereum AMA sur Reddit, Vitalik a déclaré que l’idée d’augmenter la limite de gaz de 33% à 40 millions.Son raisonnement est basé sur la loi de Moore.Ce principe montre que les performances du réseau, y compris la possibilité de gérer et d’exécuter des transactions, peuvent également augmenter avec le temps.
Des chercheurs de la Fondation Ethereum Dankrad et d’Ansgar ont également soutenu l’idée d’augmenter la limite de gaz après avoir évalué la mise à niveau de Dencun.De plus, Pari of the Ethereum Foundation a publié un article pour explorer la limite supérieure du gaz potentielle.D’autres comme Peter et Maris de Geth sont préoccupés par l’augmentation de la limite de gaz, en particulier lorsqu’il n’y a pas d’outil / surveillance approprié en place.Ces préoccupations sont principalement liées à ces questions: la croissance accélérée du statut, le temps de synchronisation et le taux de blocs de réorganisation.
Quelle est la taille du bloc?
La taille du bloc peut être mesurée de deux manières:
Utilisation du gaz
Taille du bloc (en octet-par ligne)
Bien que ces deux mesures soient associées, elles doivent être considérées de manière indépendante.
Par exemple, un bloc contenant de nombreux octets CallData non zéro peut être grand en taille d’octets, et l’utilisation réelle du gaz (16 gaz par octet non zéro) peut toujours être relativement faible.
Ne considérez pas la situation après la compression en premier, sous la prémisse de respecter la limitation de 128 Ko par transaction de Geth,La plus grande taille de bloc pouvant être atteinte est d’environ 6,88 MoEssenceUn tel bloc maximisera le nombre de transactions de 128 Ko.Le résultat du calcul réel est que 55 trading contient environ 130 900 octets de l’octet CallData (4 gaz par octet) et une transaction qui remplit l’espace restant.Cependant, après la compression de Snappy, un tel bloc est d’environ 0,32 Mo à la fin, qui peut être ignoré.
Dans un autre cas, compte tenu de la taille de la possibilité maximale, il contient 15 transactions transportant l’octet non-nombre CallData, et la taille peut atteindre environ 1,77 Mo après la compression.
Par conséquent, à ce jour, 1,77 Mo représente la limite supérieure de la taille du bloc réel du bloc de couche d’exécution.
Note du traducteur:
Dans les paragraphes ci-dessus, l’auteur veut faire de la taille du bloc le maximum dans le cas d’une limite de gaz fixe de 30 m.
Si la limite supérieure du gaz est fixe et que la taille du bloc est plus grande, vous ne pouvez appeler que CallData (car le code d’octet tel que le calcul / le magasin ne consommera pas un espace de stockage de bloc).
Par conséquent, pour agrandir le bloc, ce n’est rien de plus que d’essayer d’être échangé comme calldata.Ensuite, il existe deux méthodes: « Pluging 0 CallData » et « Pilot non -0 CallData ».Le résultat final est que la taille du bloc de « Safeli 0 calldata » est plus grande.
Sur la base du client Geth pour limiter la prémisse allant jusqu’à 128 Ko chaque transaction, deux exemples ont commencé ci-dessous.
Cas 1:56 transactions avec une taille de 130 900 b (& lt; 128 kb) (qui sont toutes nulles, 4 gaz / b): 56 * (130 900 * 4 + 21000) = 30497600 & gt; Ainsi, seulement 55 transactions ci-dessus peuvent être branchées 55 transactions inférieures aux transactions ci-dessus.La taille du bloc correspondante est d’environ 55 * 128 = 7040 Ko = 6,875 Mo.Cependant, parce que le calldata est tout 0, la taille du bloc après compression est d’environ 0,32 Mo.
Cas 2:15 transactions avec une taille de 130 900 b (& lt; 128 kb) (qui sont toutes -zero calldata, 16 gaz / b): gaz = 15 * (130900 * 16 + 21000) = 31731000 & gt;La taille du bloc correspondante est d’environ 14 * 128 = 1792 kb = 1,75 Mo ~ 15 * 128 = 1,875 m.Cependant, comme CallData n’est pas -zer, il n’est pas facile de compresser, donc la taille du bloc après compression est d’environ 1,77 Mo.Guérir
En ce qui concerne cette plus grande taille de bloc, nous pouvons identifier plusieurs facteurs qui l’affectent:
Limite supérieure au gaz: La limite supérieure du gaz affectera la taille maximale du bloc, ce qui est hors de doute.Plus la limite supérieure est élevée, plus les données peuvent être branchées dans le bloc.
Fonctionnement et prix des données: Plus l’opération de l’opération est chère, plus les opérations peuvent être effectuées dans le bloc.Bien queCaldataload
ouCalldatacopy
Dans cette opération, leurs dépenses sont de 3 gaz, ce qui est relativement bon marché; mais d’autres codes d’opération tels queCréer
C’est plus cher.Plus le code d’opération utilisé dans le bloc est cher, plus il est cher.Calldata
(Ou autres opérations) moins d’espace.
Limite du client: Bien que l’impact des limites du client ne soit pas si évident, la limite de 128 Ko de chaque transaction telle que le client Geth peut également affecter la taille finale du bloc.Étant donné que le coût fixe de chaque transaction est de 21k de gaz, plus la taille de chaque transaction du client est faible, plus les frais fixe sont inférieurs, de sorte que le « déchet » peut être utilisé pour une utilisation pour une utilisation « déchets » qui peuvent être utilisés pour Utiliser pour « déchets ».Calldata
Gaz.Ainsi, à la fin, cette limite peut entraîner une taille de bloc maximale d’environ 0,07 Mo.Il convient de noter que la restriction du client n’affecte que la diffusion de la transaction et n’affecte pas le bloc confirmé.
Tout d’abord, jetons un coup d’œil à la limite supérieure de chaque bloc:
>
La blockchain comme Ethereum, l’amélioration de la limite supérieure du gaz de bloc est la méthode d’expansion la plus directe et la plus évidente.Une limite plus élevée signifie plus d’espace de données.Cependant, cela signifie également que les personnes qui exécutent le nœud entier pour diffuser et télécharger des blocs plus grands.Comme le montre la figure ci-dessus, la taille du bloc dans la « pire situation (la plus grande taille de bloc obtenue par les calculs avant) » est à peu près linéairement liée à l’augmentation de la limite supérieure du gaz de bloc.En créant un bloc qui est autant que possible, il peut atteindre une telle taille de bloc maximale.
Ensuite, jetons un coup d’œil à un autre facteur d’influence – le mécanisme de tarification d’Ethereum.Dans l’exemple actuel, c’est spécifiquement que les octets non-nombre actuellement définis comme 16 gazCalldata
Échange:
>
Comme le montre la figure ci-dessus, augmenter non -zerCalldata
Les dépenses réduiront la taille du bloc.En d’autres termes, la réduction des dépenses à 8 gaz par octet doublera la taille du pire des cas.Ceci est très intuitif, car la réduction du prix permet des données doubles dans le bloc.
Alors qu’en est-il de l’EIP-4844 (proto-danksharding)?
Je ne présenterai pas 4844 ici en détail, car il y a de bons documents sur eip4844.com, mais simplement parlant, l’EIP-4844 présente le type de données similaire à la structure « sidecar », appelée blob, chaque blob peut être disponible sur environ Données de 125 Ko.Le mécanisme de coût des données BLOB est similaire à l’EIP-1559, et il existe également une « cible » pour ancrer le nombre de blob.Dans Dencun Hard Fork, la cible est définie sur 3 blocs de chaque bloc, et les restrictions maximales sont définies sur 6 blob chaque bloc.Il convient de noter que Blob possède son propre marché des coûts et crée le marché des coûts multidimensionnels si appelés.Cela signifie que Blob n’a pas besoin de rivaliser avec les transactions standard, mais découplée avec le coût du mécanisme EIP-1559.
Jusqu’à présent, tout se passe bien.Voyons comment cette mise à niveau affecte la taille moyenne du bloc d’Ethereum.
>
À ce jour, la taille moyenne du bloc du bloc de chaîne de signaux avec Snappy est d’environ 125 Ko.Avec 4844, chacun de nos blocs a augmenté de 375 Ko, ce qui a augmenté la taille du bloc moyenne actuelle de 4 fois.Si le nombre maximum de blob est atteint, nous augmentons en fait la taille du bloc actuel de sept fois.
Dans le pire des cas, la taille du bloc augmente d’environ 1,77 Mo à environ 2,5 Mo.Cette estimation ne tient pas compte de la partie CL (couche consensus) du bloc.Mais en tout cas, dans le cas de l’attaque DOS, nous devons être prêts à faire face à cette plus grande taille de bloc.
Résumer
En fin de compte, si nous voulons augmenter la limite actuelle du gaz de bloc, nous devons effectuer des recherches et une analyse approfondies avant la mise en œuvre.Bien que des entités matures telles que les opérateurs de Coinbase, Binance, Kraken ou Lido peuvent faire face à la limite supérieure de plus de 40 millions de gaz de bloc, les engagements indépendants peuvent être plus difficiles.
Par conséquent, de telles décisions doivent être réfléchies pour garantir que nous ne sacrifierons pas la décentralisation.
Enfin, il est relativement facile de renforcer une grande capacité et de fortes performances comme Facebook, mais il est important qu’il ne soit pas possible de perdre des choses que la plupart d’entre nous poursuivent: la décentralisation.