Haven't read the thread, but may eventually. If this stuff was brought up before that's great, otherwise idk how everyone ignored it for so long:
General notes:
- if you can get a PKI in the blockchain using this system that single feature would make MasterCoin actually viable. Seriously, everything in here is schlock compared to that.
- URLs in the prospectus messages is a pretty useful idea, it's probably worth having your MasterCoin foundation buy a domain and use it as an official shortener. Alternatively if you still want everything in the blockchain I'd have a special URL message type with the ability for other messages to refer to it and the ability for the URL messages to succeed each other.
- Pretty much everything here would benefit from a 'prospectus' parent message with a numeric ID (or pubkey) and 'update' messages that reference the parent rather than re-specify all the bajillion little details
- Even if you're not coding you can start outlining a test suite now
Data streams:
- You use strings but don't mention encodings? What have you been working on for the past 10 years of software experience? The 80s are over brah.
- I think you're greatly underestimating the value of identity for a data stream, especially for one where you have to pay to get the data into the blockchain[0]. If you're going to the step of paying to put it into the blockchain and distribute it publicly like that it's likely that people are interested in your exact stream and not a generic category like Commodities::Metals::Gold. So why keep the categorization in the blockchain and waste your precious transaction space? Why use the serial number (unique identifier in the spec) at all? Why not just stick to the source address as the identifier for a stream and leave it at that? Nobody's interested in "Gold", they're interested in "The gold spot price at xyz exchange as published by the xyz exchange". The whole category system is pointlessly wasteful.
- It would be cool to keep data feeds optionally encrypted for paid services but this might necessitate a PKI (also another useful thing to build)
- It would be cool to have the feed choose what the multiplier goes against (another sub-currency or another feed). That's a much more useful use of transaction space than the category c strings.
- You need to have 'update' and 'prospectus' message types to save on size/cost
Bets:
It seems like you would be better served by implementing a scripting language allowing you to express conditionals for contracts of all types rather than the somewhat specific bet transaction type.
Smart Property:
- This is woefully under-specified. Issuing new shares is a critical part of financing any business.
- Why do you waste space on another string identifier (redundant, addresses fill that role much better) but don't leave space for a URL (something actually useful?)
- Once again a place that would benefit from a scripting language for contracts/trades
Currency stabilization:
In general this is antithetical to the idea of a decentralized currency - someone in authority needs to pick a data stream and use it for your hedging. So why keep all this stuff in the blockchain if it's not decentralized? You're making an inefficient and wasteful service by keeping it there.
- You need to specify the formulas/algorithms that are going to be used for hedging!!!!!!!!
- You need to publish a paper modelling these algorithms and showing possible outcomes, measuring risk and generally throwing the wall at it under simulation. Anything else is not due diligence.
- Another string as an identifier, wtf mate
You might have experience as a programmer but I take it you're not a systems guy. Find someone who is and have them draft the spec. You might not be familiar with hedging algorithms but you've got one implemented for the currency stabilization process. Either find one and have them write a paper for you or dig up what the finance guys have in their literature and refer to it. You don't have a bibliography and that's a bad thing, there is a whole lot here that is not novel and needs to be referenced so everyone knows you're not butting heads with what's generally held to be true. tl;dr shoddy work designed by the clueless and implemented by the fools that follow them, stay away