but there is a third step, that is when bitcoin really becomes main stream and each block takes up 50+MB. Then most people will be forced to use things like instawallet, mtgox, tradehill for their wallet. The time of Bitcoin banking.
Not necessarily. There are ways of keeping it P2P even then. That would required the creation of a "give me the list of outputs of block X" message. This list would be much smaller than the entire block as it would not contain the inputs, their public keys and signatures.
Of course that a node could then lie about the contents of this list. Such risk could be considerably mitigated by
- Asking the list to different nodes
- Connecting to a set of trusted full nodes
- Clients could offer the user the option to "rescan transactions from this point to that point in time, because I should have received something there". Such manual rescan could perform a full download of all blocks in the period.
The risk could be completely eliminated by adding a checksum of the output list to the block header, but that would be a major change in the protocol. Worth doing, I'd say, if that's what it takes to keep bitcoin truly P2P, and not dependent on trust.