[Referendum 103] [MBIP-5] Possible Solutions for Unsustainable Storage Growth - Add a Storage limit per gas

Voting

Given the importance of this decision and the relatively low turnout of the snapshot vote, an on-chain vote will be held. Two competing proposals have been submitted on-chain; these are:

Both proposals are system.remarks and are merely used to capture the will of the community. The vote for both has been fast-tracked to 7 days, and the foundation will implement whichever MBIP has more votes at the end of the voting period.

To be clear, token holders should vote “Yes” to ONLY 1 of these two proposals based on their preference.

MBIP-5: Add a Storage limit per gas - Pros and Cons

Pros:

  • This solution is simpler to explain and to implement
  • There is no change to the base fee (when compared to MBIP-4). The transaction fee calculation follows the EIP-1559 standard, as this MBIP is focused on gas limit
  • There is a lower impact on Ethereum RPC compatibility. However, there is still a risk that deployments and transactions that might have worked in the past might not work after implementing this MBIP. For example, a transaction that uses a lot of gas already, without accounting for its impact on storage, might run over the transaction gas limit when this MBIP is implemented
  • The maximum growth is roughly ~6.5GB/y. The exact number will vary based on the hard-limit per block (see below).

Cons:

  • Each Block has a hard limit of 40k bytes storage, which cannot be exceeded.This limit is still open for discussion and could later be changed with a runtime upgrade.
  • Block storage and CPU are combined, 1 limiting the other. In other words, there can be blocks that are not doing any CPU operations (which is what typical smart contract execution is for) as their available gas is used with storage based operations
  • Gas price will increase with storage being used. This is a direct consequence of using gas to quantify storage usage. If storage usage is high, the gas used per block is high. Consequently, the dynamic gas price mechanism (similar to EIP-1559) will increase the baseFee of the block, increasing the transaction fees for the entire network

Foundation Recommendation

It is the Moonbeam Foundations recommendation that the community adopt MBIP-5. Not only is it simpler to explain to a non-technical user, it is generally more inline with Ethereum standards (both EIP-1559 and RPC compatibility) and so will lead to fewer integration problems for Solidity developers.

That being said, the foundation will of course abide by the community’s decision if it decides to go with MBIP-4 instead.

2 Likes

@aaron.mbf Great proposal! Coming from the enterprise industry, Im generally more in favor for scalable and compatible solutions if the cons are not a major concern and seems MIP5 is the right choice. Hopefully not to look silly asking this question…if the community were to choose MIP4, what does that mean exactly for compatibility issues? Possible chain halts…or something not as drastic?

1 Like