> There comes a point when it's just no longer practical to store the entire blockchain
Why would you have to? The point of decentralisation is not that everyone has a copy of the truth. It's that a sufficient number of nodes have a copy of the truth, such that you can check a number of them and easily verify the veracity of the data. Many blockchain applications run not by querying their own blockchain but rather querying a number of trusted sources via their API. Coinbase, Bitpay, Chain.com, Blockcypher etc all offer APIs to interface with their blockchain nodes and others.
It's like saying Facebook will never work because you can't possible store the worlds' photos on everyone's smartphones. You don't have to, Facebook stores it on their server. Similarly we will see, and already see, dedicated servers that store the blockchain, and as long as you have enough independent ones you can maintain decentralisation just as if you were hosting your own node.
There's absolutely no need to host the blockchain on small embedded devices any more than any other data, like music or photos we normally host on dedicated servers instead.
> but truncating the chain (or only storing some kind of "working set") isn't feasible either.
Yes it is. What makes you say it isn't? Pruning the blockchain is something that's currently being worked on.
The idea is that if I send you $1 a million times and you send it back $1m times, every day, for the next 1 billion years, we could either store terabytes and terabytes of data of all these transactions, or we could store the end result (= no change occurred) and the last couple weeks of transaction data. The rest can be pruned. Because each block has a hash of all its transactions, and this hash is used to mine the next block (hence a chain of blocks, blockchain), we needn't store each individual transaction, we have the hash to verify the truth of transactions.
We might have some universities saving all transactions for posterity & research, and some businesses for data mining, but the vast majorities of nodes that just need to secure the network can indeed, without security issues, not store long-spent outputs. (i.e. bitcoins that have already been spent many times over. e.g. if I give a dollar to you and you give it to the next guy, and he to the next girl, and so on 100 times, at that point there's absolutely no reason to store on every node the fact I gave a dollar to you for the security of the network.)
> Not to mention the gargantuan download that's required for that initial setup to get up to date with the latest network transactions.
Again, no need to have all redundant transactions. The pruned blockchain would currently be under a gigabyte large. Second, headers-first has already been implemented which made the initial setup much, much faster.
Beyond that, we mustn't forget that the average American makes 2 transactions a day. And one such transaction is about 400 bytes or so, in bitcoin. If you compare this to tweets, or an hour of netflix, it's puny. If you count up all the data, it's about $8 to store one day of all of US consumer transactions on a retail harddrive. Imagine the cost of storage for Mastercard for one of their nodes was $8, and instead of just powering a fraction of US retail, they'd literally handle every single transaction by themselves and store them all for $8. Even if you wanted to have thousands of nodes and store the last year of data (and given the velocity of money, you wouldn't have to as again, you can prune data after money has been spent a couple times), that's a puny amount of money to power an entire consumer financial system of the world's biggest economy. And given storage, like CPU and bandwidth, on a 50-60% yoy growth rate (Kryders, Moore's and Nielsen's laws), I think by the time bitcoin becomes important enough to run 100% of US retail (which is likely never, but hypothetically speaking), that $8 will have dropped to below $0.10 easily.
I know I'm taking big shortcuts here but this is just to illustrate the economics are extremely favorable today and in the future. I don't know if bitcoin will succeed or fail, but I'm pretty near certain it won't fail because storage/cpu/bandwidth isn't affordable enough for nodes to make it viable to run the network. I and many others have looked into this quite a bit and these aren't big problems. Bitcoin has big obstacles (no gigantic consumer benefits in a world of decent fintech like every OECD country to use bitcoin directly, is one), but storage probably isn't one of em.
Why would you have to? The point of decentralisation is not that everyone has a copy of the truth. It's that a sufficient number of nodes have a copy of the truth, such that you can check a number of them and easily verify the veracity of the data. Many blockchain applications run not by querying their own blockchain but rather querying a number of trusted sources via their API. Coinbase, Bitpay, Chain.com, Blockcypher etc all offer APIs to interface with their blockchain nodes and others.
It's like saying Facebook will never work because you can't possible store the worlds' photos on everyone's smartphones. You don't have to, Facebook stores it on their server. Similarly we will see, and already see, dedicated servers that store the blockchain, and as long as you have enough independent ones you can maintain decentralisation just as if you were hosting your own node.
There's absolutely no need to host the blockchain on small embedded devices any more than any other data, like music or photos we normally host on dedicated servers instead.
> but truncating the chain (or only storing some kind of "working set") isn't feasible either.
Yes it is. What makes you say it isn't? Pruning the blockchain is something that's currently being worked on.
The idea is that if I send you $1 a million times and you send it back $1m times, every day, for the next 1 billion years, we could either store terabytes and terabytes of data of all these transactions, or we could store the end result (= no change occurred) and the last couple weeks of transaction data. The rest can be pruned. Because each block has a hash of all its transactions, and this hash is used to mine the next block (hence a chain of blocks, blockchain), we needn't store each individual transaction, we have the hash to verify the truth of transactions.
We might have some universities saving all transactions for posterity & research, and some businesses for data mining, but the vast majorities of nodes that just need to secure the network can indeed, without security issues, not store long-spent outputs. (i.e. bitcoins that have already been spent many times over. e.g. if I give a dollar to you and you give it to the next guy, and he to the next girl, and so on 100 times, at that point there's absolutely no reason to store on every node the fact I gave a dollar to you for the security of the network.)
> Not to mention the gargantuan download that's required for that initial setup to get up to date with the latest network transactions.
Again, no need to have all redundant transactions. The pruned blockchain would currently be under a gigabyte large. Second, headers-first has already been implemented which made the initial setup much, much faster.
Beyond that, we mustn't forget that the average American makes 2 transactions a day. And one such transaction is about 400 bytes or so, in bitcoin. If you compare this to tweets, or an hour of netflix, it's puny. If you count up all the data, it's about $8 to store one day of all of US consumer transactions on a retail harddrive. Imagine the cost of storage for Mastercard for one of their nodes was $8, and instead of just powering a fraction of US retail, they'd literally handle every single transaction by themselves and store them all for $8. Even if you wanted to have thousands of nodes and store the last year of data (and given the velocity of money, you wouldn't have to as again, you can prune data after money has been spent a couple times), that's a puny amount of money to power an entire consumer financial system of the world's biggest economy. And given storage, like CPU and bandwidth, on a 50-60% yoy growth rate (Kryders, Moore's and Nielsen's laws), I think by the time bitcoin becomes important enough to run 100% of US retail (which is likely never, but hypothetically speaking), that $8 will have dropped to below $0.10 easily.
I know I'm taking big shortcuts here but this is just to illustrate the economics are extremely favorable today and in the future. I don't know if bitcoin will succeed or fail, but I'm pretty near certain it won't fail because storage/cpu/bandwidth isn't affordable enough for nodes to make it viable to run the network. I and many others have looked into this quite a bit and these aren't big problems. Bitcoin has big obstacles (no gigantic consumer benefits in a world of decent fintech like every OECD country to use bitcoin directly, is one), but storage probably isn't one of em.