So as I understand it, the issue here is to build a meta-chain that would contain digests of the contents of the main blockchain, in a way that would allow a lite-client to query a server for information stored into the blockchain, and use the meta-chain to verify the answer. And even the meta-chain itself would be constructed in such a way that it can be partially queried and verified using only its root hash, meaning the lite-client would only need a bound amount of storage.
I hope I'm doing a good summary of what is being discussed in this thread, considering that it's pretty late at night here
At any rate, subscribing, this looks really interesting.
Yeah, fairly accurate. I'll re-summarize here because my view of my own proposal has evolved over discussions of the last few days, so I figured it was a good time to restate it, anyway
The first goal is blockchain pruning: the amount of information needed to store the entire state of the network at any point in time is much less than the entire blockchain history. You can basically just save the "outer surface" of the transaction map instead of the entire history and still do full validation.
So I propose a structure that achieves this compression, and further organizes it accommodate a specific, common problem we want to solve anyway: a new node gets on the network with its imported wallet and doesn't need the whole chain, but would like to get a complete history of it's own transactions in a verifiable manner. I argue that with a more-straightforward "snapshot" tree, there's still room for deception by malicious peers, albeit not a whole lot.
Either way, I believe it's possible that new nodes can use a structure
like this one to get up in running with full confidence in less than 50 MB of downloading, even in the far future. And such a solution will be necessary, so let's hash it out now...
However, for lite-nodes to reliably use the new information, there must be some kind of enforcement that miners provide correct answers when updating the root node. This could be done by hard-forking the network by changing the headers to require a valid root node, soft-forking by requiring a specific tx or coinbase script to contain a valid root,
or as I propose: create a separate chain solely to allow mining power to "vote" on the correct snapshot root. Such a solution would then be completely optional and transparent to anyone who doesn't know or care about it -- though I would expect most miners and developers would be anxious to leverage it.
As galambo brought up -- the alt-/meta-chain idea is a kind of "staging area" for this new piece of the protocol. Once the community starts using it and becomes dependent on the information it provides, it could be integrated into the main chain (via hard- or soft-forking) as it would have super-majority support at that point.