While reading about Mastercoin and colored coins I came across this:
(killerstorm replying to dacoinminster about how "thin clients are fundamentally impossible")
Well, I see a problem: MasterCoin transactions are not linked together in a subgraph, so one needs to scan the whole Bitcoin blockchain to interpret them.
This means that thin clients are fundamentally impossible.
You are going to have either full clients (like Bitcoin-Qt) which download whole blockchain (8+ GB of data now).
Or server-trusting client, which undermines the whole point of having cryptocurrency. (If you are into that, just use Open Transactions: low overhead, impressive features.)
We discussed this topic in this mailing list, see discussion with Paul Snow and 'theory of colored coins'/'advanced color states' threads: you have to confine transactions to subgraph to make it friendlier to thin clients.
(It is hard to say whether it is friendly enough, but at least we have a chance to optimize and make trade-offs to make it acceptable... I don't see how it is possible with global messaging model without making it reliant on trusted servers.)
You can implement many MasterCoin features using colored coin model with advanced color states.
Or you can at least confine special transactions to a subgraph, so thin clients will have a chance to exist until MasterCoin transaction volume becomes high...
>The block-chain scanning requirements are a lot lower considering that I only need to scan transactions that reference the Exodus Address,
You need to scan whole blockchain to find all transactions which reference the Exodus Address.
Blockchain is a flat list of transactions, they aren't grouped by address or anything. And you need to process transaction to see which addresses it references.
You might use bloom filter feature to reduce traffic, but then you're at mercy of network nodes you've connected to: they might just 'forget' to send you some transactions, which might be used to rob user.
For example, suppose address XYZ has 100 coins. I will first send 100 coins to address ABC, and later 100 coins to address DEF.
Of course, second transaction is invalid, but if DEF's node haven't seen the first one, it will recognize second as valid...
Thus: unless you scan whole blockchain, you depend on honesty of nodes you've connected to.
>but thin client type solutions are going to be needed eventually.
I don't think there can be a solution if protocol is simply not designed with thin clients in mind.
Has there been any new developments on if it's possible to make it so that Mastercoin doesn't require trust in third parties? Or will the only people who can directly move Mastercoins without trust will have to have the entire blockchain and Mastercoin tools running locally?