So, I happened to be working on setting up litecoin mining on my rigs and registering for MPEX at the same time, and it gave me an idea. Mind if I bounce it off you before I inflict it on the world?
Basically, for all of MPEX's fancy cryptography, I'm still not buying shares, I'm buying entries in a ledger. This seems wrong, the world deserves better.
I'm thinking of an altchain for recording securities (stocks and bonds). For now, I'm thinking it should be called securitycoin, or S-coin, or STC.
Say we add a payload field to the TxOut structure. (It'll likely be a blob of DER)
If you want to create a new stock, you encode a bunch of information (the name of the issue, the number of shares, some other stuff and a hash of the prospectus) and call it the issue. Then you hash the issue along with a secret and call that a registration. Then you create a payload including the registration and burn a few S-coins in fees to embed it in the chain. Then, when you feel it is deep enough, you redeem the transaction with the registration to create a new transaction with the issue as a payload (also the secret, to prove that it was you. This is anti-front running stuff).
Now you can redeem the issue with a send to a bunch of brokers. The brokers can redeem those as usual, and send the shares to clients. Clients can redeem their transactions and send them to other people, if they so desire. *
Once the issue is done, every share has a provable owner, and the owner owns the shares, not the issuer, not the broker, and not some exchange. Even better, if we use regular bitcoin addresses on this network, the issuer can query the chain and get a list of addresses and holdings to send dividends to (on the bitcoin chain).
The system could even handle splits, merges and votes. The only trick there is to encode the payload in a way that the network can validate the payload cheaply. For example, in addition to enforcing coin_out < coin_in, it also needs to verify that shares_out = shares_in (paying network fees with shares seems silly, but replace the = with < and it can happen).
Since this system isn't for buying packs of gum at the store, we could slow the network down, maybe to 1 block per hour, to keep the size small. And we could keep the value of the coins high-ish, giving an incentive for people to merge-mine it, by charging high fees for things like registrations, issues and vote requests, and small fees (or none) for sends and votes.
* I don't think it is possible to take the brokers out of the system. I don't see any obvious way to make a pair of transactions on different chains that redeem each other. If there is such a thing, you and your broker could create such a contract and make the trade atomic. Until then, one of you needs to trust the other. Then again, if we are using the same keys in both places, maybe multi-sig can do it, don't know. At worst, it is no worse than any other bitcoin/world interaction, and you still get the benefits of recording stock ownership in the chain.
Also, see this thread and search for pybond.
When I got to thinking about Open Transactions the other night, I was thinking it might be possible to do everything in a distributed provable exchange using that system. Talking to Fellow Traveller about it is on my todo list.