SIP-103: sUSD Shorts
Author | |
---|---|
Discussions-To | https://research.synthetix.io/t/sip-103-susd-shorts/248 |
Status | Implemented |
Created | 2020-12-08 |
Simple Summary
Allow users to short synthetic assets against sUSD.
Abstract
In traditional markets, assets can be borrowed and sold short to gain inverse price exposure. The borrower is legally obligated to repurchase the asset in the future and return it. With the introduction of fixed debt loans in Synthetix, we provide a shorting mechanism which relies on overcollateralization in the absence of legal enforcement. By depositing sUSD collateral, users can borrow and short sell synthetic assets (synths). To retrieve their collateral, they must repurchase the borrowed synth and return it.
This mechanism provides an alternative to iSynths for users seeking inverse price exposure. While these positions require collateral, they return the sUSD proceeds of the sale to the shorter, which can then be deployed productively throughout DEFI.
Motivation
The current iSynth mechanism provides inverse price exposure but has limitations.
- Purging and resetting iSynths involves a significant amount of manual labour and owner risk. It also requires token holders to reset their positions and new rewards contracts to be deployed.
- The cost of buying a unit decreases as the price approaches the upper limit, which can be abused by front runners.
- The iSynth token cannot be used productively outside of the system.
Specification
Overview
Shorts are fixed debt, over-collateralised loans that are structurally identical to those described in SIP 97. To open a short, the user must deposit sUSD collateral. They choose the synth they wish to short and the size of the position, subject to collateralisation requirements. However, instead of issuing the shorted currency, the contract converts the value to sUSD and issues that to the user, which represents the act of selling the asset short. A simple example illustrates this process.
- User deposits 10000 sUSD and elects to short 10 sETH.
- A loan is created for the user for 10 sETH.
- The user is issued 5000 sUSD.
- To reclaim the 10000 sUSD collateral, they must return 10 sETH to the contract.
As mentioned, this position is represented internally as a loan, denominated in the currency that was short sold. In this example, the following loan would be stored.
Symbol | Description | Example |
---|---|---|
\(c\) | Collateral locked | 10000 sUSD |
\(p_c\) | USD price of the collateral | $1 |
\(s\) | Synth borrowed | 10 sETH |
\(p_s\) | USD price of the synth | $500 |
\(I\) | Interest accrued on the loan | 0.01 sETH |
In this case, 5000 sUSD was issued to the shorter. Generally, quantity of sUSD issued is:
\(q \ := s p_s\)
As with any loan, the collateralisation ratio of the short position can be determined by:
\( r \ := \frac{p_c \ c}{p_s \ (s + I)}\)
A separate contract which accepts sUSD as collateral will be responsible for the issuance and management of all short positions. This contract supports the same pattern of interactions as described in SIP 97.
Debt Pool and Interest
An sUSD short is a directional bet on the price of a synth. Similar to iSynths, the payoff for the position varies inversely with the price of the synth.
For any given synth, the ratio between its supply (long) and the supply of its corresponding iSynth (short) determines the skew. If the skew is 0, price fluctuations will not effect the debt pool as any increase in debt from one side will be offset by a corresponding decrease on the other side. From the perspective of the debt pool, this is an optimal position as it minimises risk.
To encourage balance, a positive interest rate will be charged on synths where there is greater short exposure than long exposure. This interest rate will increase in proportion with the skew. On the other hand, when long exposure exceeds short, the interest rate will be 0. Additionally, we may propose to incentivise taking positions that reduce skew through rewards programs, which are currently active for certain iSynths.
To define the interest rate, we modify some definitions from SIP 80.
| Symbol | Description | Definition | Notes | | \(Q_L\) | Long supply | - | The total supply of the synth. | | \(Q_S\) | Short supply | - | The total short supply of the synth. | | \(K\) | Synth skew | \(K \ := \ Q_S - Q_L\) | The excess supply on one side or the other. When the skew is positive, shorts outweigh longs; when it is negative, longs outweigh shorts. When \(K = 0\), the synth is perfectly balanced. | | \(W\) | Proportional skew | \[W \ := \ \frac{K}{Q_L + Q_S}\] | The skew as a fraction of the total amount of long and short. | | \(b\) | Base short rate | | A configurable parameter that reflects the cost of borrowing. | | \(i\) | Instantaneous interest rate | \[i \ := \ max(W + b, 0) \] | When the market is long skewed, it will be free to short. |
Interest accrues continuously, and is computed using the accumulated funding method described in SIP 80.
Liquidations
Shorts will be eligible for liquidation if their collateralisation ratio falls below the minimum required by the contract. Liquidations will be incentivised via a penalty which is paid out of the users collateral. The liquidation mechanism is the same as described in SIP 15.
Rationale
Technical Specification
A new contract CollateralShort.sol
which inherits from CollateralErc20.sol
and implements the following API.
function open(uint collateral, uint amount, bytes32 currency) external;
function close(uint id) external;
function deposit(address borrower, uint id, uint collateral) external;
function withdraw(uint id, uint amount) external;
function repay(address borrower, uint id, uint amount) external;
function draw(uint id, uint amount) external;
function liquidate(address borrower, uint id, uint amount) external;
Test Cases
Test cases included with the implementation.
Configurable Values (Via SCCP)
For the sUSD short contract, the following values must be set.
synths
the synths which can be shorted.minCratio
the minimum collateralisation ratio before becoming eligible for liquidation.minCollateral
the minimum collateral required to open a position.issueFeeRate
the fee for opening a short.
Proposed Initial Values
The following values are proposed as the initial configuration.
CollateralShort.sol
synths
sBTC, sETHminCratio
150%minCollateral
500issueFeeRate
0
Copyright
Copyright and related rights waived via CC0.