For bitcoin to be peer to peer cash, as we all know, it will need to scale with regards to transaction capacity per second. Obviously this can be addressed through off chain solutions, but I am curious about on chain scaling.
As I understand it, there are only a few things that could be done to increase on chain capacity without drastically altering the protocol.
1) You can increase block size. The major argument against this seems to be the burden placed on running a node, which would increase centralization by making it harder/more expensive to run a full node.
2) Segwit, which makes more efficient use of a given blocksize, and is already implemented. (I am not well versed in the technical arguments against segwit)
3) Alter the protocol to increase the rate of block production, and decrease the block reward, such that money supply is the same, but you end up with more transactions per second for a given block size. This would appear to have all the drawbacks of 1), and also an increase in the orphan rate. [/li]
Neither of proposed on-chain solution gives long term solution. It'a all about how fast block chain size approaches infinity with number of transactions/time approaches infinity and the ratio between those two derivatives.
I see coins aging could be a viable on-chain scaling solution (scenario where coins that was not been moved for full halving period will automatically return to coinbase). If this will be the case - full nodes will only require to store blockchain for the past halving period since anything that remained unspent will transfer to the coinbase. This is drastic and, perhaps, cruel measure to take but that will also solve satoshi't billions, burned and lost coins problem.