Blockchain bloat, Contract Fees, and Rent

One thing I've noticed after looking at ethereum protocol, is the huge potential for blockchain bloat because of contracts, because you pay a one time fee for permanent storage by the network. This leads the network to a more exponential growth function. However, it seems like a simple situation would be to make all contracts expire (Expiration is stated as possible here) after non-use for a certain period of time (all funds are returned proportionally to the addresses that paid the fees incurred by the contract). This means that miners only hold contracts which are active (ie. still generating revenue for the miner), and the blockchain's size is largely pinned to the amount of activity on the network, not the age of the network. Non-contract addresses do not expire.

Comments

  • BitcoinzieBitcoinzie Member Posts: 73 ✭✭
    I think making a TTL statement should be mandatory for contracts to compile and be added to the blockchain. Also adding a fee per time stored(month, year, etc..) could encourage people to remove their contracts and those who don't pay the fee are simply removed.
  • JasperJasper Eindhoven, the NetherlandsMember Posts: 514 ✭✭✭
    Easier said than done. In practice, there is the concern of unexpected breakage of contract functionality. And TTL based on just activity could be asking for attackers to just poke contracts a bit. Rent might be a better solution, but it complicates things. Currently, you get a bit of gas for ending use of storage.

    Also, the more gas is used, the more it costs. Likely there will be a gas limit per block. So there is an upper limit of total storage needed linear with time.
  • VivaLaPandaVivaLaPanda Member Posts: 4
    Poking contracts isn't an issue, because they are paying ether in order to activate the contract (I'm assuming thats what you meant by poking). Unexpected breaks due to contracts being destroyed is a problem, but also seems inevitable, because the same thing could happen with contract makers putting in TTL statements themselves. Rent seems to complicated, and unnecessary. Through my model, the original developer only pays a one time fee, but only contracts that are being used are stored, and active contracts are guaranteed to generate revenue.
Sign In or Register to comment.