Hello folks,
I have a proposal to pitch, looking to grow into a CIP if there is sufficient interest.
Read on:
Abstract
Derivative contract that functions without a market price feed.
Thus very suitable even for illiquid assets.
Interacts relatively well even with BTC payments for XCP assets.
Can model “price insurance” and “income from your assets via covered call options” use cases.
The concept is a bit hard to wrap your head around but please I swear it’s not schizo ramblings. Try to understand it before dismissing.
We start from a simple contract: “BUY 1 SHITCOINCARD @ 3 BTC”
1. Lock up a collateral instead of the underlying
When posting a contract offer, parties do not lock up the full value.
Rather, they just lock up a collateral which can be much smaller.
If they do not follow through with the actual trade, the collateral is claimed by the other party.
So instead of locking up a full SHITCOINCARD (as done e.g. for dispensers and normal orders), a collateral is locked up that is worth only an arbitrary fraction of the value.
So the contract becomes: “BUY 1 SHITCOINCARD @ 3 BTC, collateral = 50 XCP”
Not sending the BTC after being sent the SHITCOINCARD results in the original owner of the SHITCOINCARD being refunded their card as well as the 50 XCP collateral of the counter party. Their own 50 XCP are also returned to them, of course.
This improves BTC payment UX for XCP assets.
Without collateral, it is too fragile: Either the trade execution window is made very small (BTC_Pay), or else the system is open to DoS and griefing attacks.
Cf. bitmex article on Atomic Swaps for a description of these attacks.
Cf. also how scarce.city requires deposits of collateral instead of full trade position.
So: We use the BTC_Pay approach, but increase the execution window to a full day, and use a collateral to encourage execution.
2. Add a fixed execution span
However, now you need to be online all the time, ready to execute?
Multiple options to solve that:
- If your side of the trade is an XCP asset, you can still lock up the full asset instead of a collateral
- “Auto-send” IFF your account is sufficiently funded, otherwise you get have an execution window to deposit full amount
- The execution window lies in the future and is fixed ahead of time
The final path is what I will explore further here, since it turns the contract into a derivative similar to a Future,
thus enabling an array of interesting applications.
So the contract becomes:
“BUY 1 SHITCOINCARD @ 3 BTC, collateral = 50 XCP, execution_after_block=710000”
The execution window can be a day or so. This enables you to only log in for execution on the day of expiry.
3. Support naked contracts, grow market liquidity
We observe that a rational trader will forfeit the collateral rather than follow through with a trade that has turned against them to such a degree that execution would incur a loss that weights heavier than loss of the collateral.
This may give traders the idea to issue “naked” contracts where they would not be able to fund the actual trade.
The bet is that the price will move so violently into their direction that the other side will forfeit, and the bluff is not called.
E.g. “BUY 1 SHITCOINCARD @ 3 BTC, 50 XCP collateral” – if the price has risen to 4 BTC when the execution window arrives, a rational seller of SHITCOINCARD will simply back out of this trade.
The supposed buyer in that case never had to actually raise 3 BTC of capital, and was still able to pocket a profit of 50 XCP (other side’s collateral).
Rather than trying to circumvent this phenomenon, we embrace it as a form of margin trading.
We introduce two ways in which participants can exit trades before the execution window:
- Lose just 80% of the collateral, exit the contract completely
- Trade the contract in with a third party, and fund or pocket the difference
The first option is to encourage all traders to exit heavily losing positions early, instead of speculating on whether the other side might be naked and should they try calling that bluff.
The second option is especially interesting, as it allows realizing gains before the contract expires, allowing for safe naked trading.
It works in a similar way to PERP swaps. Explained below in Point No. 5.
4. Collateral can be asymmetric – allow for specialized use cases
The amount of collateral does not have to be the same for both sides of the trade.
We allow “buying upside” (other side deposits higher collateral) by going LONG “out of the money.”
E.g. “BUY 1 SHITCOINCARD @ 4 BTC, my_collateral=50, your_collateral=500, expiry=30d” – if fair market price currently is around 3 BTC,
this is a courageous bet that price will be much higher in 30 days.
As an owner of SHITCOINCARD, taking the other side of the trade would be similar to “selling upside” by issuing covered call options.
In the same vein we enable “buying insurance” by going SHORT “of of the money.”
“SELL 1 SHITCOINCARD @ 2 BTC, my_collateral=50, your_collateral=500, expiry=30d” – if fair market price currently is around 3 BTC
is like an “insurance” for the owner of SHITCOINCARD: Price dump below 2 BTC is insured up to 500 XCP of losses.
But if price stays above 2 BTC: no gain, insurance cost of 50 XCP.
5. Positions are fungible if expiration is equal
Suppose Alice wants to “SELL 1 SHITCOINCARD @ 3 BTC, exec_after_block=710000, my_collateral=20, your_collateral=20”
and Bob takes the other side of the trade, i.e. “BUY 1 SHITCOINCARD @ 3 BTC, exec_after_block=710000, my_collateral=20, your_collateral=20”
so the orders are matched and Alice and Bob now hold positions against each other.
Suppose Carol comes along after a while and also wants to sell, but at a lower price:
“SELL 1 SHITCOINCARD @ 2.5 BTC, exec_after_block=710000, my_collateral=20, your_collateral=20”
Bob is obliged to pay 3 BTC, but here is Carol willing to sell for just 2.5.
We can now allow Alice to move Bob’s position against herself over to Carol, and pocket a gain of 0.5 BTC, at expiration.
On block 710000:
- Carol must transfer 1 SHITCOINCARD to Bob
- Then Bob must pay 2.5 BTC to Carol or lose 20 XCP
- And also Bob must bay 0.5 to Alice
However, we notice that there is no XCP left to collateralize Bob’s position against Alice, if he completely dodges the trade.
Thus, if Alice really wants to realize a safe profit, she needs to find an offer like:
“SELL 1 SHITCOINCARD @ 2.5 BTC, exec_after_block=710000, my_collateral=30, your_collateral=20”
So that there is a surplus of collateral (10 XCP) that she will be able to claim in case the position holder exits completely.
A contract can also be traded in at a loss, to guard against further losses, in the obvious analogous way.
Summary
The proposed contract is a Frankenstein creation neither a true Future nor a true Option.
I think it suits blockchain well, because it gets around the issue of needing some form of “price oracles” to enable derivs.
It especially suits Bitcoin/CounterParty well, because UTXO-style smart contract functionality cannot (well) model the 2020 DeFi innovations. So we get to figure other models.