Currently systems use first-price auction to price gas, where gas is some measure of resources that a transaction takes to process by the block producer. First price auction means that everybody sets their price and get charged that if their transaction made into the block. This ended up in a lot of overpaying, price surcharges and volatility, centralized entities like Gas Station.
Other auction mechanics, such as second price or uniform-price auctions all have issues where block producer can themself increase their revenue by adding transactions or leverage off-chain connections.
There is also suggestion by Vitalik (here), to have
minPrice that is determined based on
minPrice of previous block and how full the previous block was (if block was more then half full price increases, if less then half full decreases).
IMO this system doesn’t apply very well to sharded blockchain, as you have different utilization in different shards. Unless the gas price is also different (which makes experience even worse), then a system wide utilization metric must be used. …
First, we describe the dimensions we are going to be analyzing this:
- Dynamic number of shards
- Demand is below / above the current supply
- Use cases:
- that can wait and have lowest possible price point
- that have specific price vs time component
- which price point is above usual and requires immediacy
- Execution of transaction happens in multiple shards, thus gets included by multiple block producers.
- Block producers have some minimal $$ (e.g. measured in dollars) at which they will include transactions otherwise prefer to produce empty block.
- System has only NEAR token (ideally we would lift this, but for this analysis we assume that there is only one token) which price in $$ changes.