TechFlow, Vitalik Buterin a publié un nouvel article discutant du problème de la gas multidimensionnelle dans la Machine Virtuelle Ethereum (EVM). Il souligne que la limite de gas dans l'EVM présente deux aspects : chaque transaction définit une limite de gas, qui restreint la quantité totale de gas pouvant être utilisée par cette transaction ; lorsqu'un contrat en appelle un autre, l'appel peut définir sa propre limite de gas. Cela permet à un contrat d'appeler d'autres contrats auxquels il ne fait pas confiance, tout en garantissant qu'il lui restera suffisamment de gas après l'appel pour exécuter d'autres calculs.
Cependant, l'un des défis posés par les propositions de gas multidimensionnelle est que la différenciation entre différents types d'exécution semble nécessiter que les sous-appels fournissent plusieurs limites pour chaque type de gas, ce qui impliquerait une refonte fondamentale de l'EVM et serait incompatible avec les applications existantes.
Buterin propose une solution consistant à suivre en temps réel les « storage_operations » et le « execution_gas », et à facturer 2500 ou 10000 unités de gas au moment de l'opcode d'appel, selon l'augmentation de la valeur max(execution_gas + 2500 * storage_operations, 10000 * storage_operations). Bien que cela ajoute une certaine complexité, cette approche préserve au maximum la compatibilité descendante.
Il indique que la solution la plus simple pour la tarification multidimensionnelle de la gas consiste à considérer la limite de gas des sous-appels comme proportionnelle. L'auteur suggère deux méthodes : l'une consiste à allouer proportionnellement les différents types de gas, l'autre à exprimer le paramètre de limite de gas du sous-appel comme une fraction du gas restant dans le contexte courant. Il note que l'introduction d'une gas d'exécution multidimensionnelle accroît la complexité, et qu'il faut accepter un certain niveau d'imperfection au niveau de l'EVM afin d'obtenir des gains de scalabilité au niveau L1.




