Matt, can you comment on the armory dev's proposal for chain pruning facilitated by an balance alt-chain?
I have to admit I havent spent a huge amount of time thinking about it, but its definitely an interesting concept. It does carry with it some of the issues of alienating old nodes which may have issues finding peers which have a full chain to give them, but I believe that is inherent in any chain-pruning method anyone has come up with so far. It does complicate bitcoin as a whole very greatly, forcing everyone to follow multiple chains (or...I cant think of a way to switch over to a new chain cleanly without hard-forking) and heavily complicating verifying the initial checking (probably ending up moving the initial download verification to the same trust-model as SPV nodes, which is ok, but not ideal). These complications only further the effort alt-client devs have to put in, which is already pretty huge and alt-clients are pretty important for the health of the network. In the end, I dont really see anyone jumping to implement it, so I dont see it happening any time soon, but if it does happen, it will provide some interesting new features.
[For reference: the idea I proposed is a special blockchain pruning method that allows nodes to verifiably query any address balance with only a couple kB download -- and the pruned data would be maintained & enforced on a second/alternate blockchain using merged mining] Theoretically, the alt-chain created for this purpose is strictly optional. No one is "forced" to do anything -- they only use it if they want to participate in creating/exchanging/verifying/downloading address-balance information. One major benefit of the idea is how perfectly non-disruptive it is.
I agree that it would be complex. But there's a lot of alt-chains already in existence that use merged mining, which probably provides 90% of the template that would be needed. I don't mean to imply that there's anything easy or quick about it... just that a lot of work has already been done.
Otherwise, there's two options that both have serious downsides (compared to using an alt-chain). But maybe some brainstorming can resolve it:
(1) Overlay network like what stratum is trying to do. Issue: requires some trust of other nodes, and malicious nodes can really muck up the network.
(2) Modify the main blockchain, forcing block-headers to include a valid balance-tree hash to be accepted. Issue: requires a hard fork.
However, there's a dozen other things that could go in as long as we're doing a hard-fork, anyway. If there's any inclination to believe it will have to be done at some point, earlier is better...