Hi all,
BSIP70 "Lending for Margin Trading" is getting closer and there remains a few key points to address. One is important and warrants a thorough discussion is about how to determine 'the price' of the asset being lent relative to the collateral held and market price of the collateral vs the lent asset.
Firstly a lender defines the markets in which he is willing for the borrower to use his lent asset. Therefore the lender assumes risk and takes responsibility for the liquidity, pricing and legitimacy of those markets. The risk for the lender is he may not get back the amount lent in the case of a catastrophic collapse in price of the the lent asset vs the asset the borrower buys. Discussion on margin call mechanics aside (which I think was covered well in Github) the main point for community input now is on 'the price'- what is it, where is referenced to and the best method for insuring a robust pricing for these margin loans.
A price is required for many of the key operations required for BSIP70. You need a price to determine the collateral ratio of the borrowers collateral vs the the size of the loan. You need to monitor the price for a margin call event and you need to execute a limit order in the case of a margin call at some price in order buy back enough of the loan to repay the lender. An accurate price is needed in all these cases, we will call this a 'reference price'. Lets examine how similar lending and margin markets have existed on other platforms:
Bitfinex: Bitfinex has the most similar proposed margin trading and lending system to BSIP70. Bitfinex choose what markets can be used for lending so they limit the issue of exposure to illiquid markets. The Bitfinex price they use for the loans is based on the 'Last price' in that market. That means that the last executed trade represents the pricing of that asset pair. This is a simple and direct method of determining the price.
Bitmex: Bitmex, while not employing the same P2P CFD style of margin trading as BSIP70 still needs a price for their margin mechanisms. Bitmex use an external price feed of the bitcoin price relative to their self selected set of coins they list. They use multiple datapoints to ensure the robustness of their pricing feed based off the prices of several exchanges.
Other solutions: Perhaps a Middle price could be used which is = ((highest bid + lowest ask) / 2). However we would need to carefully think of the implications of this and how to game it. I have some initial thoughts but open to ideas here.
I think the best solution is just to use the last price for that particular market pairing, yes it is open to someone dumping price and forcing margin calls but the lender takes that into consideration when he allows his asset to be traded on that market knowing the risk is that he might not receive what he lent in return. A conservative lender might only be willing to lend to high volume and liquidity markets to limit his risk of a giant margin call killing the last price. Also, even if this were the case, if I knew there was a market with a high chance of this happen this is an excellent opportunity for market makers. If there was alot of margin calls on one market I as a market maker would place bids 10% below market price knowing ill be able to scoop up cheap coins in the event of the margincall and sell them on another exchange for a price 10% higher using a cross exchange arb like via DEXbot.
What are the best methods in order to establish a reference price that is robust that you would like to see? Did I miss any potential implementations?