Right now, full clients of the Bitcoin network store every block ever generated (while "thin" clients instead rely on a node which does so). This greatly increases first-time initialisation for the client, and also has significant implications for network overhead, amongst other things. How would the network be impacted if nodes instead stored only the headers of most blocks in the blockchain until or unless they "needed" the actual block?
These situations are fairly common, such as:
- verifying the validity of each new block as it is found and transmitted to the network
- any time the client is sending or receiving bitcoins
so that in general clients would still download all blocks broadcast when they were online. However they would be able to:
- purge blocks they "don't care about" if storage space is limited
- in the typical case, start sending and receiving bitcoins after downloading only the few most relevant blocks (and all the headers of course)
Note that there are usually several entities "invested in" the continued availability of a given block, such as the original miner, who wants their 50 btc earned to remain valid, and anyone who received bitcoins from transactions in that block. However, one intriguing consequence of this scenario would be that miners are incentivised to include as many transactions in their blocks as possible (currently one can mine without including any transactions if one so desires). What would the other impacts on functionality and security be?
Edit: I'm looking for a better answer than "I think it would destabilize the network" here--I want to see some estimated impacts on block availability, network overhead up or down once the lower amount of downloading is contrasted with re-downloading later, etc. Some statistics on how inter-dependent blocks are alone would go a long way towards a solid answer.
Edit 2: Right now this bounty's going to Shadders in a couple of hours. But if anyone had more detailed info on the information I asked for in my first edit, they could definitely snipe it. Any takers?