If we tie together two of the initiatives of Ethereum 1x, namely limiting the State growth (currently via State Rent), and short-term increase in scalability, we can ask and try to answer these questions (note this is a bit rough and might need some editing before it grows into something digestible):
-
Looks like uncle rate is slowly declining. Is it due to node operators slowly upgrading to Parity optimised version (which is currently in Beta), or mining centralisation caused by the dropping price? Probably a bit of both.
-
When can we raise the block gas limit, and by how much? Raising block gas limit is great, but the main worry is that it can (and probably will) accelerate the rate of state expansion.
-
We surely do not need to wait for the entire State rent to be rolled out before increasing the block gas limit. Can we just make state expanding operations (
SSTORE
,CREATE
, etc.) more expensive? Then, recommend the block size increase approximately in the same proportions? For example, make state expansion 3 times more expensive, and recommend raising block size limit by 3 times? Yes, but there are issues to overcome. -
First one, is hoarding and Dark Rent, as I described here
-
Vitalik suggested a “keyhole” solution to the hoarding and Dark Rent. The least invasive variant requires adding
storagesize
field to the contracts, which incidentally is also required for the introduction of State Rent. So perhaps we could introducestoragesize
first, making State rent rollout simpler? -
The second issue with raising the relative cost of state expansion is that it increases miners’ incentive to offer services to side-step this cost. Because miners receive the entirety of transaction fees, it makes them immune to any increase of penalties in the protocol. At some point, it can become worth to monetise this immunity to include state expanding transactions and refund customers part of the fee (or simply accept 1 wei gas price, which is, of course, more conspicuous).
-
The third issue with the raising the relative cost of state expansion are the current techniques of utilising non-uniformity of gas price over time. Such techniques include finding the best time of the day to deploy contracts, and leaving non-urgent state-expanding transactions to float in the transaction pool with very low gas price for hours, or even days. When the relative cost rises, these techniques will become more in demand, and more effective techniques will be developed, somewhat neutralising the taxing effect of the cost raise, and making the state space cheap only fort the “specialists” and their customers.
-
Partial solution to both issues mentioned in two previous bullet points is burning part of transaction fees, as well as reducing the time non-uniformity of gas price, similar what was suggested here.
-
The “Fee market change for Ethereum 1.0 chain” mentioned in the previous bullet point contains the right ideas, but I do not currently suggest implementing it as it is. More work is required to remove some IMO arbitrary things (like hardcoded gas limit, which is there for the sake of reusing the field in the block), as well as tailor it further to the “taxation” of state expansion
-
In the thread of the Github issue mentioned above, Nick Johnson implied that feedback systems like proposed are tricky, and require correct approach. He recommended a book on Feedback Systems, which I have, and I am intending to read it. The book is mainly concerned with continuous time systems, but apparently discrete time systems are very similar (but different)
In summary, with some extra work we might be able to chart a roadmap which takes us from where we are currently toward the State rent via fixes in the fee market and tax on State expansion and raising the block gas limit.