A proposal for a new Gas economy for Ethereum

in #ethereum6 years ago (edited)

Vitalik recently tweeted about fee volatility being a huge problem with Ethereum. As a dApp developer that's constantly thinking about fee economics and optimizing dApp interactions around it, it would be amazing if Ethereum fees were cheap and predictable.

Currently, fees are set by the "fee market". At times of low blockchain demand, fees are low since there's lots of block space. When blocks start filling up, fees are used as a way to compete for block space. This results in sky rocketing fees. High fees greatly hinder dApp usage and ultimately adoption of Ethereum. If there are long periods of time where dApps are just too expensive to interact with, Ethereum loses its network effect and the power of its smart contract system. People will stop using utilities on Ethereum because it's simply too expensive.

I've been nibbling on a new Gas economic model for Ethereum, one where users pay zero fees. There are several problems that a zero fee model has. The first problem is that miners lose incentive to include transactions in blocks. Why not just put in as little work as possible and include zero transactions? The second problem is that users can spam the system. If it costs zero fees to use Ethereum, what's stopping malicious entities from sending a ton of transactions?

I propose a new system that solves the two problems above:

First, have block rewards be dynamic based on how much block space is filled with transactions. The fuller a block, the greater the block reward. Of course, there will be a max, keeping Ethereum's inflation linear (i.e. inflation % decreases over time). There should be a sweet spot where its much more profitable to do the work to fill the block than not and where it's not too profitable that miners start choosing to wait for new transactions to fill. This solves the first problem where miners could be incentivized to not fill blocks with transactions before broadcasting a new block.

Second, use Steem's bandwidth rate limiting algorithm to prevent spam. In this system, every account has a set amount of block space it can use up, before the blockchain rate limits the account. This bandwidth cap is determined by Ethereum's total bandwidth (a function of max blocksize and block time) DIVIDED BY the total number of accounts seen in the last X number of blocks. Since not every account will be interested in broadcasting at the same time, we can actually use a fractional reserve system whereby in times of low traffic, an account's bandwidth cap is elastic. When the blockchain starts getting clogged, reduce the bandwidth cap until it goes back to (Ethereum's total bandwidth / the total number of accounts seen in the last X number of blocks). This solves the spam vulnerability problem in a zero fee system.

This is a half-baked idea and there could be several flaws in it. But I hope the theme is clear and there is SOME way we can tweak things such that the flaws can be ironed out. Perhaps we can enforce an account minimum balance to use the blockchain? Perhaps we can start charging fees when the blockchain is clogged and everyone's bandwidth is minimized.

Just a thought. Let's make Ethereum better.

More reading: Why 2018 Will Be The Year Of Ethereum And QTUM

Coin Marketplace

STEEM 0.26
TRX 0.11
JST 0.032
BTC 63510.75
ETH 3065.54
USDT 1.00
SBD 3.82