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.