It could be implemented this way:
- Alice advertises a CFD at X price (spot)
- Bob agrees to the contract. He takes the short.
- It is Alice's CFD, so she will be naming the price. This is specified in the contract. (Obviously, this could be the other way around)
- At contractually-specified intervals, (this part can be done by a bot) Alice publishes a price to the server.
- Bob sells 1 BTC to Alice at that price. The "losing" party sends the "winning" party the difference. These two transactions are designed to cancel out, so Alice's published price is always above X.
But what is really happening (cancel out the dollars) is:
- At intervals, Bob sells 1 BTC to Alice for X (spot at time of contract)
And really, the whole appeal of CFD's is that they can be done on margin, and for that, one needs an oracle. Therefore, it's probably best for the sale to be done as a means of dispute resolution; it's better for the parties to agree on the price. Still, even one dispute would require a trade at the full value of the contract... and as that's probably not feasible, we're back to our problems:
- Baskets: "backdrop" problem means that if the price changes too much, coins can be less than worthless yet discarded for 0.
The backdrop also means it's not done on any kind of margin/leverage; in fact it's quite the opposite. The backdrop must be several times the value of the asset being traded, so to make a little profit from your longcoin or shortcoin, you need a lot of money.
- CFD's (traditional): relies on an oracle
- CFD's (with dispute resolution): again takes a lot of money to make a little profit
- CFD's (repetitive futures contract): again, lots of money, little profit
- Futures contract: Aha! we might be getting somewhere... it can't be done on margin (an account in the red will just be thrown away), but it could work...
I'm not very familiar with Open Transactions. Can it hold money in escrow? Can it hold fiat? If so, we could use trade-able "futurecoins":
- A futurecoin pair is created at $10 by a user. In order to hold a long or short position (an unbalanced coin), a user's account must have enough money to fulfill the contract. Thus, the user deposits 1 BTC.
- The user sells the longcoin to someone with $10 in their account.
- Several things can now happen. Both people can hold their coins, and a sale at $10 will be executed when the contract ends. The first user could buy the longcoin back on the open market, and when the contract ends, no transaction will take place. Buying the balancing coin would also allow the user to withdraw his money. So would selling the unbalanced coin, so perhaps this would encourage liquidity
I'm not sure futures were meant to be an asset
Of course, there are also options, but without an oracle (MPEX relies on an oracle), all options sold must be covered. If you are selling a PUT option, you must have fiat*put price*quantity on the exchange, and if you are selling a CALL option, you must have BTC*quantity on the exchange. However, only the original seller must have sold it covered; if I buy a PUT option from you and sell it to someone else, you still hold the obligation. I can use bananacoins to short BTC, without having BTC or fiat on the exchange this way: I buy the PUT from you with bananacoins and wait for it to appreciate.
The long+short basket currencies does have one major strongpoint: there's only one of it. Futures, CFD's, and options all have a strike price or something like it, so in a low-liquidity market, they're hard to trade. The baskets, however, are only two things: a longcoin and a shortcoin, and these can be valued by the market.
That does beg the question, however: "Who backs the long- and short-coins?" Why is a litecoin-longcoin worth 15 LTC + 1 BTC? If they can only be redeemed from the issuer as pairs, the 15 and -15 LTC don't really exist except in the minds of the traders. There is no real reason to value a longcoin more than a shortcoin except the concept; it's like a piece of paper which SAYS it's worth 1 BTC + 15 LTC, but it's only worth what others will pay. Bitcoin is worth only what others will pay, but it doesn't state in the transaction "this is worth 3 bales of hay" or whatever. It seems to me that the issuer must also buy-back individual long- and short-coins, or else the system is indistinguishable from two halves of a key which must be put together to open a lock: why should one half be worth more than the other?