There have been many discussions on scalability over the years here. It's an old topic.
Yes, I'm aware of general scalability discussions... I wonder if there are schemes which can fundamentally reduce storage requirements, particularly through use of divide and conquer.
Yes, I've read it.
A problem with this article is that it considers scalability from a point of view of a large commercial operator.
But scalability woes can easily prevent end-users from running their own full nodes. Which means that we can end up with just a handful of full nodes which belong to commercial operators. Which are profit-motivated and will run away as soon as costs exceed profits...
This might create security problems. It's much easier to pull off 51% attack if you can disable majority of full nodes via DDoS.
E.g. consider such scenario: there are only 5 mining pools. Operator of 1 mining pool disables 4 other pools via DDoS. Now he can easily do whatever he wants as miners will migrate to his pool.
And p2pool can't help here because very few enthusiasts can afford to run a high-end cluster for a node just for the hell of it.
So I think it's important to consider whether solutions to scalability problems, particularly to storage requirements, exist at least theoretically for blockchain-based cryptocurrencies.
If they do not exist, it would make sense to look for alternatives to blockchain. E.g. list of account balances, as described in Ben Laurie's paper.
Pruning is definitely not a fundamental solutions because it's likely that number of unspent transaction outputs would be proportional to number of transactions for quite a while, until we reach saturation.
There are some proposals of more aggressive forms of pruning, where we will cut outputs which still can be spent:
https://bitcointalksearch.org/topic/output-upkeep-costs-80435This might help, but I wonder whether there is a better way to do this.
The bottleneck is not at any time storage. Terabyte hard drives are cheap
It depends how you look at it... Consider somebody running a web store store. A VPS with 1 GB RAM is usually quite adequate to run a web store.
But, for example, a VPS with 1 GB RAM from Linode has only 40 GB of storage. So blockchain might eat a significant portion of it, and thus it would discourage people from running full nodes.
Given the simplicity of the existing design yet the fact implementation issues are still present, I can't forsee a time when a dramatically more complex design will be desirable vs simply optimizing what we have.
A design sketch I presented above is definitely not much more complex. It is largely theoretical, but I'm fairly sure it can be implemented right now. (I mean, unless there is no major hole in my reasoning.)
Tracking spent transactions in separate chains and linking it from main blockchain is pretty much trivial to implement.
Using this information is also fairly easy and straightforward. It doesn't even require hard fork: nodes who have pruned away too much of their blockchain copy might just start using spent-transaction-chains for verification, and that's all.