At a recent workshop in Taiwan, Ethereum developers, including Raul Jordan, Vlad Zamfir, Philip Daian, and founder Vitalik Buterin, discussed a "massive problem" – that the network's current protocol offers no mechanism to finance the long-term storage of EDCCs, also known as smart contracts, on the base layer blockchain.
At the moment, a user deploying an EDCC to the mainnet pays a one-time fee, yet all the network's nodes must store that piece of the network's state indefinitely. Jordan believes that rent fees must ultimately be charged, but in a way that does not interrupt the "ability developers have to continue experimenting" with news Dapps.
In Buterin's words, "contracts that developers and users forget and stop caring about should disappear from the state by default."
For his part, Daian is emphatic about the need to introduce a rent-collecting mechanism, arguing that "any system that provides a storage abstraction to its users must in some form or another charge rent." Though the cost of EDCC data storage on the mainnet is currently "subsidized by a commons-based storage model, in which the network bears the external costs of … smart contract transactions … in the long term," he does not believe that this scheme will serve the network well in the future.
Buterin came out with two related proposals for addressing these concerns. The first involves identifying the upper limit of how large the state of the mainnet should be allowed to grow (i.e., how much data it should be allowed to house), then establishing a fee structure that would prevent that limit from being exceeded.
He notes that with the eventual implementation of sharding, the fees charged in such a scheme would dip dramatically: post-sharding fees would be equal to the value of pre-sharding fees divided by the total number of shards.
In Buterin's model, any time a user sends a transaction related to a specific contract, or to data stored therein, they would "automatically pre-fill" that contract with rent fees that would enable it to remain operational for several years. The tokens paid in rent would be burnt. If a contract went down, other contracts which relied on it for data or for a functionality that it provides would be affected. Buterin also suggested that rent fees should be able to "decrease, but not increase," so that as hardware storage capacity goes up, the fees can fall accordingly.
The Ethereum founder admits that denominating the fees in Ether, as he proposes, could lead to them becoming unacceptably high, but adds that transaction fees are also subject to this uncertainty now that blocks on the network are full (i.e., that the entities using the network are, at any given time, trying to write more data to the blockchain than can fit in a single block).
His second rent fee proposal is for a "pay-to-resurrect" scheme that would allow contracts to enter a "sleep" state, from which they could be awoken. To revert a contract to an awake state, a user must submit a Merkle proof "which proves the contract's state at the time of deletion," meaning the time the contract went to sleep. Other Merkle proofs would also be necessary to ensure that the contract is resurrected properly. Users would "likely" purchase these data from "some kind of second-layer market."
This configuration would relieve contract-deploying users of the burden of needing to estimate how long the contract should exist, as some rent fee implementations would require.
Rent fee schemes have also been discussed at RSK, where chief scientist Sergio Demian Lerner says the Bitcoin sidechain "will probably implement Storage Rent." Daian has speculated that the Bitcoin network itself may someday need to take a serious look at a similar solution.
Ultimately, no decision has been reached about how – or even whether – to roll out such a scheme. As Daian suggested, the proposed changes would be impactful enough that it would be inappropriate for a "small number of people" to make the call.
Not all Ethereum watchers seem sold on the idea, however. Mathias Grønnebæk, an early developer with the platform, pointed out that "storage is subsidized by inflation as it is right now," and expressed doubts as to whether a move toward rent fees would be "good for the protocol on whole."
On the other hand, Daian wants to see prices set "in a sustainable, incentive-compatible fashion" not only for storage but for computation and network bandwidth as well.