Solving the DUSD peg

This blog article is a copy (& translation) of the reddit article by Kügi following the results of this twitter space and a lot of previous discussions.

The current discount in DUSD is a result of excess DUSD within the DeFiChain ecosystem. DUSD was designed to NOT have an immediate arbitrage system such as UST, in order for it not to have detrimental effect on either DFI or DUSD in the long term. Those excess DUSD were added via the DFI payback (burning DFI for DUSD). Going forward, we suggest having a mathematical balance between crypto-backed DUSD and algorithmic DUSD.

This will be achieved with the following four mechanisms in a fast blockchain upgrade scheduled for the first week of July 2022:

  1. Increasing the utility of DUSD by converting interest rates for dTokens and liquidation penalties to DUSD before burning them. (right now they are swapped to DFI and then burned)
  2. Making the DUSD fee on the DUSD-DFI pair asymmetric: only when going from DUSD to DFI.
  3. Until the DEX fee and dynamic interest rates get implemented, which will be discussed in detail below, the Ticker Council will follow the same process manually. Before each update, Ticker Council pre-announce a rate that will become active at least 24 hours prior. This is similar to the mechanics of DeFiChain pricing oracles with the purpose to allow the users to react to it rather than getting a sudden rate change without warning.
  4. Until the DFI-FutureSwap is part of the automatic consensus (see below), the DFI payback premium is increased to 5%, which incentivises arbitrage traders to buy up the discount all the way. This will also lead to less algorithmic DUSD created.

All four measures could be introduced rapidly within the next few weeks and would have an instant positive impact on the DUSD price

The next three will take a bit more development time, as they will automate the dynamic processes mentioned above. They could get included in a blockchain upgrade a bit further down the line. There is no fundamental change to the processes described above, they are just implemented for automation:

  1. Introducing a dynamic, DEX stabilization fee for DUSD on the DUSD-DFI pair. The size of the fee is determined by the ratio of algorithmic DUSD to the total amount of outstanding DUSD.
  2. Dynamic interest rates on DUSD loans, based on the current discount/premium of DUSD, evaluated with the DFI price oracle.
  3. Introducing FutureSwaps for DFI -> DUSD (only one way: burning DFI for DUSD). Same mechanics as the dToken FutureSwap, but the DFI FutureSwap works at 1% premium and is executed every 960 blocks (roughly 8 hours). With this, the DFI payback of DUSD loans is deactivated completely.

We will create separate DFIPs for each point (except point 3, which doesn’t need a DFIP) so MNs can vote on them separately.

DUSD loan interest rate

In case of a DUSD premium, reduced interest rates should incentivize additional DUSD loans. With a minimum base-interest rate of 5%, a DUSD interest rate of -5% means netto 0% interest. It is to be noted that if a vault is on a loan scheme with 3%, and the DUSD interest rate is -5%, the DUSD loan is interest free, i.e. 0%, but not negative interest rate. Net interest rate is always >= 0%.

In case of a DUSD discount, increased interest rate will incentivize DUSD loans to be closed.

The interest rate will be adjusted every 2880 blocks (~24 hours) based on the moving average of the DUSD price.

Calculation of the interest rate should follow the following formula:

Let DUSD_DEX_price = (DFI reserve at DFI-DUSD DEX pool / DUSD reserve at DFI-DUSD DEX pool) * active oracle DFI price

If DUSD_DEX_price < 0.99
   DUSD loan interest rate = (COEFFICIENT_DISCOUNT ^ (0.99 - DUSD_DEX_price)) - 1
Else If DUSD_DEX_price < 1.01
   DUSD loan interest rate = 0
Else If DUSD_DEX_price < 1.05
   DUSD loan interest rate = 1 - (COEFFICIENT_PREMIUM ^ (DUSD_DEX_price - 1.01))
   DUSD loan interest rate = -0.05

Sample rates:

  • DUSD_DEX_price 1.05 results in -5%
  • DUSD_DEX_price 1.04 results in -3.7%
  • DUSD_DEX_price 1.03 results in -2.4%
  • DUSD_DEX_price 1.02 results in -1.2%
  • DUSD_DEX_price 1.01 results in 0%
  • DUSD_DEX_price 0.99 results in 0%
  • DUSD_DEX_price 0.98 results in 6.4%
  • DUSD_DEX_price 0.97 results in 13.2%
  • DUSD_DEX_price 0.95 results in 28.2%
  • DUSD_DEX_price 0.90 results in 74.9%
  • DUSD_DEX_price 0.80 results in 225.6%
  • DUSD_DEX_price 0.70 results in 500.6%

DEX stabilization fee

The stabilization fee is based on the ratio of algorithmically created DUSD. It is changed every 2880 blocks (~24 hours) based on the moving average of this ratio.

If the ratio is below 50%, there is no additional DEX stabilization fee.

Above 50%, the fee increases exponentially according to the following formula

Let ALGO_DUSD_RATIO = 1 - (Loan DUSD / total DUSD supply)
   DEX stabilization fee = (COEFFICIENT ^ (ALGO_DUSD_RATIO - 0.5)) - 1
   DEX stabilization fee = 0% 

sample results:

  • When ALGO_DUSD_RATIO is 0.5, DEX stabilization fee is 0%
  • When ALGO_DUSD_RATIO is 0.51, DEX stabilization fee is 0.59%
  • When ALGO_DUSD_RATIO is 0.52, DEX stabilization fee is 1.18%
  • When ALGO_DUSD_RATIO is 0.55, DEX stabilization fee is 2.98%
  • When ALGO_DUSD_RATIO is 0.60, DEX stabilization fee is 6.05%
  • When ALGO_DUSD_RATIO is 0.65, DEX stabilization fee is 9.21%
  • When ALGO_DUSD_RATIO is 0.75, DEX stabilization fee is 15.8%
  • When ALGO_DUSD_RATIO is 0.90, DEX stabilization fee is 26.5%

How the DFIPs turned out

summarized by U-Zyn Chua on 6/23/22, explaining:

Special voting round of @defichain DUSD proposals has concluded with 6 passing proposals.

The node release supporting the upgrade is scheduled over the new few days, which means @defichain will be able to support approved $DUSD by early July with a minor upgrade.

The Ticker Council would reiterate that:

  • There are no DEX fee changes before the upgrade;
  • Fee changes before DUSD is at $1 will be gradual;
  • That there are no raising of DUSD loan interest rates until DUSD is at $1.

Leave a Reply

Your email address will not be published. Required fields are marked *