State Rent proposal version 2 (rushed)



Here is the current state of the second version of the State Rent proposal. It is rushed, and most probably contains some mistakes, and definitely lots of things left unspecified. It is here:

Main differences from the version 1 (apart from the organisation of the document, which is now series of “change cards” with dependencies between them):

  • Linear Cross-Contract Storage removed, since it is possible to emulate its functionality by contracts using CREATE2 opcode.
  • Priority Queue for eviction removed, eviction would be based on “touching”, under the presumption that miners would not be able to censor evictions (if they had motivation to do so).
  • Calculation of the correct contract storage size (accounting) introduced before the rent, to avoid some edge cases, where rent could become negative.
  • Lock-ups with a fixed price introduced, to prevent or limit dust griefing attacks on pre-existing contracts, and to reduce the need to rewrite most of contracts.
  • Possibility to exempt important contracts from storage rent by burning ETH prior or after the introduction of rent
  • Temporal replay protection is preferred over the variant with non-zero nonces
  • Rent price is assumed to be fixed, floating rent can be introduced in later versions of the proposal

Experiments we should be running

It is the first presentation in this YouTube video.


Thank you! I have also committed a new version of the proposal (under the same link), with added illustrations for the lockups