1
Is the Bitcoin's copy of the block chain completely necessary? Couldn't we just store the current balances of all addresses, without keeping logs of their transactions as well?
1
Is the Bitcoin's copy of the block chain completely necessary? Couldn't we just store the current balances of all addresses, without keeping logs of their transactions as well?
4
Yes this is called an SPV client. See this question here for detailed explanation of how SPV works. There are several of these today, most mobile wallets and the multibit wallet use SPV technology.
1
It's entirely possible for a node to store only the balances (Actually the UTXO, but it's conceptually similar). This is called blockchain pruning, and IIRC has been on the wishlist for a while.
The biggest problem is that to bootstrap a full node, it can't just take your word for what the set of balances should be, it needs proof. That proof is the full blockchain.
So even if 99% of nodes switch over to keeping pruned versions of the blockchain, we'll need a few that archive everything, so new full nodes can convince themselves of the correctness of the balances.
1
No, you can't. When a transaction refers to an unspent output, it refers to it by transaction ID and output number, not by address. So knowing that a particular address has a particular balance is not what you need to validate transactions. If you can't validate transactions, you can't validate blocks. If you can't validate blocks, you can't really do much of anything except trust some other server to do the real work for you.
Ripple implements accounts with balances instead of unspent outputs precisely to avoid this.
1
To answer your question completely: