Bitcoin protocol / algorithm scalability I have been looking into the Bitcoin protocol / algorithm a bit. I have the basics down, I think, but there are a lot of questions about how the whole thing is supposed to scale. For example,


Each client currently downloads the entire block chain, right? How is this scalable? They are supposed to be able to prune the Merkel trees, but I haven't gotten a good insight into how this works in P2P.
What was the thought process behind tracking transactions the way they are? You kind of have to traverse a lot of that tree to validate new transactions? Right?
Because of how a transaction ALWAYS needs to be confirmed (at least 6 times?) over P2P, the transfers are effectively far from instantaneous. There is a built in delay. Isn't this a problem? There is some delay already because of the nature of the algorithm that accepts the transaction into a block (solving the reverse hash).
1) It's not clear why you think every client having to download the entire block chain is a scalability problem. Pruning currently doesn't take place but it should eventually be possible in theory. Storage space is growing at a much faster rate than Bitcoin is.

2) To validate a new transaction, the only transactions you have to look at are the inputs to make sure it validly claims them. Presumably, you already know every currently-valid transaction output already. You have to check a block in order to accept it anyway.

3) This is the nature of the way Bitcoin prevents double-spending attacks. It's because Bitcoin has adopted a "no central authority at all" approach. Nobody, as far as I know, knows a way to do instantaneous transactions without a central authority. (Consider, for example, if a natural disaster splits the Bitcoin network into two halves and each half sees a conflicting transaction. How would you know?)