A quick thread on supply and demand economics, and why certain "naive" solutions to high gas prices won't work.
First of all, why is the gasprice currently 465 gwei? Why isn't it 1000 gwei, or 100 gwei?

The reason is: 465 gwei happens to be the current level at which demand (the number of transactions people are willing to send) equals supply (12.5 million gas of tx space in each block).
Suppose we were in a world identical to today, but where everyone was sending transactions with 100 gwei. At the 100 gwei level, everyone who would be sending txs today would still be sending txs, but there would also be many more who are willing to send at 100, but not at 465.
So what would happen? There would be more demand than there is space, so people would start bidding higher and higher txfees. How high would txfees go until enough people drop out that the remaining users make up only 12.5 million gas? Well, we know the answer: 465 gwei.
Similarly, imagine everyone was sending transactions with 1000 gwei. A bunch of people would no longer find it worthwhile to send transactions, so they would drop out.
The remaining transactors would see that blocks are partially empty, so if they lower their fees they would still get included. Hence, everyone would start lowering their fees. How low would they go? 465 gwei.
Here's a common class of "solution" that I hear to the high txfee problem: why not have (the protocol | the Ethereum foundation | Vitalik) just refund 80% of everyone's fees? But if you understand what I said above, you'll quickly see that this does not work.
Why? Suppose that this happens. Suddenly, when everyone is selecting "465" as their txfee, they are no longer *actually* paying 465 gwei, rather, they are paying 93 gwei. And there are many more people willing to pay 93 gwei than at 465 gwei. Hence, people start bidding up...
And what's the equilibrium? Well, it's the place where people are actually, once again, paying 465 gwei (and therefore the number in the transaction becomes 2325 gwei and the EF/Vitalik now have to pay the 1860 gwei difference instead of using that money to scale ethereum).
So what does work? Increasing transaction capacity. The fee level at which there exist 15m gas worth of willing transaction senders is higher than the level at which there exist 12.5m gas worth of willing transaction senders.
However, increasing capacity is hard to do safely. Ethereum nodes are already running near their limits and there is always the risk of DoS attacks that are much slower to process than regular blocks, slowing the chain to a crawl. Higher gaslimits would exacerbate this.
EIP-2929, published today, would increase gas costs of some particularly sensitive operations, making it safer to increase gas limits. But this would only be a tiny short term mitigation; decreasing fees from 465 to 372 gwei would not solve the problem. https://twitter.com/VitalikButerin/status/1300983769000673282
The better solution is drastic increases in scalability through (i) rollups, and (ii) sharding. Optimistic and ZK rollups can increase capacity from ~15 tx/sec to ~3000 tx/sec by doing most of the transaction processing on layer 2.
In a rollup-heavy ecosystem, on-chain gas fees would remain the same, and 465 gwei may even become the norm, but most transactions would be happening inside rollups, where actual fees paid by users would be hundreds of times lower.
Sharding, on the other hand, increases the capacity of the base layer by ~100x. This could lead to a 100x decrease in fees, though realistically in the long term it would not decrease quite as much because people's interest in using ethereum (ie. demand) would also increase
Conclusion: the only solution to high tx fees is scaling. Tether, Gitcoin and other apps are doing the right thing by migrating to ZK rollups today. I'm excited about the soon-upcoming optimistic rollups that will generalize rollup scaling to full EVM contracts.
And in the somewhat longer term, sharding from ethereum 2.0.
You can follow @VitalikButerin.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: