EthereumCommonwealth / Roadmap

GNU Lesser General Public License v2.1
57 stars 17 forks source link

Dynamic Gas Price #61

Open Dexaran opened 4 years ago

Dexaran commented 4 years ago

Definition

The Dynamic Gas Price is a feature that will not allow to submit transactions with gasPrice lower than the established minimum at protocol level. It is proposed to set a minimum of 5,000 GWei and adjust the minimum transaction price in accordance with the CLO:USD ratio.

The CLO price will be submitted on-chain by the price oracle contract that will be operated by Callisto Team at this stage.

Rationale

The gasPrice is a feature of Ethereum protocol that is intended to determine the transaction fees and computation costs. It is assumed that miners and mining pool operators will maintain the fees at the level that will facilitate the healthy network operability. This assumption proves to be wrong as miners do not increase the gasPrice in case of a significant price drop but tend to increase the price once the network is flooded by transactions.

However cheap transactions and computation costs are not beneficial for the network in long term since all the data stored on chain and all the computations performed have their operative cost counterpart.

If the described operative cost of an on-chain action exceeds the transaction fee then the network can be collapsed in theory. It is possible to bloat the blockchain with cheap transactions thus increasing the operating costs of nodes (including the bootnodes and RPC nodes).

Ethereum has also experienced a bloating earlier which was fixed with EIP150 hardfork.

In case of EIP150 hardfork the bloating was caused by the Ethereum protocol flaw that was permanently fixed but the bloating is still possible if miners fail to maintain the appropriate gasPrice to prevent the excess of underpriced on-chain operations.

This proposal can also increase miner's incomes in theory by increasing the transaction fees.

Gas Price comparisons & Gas Price table

IMG_2020-01-20-175638

Long term utility of the feature

This feature is a temporary measure that prevents a theoretical possibility of blockchain bloating.

Since price oracles can not be implemented in a secure and decentralized way it is not beneficial for the project to facilitate a degree of centralization by relying on oracles operated by a smart-contract.

This function should be disposed as soon as blockchain bloating ceases to be a threat.