Sorry for the ignorance, but can someone tell me what's the main difference between the capability of Mastercoins and Colored Coins?
I.E. what Mastercoins can do while the Coloredcoins can't, or vice versa.
Colored coins allow one to create tokens which represent ownership of something, like shares, bonds, currencies, derivatives etc. Basically, whatever you want to have tradeable.
Then there is a way to trade them in a secure fashion, which opens up a possibility of decentralized, peer-to-peer trade.
There will be probably some features which are useful for stocks and bonds: paying dividends, motions, etc.
One can implement futures and prediction markets using colored coins, but there are no features specifically for that, it is up to issuer to guarantee proper settlement.
There are also some advanced features which can be used to implement currencies with demurrage, built-in taxation, etc, but it is largely theoretic now.
And that's pretty much it. MasterCoin features which require non-local interactions (i.e. transaction affects state of objects not linked to it) are not possible within colored coin model. This includes things special savings addresses, bets, and stabilized user currencies.
(Note that you might be able to implement features like that via advanced features of Bitcoin (multi-signature scripts, contracts) unrelated to colored coins. )
So, to summarize, with colored coins we deliberately avoid features which require non-local interactions. This makes things simpler.
Colored coin transactions are Bitcoin transaction, and they behave in exactly the same way. You wait confirmations in the same way as you do with normal Bitcoin payments. They are not sensitive to ordering. Double-spending is prevented by Bitcoin nodes.
This means that in comparison to MasterCoin, colored coins are:
- simpler and more reliable: colored coin kernel function is just ~15 lines of code, we only need to code review it to make sure that it works properly
- has well-understood properties which are based on Bitcoin properties: no need to wait a lot of confirmations to guarantee that transfer happened
- client needs to scan transaction history of one specific color to be able to receive it. This allows secure thin clients similar to SPV Bitcoin clients (although potentially such clients need to download much more data than Bitcoin thin clients). In contrast, to be able to work with MasterCoin you need to scan the whole Bitcoin blockchain, so thin clients will have to trust some server
- colored coins do not liter Bitcoin blockchain with unspendable UTXOs: all UTXOs which are used to represent colored coins are spendable and can (and should!) be eventually reclaimed
However, lack of non-local interactions means that we need more facilities outside of blockchain, i.e. decentralized trading requires separate communication and policies. (On the bright side, we do not liter the blockchain with offers and such, only with complete transactions.)
I also expect that off-chain trading will be used together with colored coins: i.e. trading will happen within a centralized service of some sort (potentially, Open Transactions) and colored coin transaction will be used only to settle the balance periodically.
It can be more-or-less secure as it is possible to use Bitcoin features such as multi-signature scripts and contracts together with colored coins.
Oh, and you cannot invest into colored coins in general: it is open source software, not a currency. You might be able to invest into a company which develops colored coin software, though.
HTH