Here's some formalization:
1. CREATE_CFD_OFFER(privkey, price_ticker, deadline, baseline, upside, downside, ratio)
Creates an offer to make a contract for difference, in which address(privkey) would receive UPSIDE - (PRICE - BASELINE) * RATIO at DEADLINE, where PRICE is the value of PRICE_TICKER at DEADLINE. Sends a payment of UPSIDE to a protocol-managed escrow, awaiting someone to accept the offer.
2. CANCEL_CFD_OFFER(offer_txid)
Self explanatory
3. MATCH_CFD_OFFER(privkey, offer_txid)
Accepts a given offer, and sends a payment of DOWNSIDE to a protocol-managed escrow.
Example:
Joe has 50 MSC (where 1 MSC is currently 40 USD), and wants to create an escrow with Speculator Sam to balance out his exposure against the USD. Joe makes the transaction:
CREATE_CFD_OFFER(Joe's privkey, eToro-USD, Nov 31 23:59, 40, 10, 10, 1.25)
This moves 10 MSC from Joe to the escrow. Speculator Sam matches the escrow.
Case 1: MSC drops to 38 USD by Nov 31.
Joe receives 10 - (38 - 40) * 1.25 = 12.5 MSC from the escrow fund, and Sam receives 7.5 MSC. Joe lost 100 USD from the MSC price going down, but gains 2.5 * 38 = 95 USD, essentially cancelling out the downside.
Note that he does have a tiny quadratic loss, but I think it's okay to leave that in there since it's relatively small; if it does become a problem we can always change the formula to UPSIDE - (PRICE - BASELINE) * RATIO / PRICE * BASELINE to account for this.
Case 2: MSC goes up to 43 USD by Nov 31.
Joe receives 10 - (43 - 40) * 1.25 = 6.25 MSC, and Sam gets the other 13.75 MSC.
Case 3: MSC drops to 32 USD on Nov 20.
The escrow fund triggers a liquidation, giving Sam 10 - (32 - 40) * 1.25 = 0 MSC, and Joe the full 20 MSC. Joe now needs a new CFD, just in case MSC keeps dropping.
Case 4: MSC goes up to 48 USD on Nov 12.
I'm sure you can figure it out for yourself
The idea is that on top of this the GUI designers would build a good interface, perhaps segregating CFDs by leverage and duration and even limiting to specific ones to promote standardization. It would essentially work like Bitfinex or any other leveraged trading exchange. Meni also made an argument that this mechanism would require people willing to speculate on MSC at 2x leverage; if this becomes problematic, the market will self-correct and put CFDs at a premium in the 2x leverage speculator's favor, at least until some people arbitrage away the difference by taking half their money into fiat and half into 2x leveraged CFDs.