snip
snippety snip
To resolve the scalability problem we have to distribute transaction records in such a way that every transaction stored not on all computers, but on a small part of them. For example, every block is stored on 1000 randomly chosen nodes. The rest of nodes (billions of them) keep only header of it. Such network can grow indefinitely without affecting storage capacity requirements. When bandwith/storage capacity will grow, the 1000 will become 2,000, 10,000 etc. etc.
I agree that the workload must be distributed. Not just storage capacity, but also processing power and bandwidth. (But not mining, he he. That is the work that has to be hard.)
It should not be done randomly, but deterministic based on the characteristics of the transaction. Making a tree. That is easy to validate.
EDIT: I'm (bit)coining the expression now.
The block tree! 