The time has come for an old idea to shine

UPDATE 09/17/2020: new nomenclature.

Over the last few years, the term ‘stablecoin’ has come to mean ‘pegged coin’, an instrument that, in the long run, has a value closely linked to a specific asset or a basket of assets. Recent market dynamics showed that the pegged coin narrative poses a problem for collateralized stablecoin projects. Namely, it limits the economic incentives a system can use in order to influence the stablecoin’s market price, one of these incentives being negative interest rates applied to all coin holders. If the system were to have built-in rates, the stablecoin would de-peg and thus the initial “pegged” narrative would be broken.

A notable example of a stablecoin which currently struggles to maintain its peg is MakerDAO’s DAI. During Black Thursday, DAI’s price soared more than 10% above its intended 1 USD peg. As a response, governance token (MKR) holders had to bring both the stability fee and the savings rate close to zero. Even with these drastic measures, DAI is still trading above the peg to this day. Many in the Ethereum community asked why DAI’s rates cannot go negative so that governance can exert even more pressure on the market. The simple answer is that the 1 DAI = 1 USD meme has to be kept alive at all costs and so the system was not designed to support negative interest rates.

At least not the current system. In its initial design (as described in the Purple Paper), DAI did have negative rates. More importantly though, the design showed that DAI’s market price is not supposed to always come back to the same redemption price of one US dollar. Rather, the redemption price itself was meant to float. To put it bluntly, a stablecoin was defined as a low volatility asset (compared to its own collateral) whose redemption price and rates are determined by the market, not by “decentralized” governance.

The original motivation for having a floating redemption price anticipated Black Thursday scenarios. If the system were designed as per the original specification, it would have reacted more decisively to nullify the significant market price surge. Sadly, the sound mechanism design was abandoned.

Well, it has been abandoned until now.

Enter Reflex-Indexes

In the next paragraphs, I will describe the overall mechanism for a new system that incorporates original ideas from Dai Purple Paper. The asset created by the system is not pegged to anything but it is meant to delay most of the volatility present in its underlying collateral. I will use the term “reflex-index” to refer to this new asset.

The purpose of a reflex-index is to be a more stable representation of its collateral while still maintaining a high level of trustlessness. If used in other protocols, a reflex-index can shield its users against major and sudden moves in the cryptocurrency markets. For example, if Maker had used reflex-indexes as collateral prior to Black Thursday, Vault creators would have had more time to avoid complete liquidation.

Reflex-indexed ETH = Yummy ETH

Before we go through a couple of examples to see how reflex-indexes react to market changes, let’s review the terms you’ll encounter in the rest of this article:

Reflex-index : a collateralized, non-pegged asset with low volatility compared to its own collateral

: a collateralized, non-pegged asset with low volatility compared to its own collateral Redemption price : the price the system wants the reflex-index to have; always stuck at 1 USD for DAI but variable for reflex-indexes

: the price the system wants the reflex-index to have; always stuck at 1 USD for DAI but variable for reflex-indexes Market price : the price that the market values the reflex-index at

: the price that the market values the reflex-index at Redemption rate : a per-second rate (which can be positive or negative) used to incentivize users to generate lever more or pay back their debt; the redemption rate gradually changes the redemption price; similar, but not identical to an interest rate

: a per-second rate (which can be positive or negative) used to incentivize users to generate lever more or pay back their debt; the redemption rate gradually changes the redemption price; similar, but not identical to an interest rate Borrowing power: how many reflex-indexes can be borrowed against one unit of collateral; every time the system receives a price feed update for its accepted collateral types, the feed data is divided by the redemption price and then divided again by the liquidation ratio in order to calculate the borrowing power; if we use ETH as an example: let’s say ETH’s price is 100 USD, the liquidation ratio is 150% and the current index redemption price is 1 USD; the borrowing power for ETH is approximately equal to 100 / 1 / 1.5 = 66.67 USD

As for examples, here are two graphs that show a scenario similar to Black Thursday and how a reflex-index, managed by a proportional controller, would react:

Graph 1A

Graph 1B

Until day 30, the reflex-index’s redemption and market prices are both 1 USD. Because the deviation between the two prices is zero, the redemption rate is 0%. Also, the average collateralization ratio across the system is 190% and for simplicity, we assume the collateral price will always be 100 USD and the liquidation ratio is always 150%

Between days 30 and 40, the reflex-index market price rises to 1.1 USD because people start paying more for it (e.g they want to repay their debt and there isn’t enough liquidity on the market). To bring the market price down, the system needs to create more indexes. To encourage index creation, the redemption rate goes to -10% per year (graph 1A) at the same time as the market price has a 10% surge (note: a -10% redemption rate will result in a redemption price of 0.9 USD in one year from now)

Between days 40 and 75, the market price remains the same but the redemption price slowly goes down because it is modified by the redemption rate. The redemption rate also continues to go down because the deviation between the market and the redemption price grows. Meanwhile, the borrowing power of all users go up (graph 1B) because the reflex-indexes are being repriced (e.g the index redemption price goes from 1 USD to 0.95 USD and the new borrowing power is 100 / 0.95 / 1.5 ≈ 70.17 USD).

As users realise their borrowing power grows, even if the price of their collateral remains constant, they are incentivised to generate more indexes. This is why at day 75 we start to see the market price slowly going down as more and more indexes enter the market. At the same time, the redemption rate starts to go toward 0% as the difference between market and redemption prices shrinks

At day 180, the difference between the two prices is zero (graph 1A). The redemption rate now becomes 0% and all users’ borrowing power stops growing (graph 1B)

A similar scenario would happen if the market price was lower than the redemption price (graph 2A). The redemption rate would become positive and so the redemption price would start to rise. Because the redemption price rises, reflex-indexes are being repriced and it becomes more expensive to create them (e.g at 15% annual redemption, a starting redemption price of 1 USD and a collateral value of 100 USD, in one year the reflex-index would be repriced to 1.15 USD and the collateral borrowing power would be 100 / 1.15 / 1.5 ≈ 57.97 USD) and the collateralization ratios of all currently opened positions go down (graph 2B). This means users will realise they either need to add more collateral to their positions or repay some of their debt in order to avoid liquidation.

Graph 2A

Graph 2B

I intentionally left out some details in order to start with simple examples. Most of the time there will be small deviations between the market and redemption prices that the controller can be set up to classify as noise. Also, the redemption rate should ideally be modified by a PI controller that can help minimize the market/redemption price deviation (as shown above in ideal and simplified scenarios) or even a PID controller that can reduce the overshoot caused by the integrator.

Graph 3A

Graph 3B

The controller can be launched with specific parameters and then be fully autonomous, in which case the system would have a lower reliance on governance, or its parameters can be manually adjusted over time. A warning though: the fully autonomous option, if chosen from the beginning, can prove to be ineffective because of the lack of real world data to base the parameters on.

Another important detail is that the redemption rate mechanism replaces the savings account (in Maker’s case, Dai Savings Account) and implicitly removes the savings rate (Dai Savings Rate) where stablecoin holders earn interest.

Finally, the system can still collect stability fees even when the redemption rate is negative. When the reflex-index is being repriced because of the redemption rate, the amount of stability fees collected (denominated in the reflex-index) doesn’t change. That’s not all though: one version of the system can have fixed stability fees and only modify the redemption rate. Fixed fees and a redemption rate that can be estimated from the market/redemption price spread give users more predictability in terms of costs and risks associated with their open positions.

You can always predict the sign of the redemption rate because it is opposite to the deviation sign

How Can a Reflex-Index Be Trustless?

There are multiple pieces that need to come together in order to create a reflex-index:

A reliable oracle system to provide price feeds for the index and its collateral

A rate setter that changes the redemption rate

A lending mechanism

A liquidation mechanism

A component that sets the lending rate (a stability fee setter)

All pieces will be discussed in detail in an upcoming whitepaper, as well as in future posts. For now, let’s say that depending on which collateral types are chosen for a index, governance can set a lot of the parameters once (stability fee, liquidation ratio etc) and then remove most control over the system. Also, multiple reflex-indexes can be launched, each with its own collateral types and governance levels, in order to give the market as many choices as possible.

The difficult part comes when designing the oracle and the redemption rate setter. One option for the collateral price feeds is to build an aggregator for different oracle networks, store the result from each network in a sorted array and then pick the median. Part of the stability fees can be used to pay for oracle calls by using Uniswap v2 to swap indexes with each oracle’s specific fee token. The price feed for the indexes can be taken from a INDEX/COL Uniswap v2 pool, where COL is one of the collateral types that back the system, or it can be provided by governance whitelisted oracles until an oracle network offers INDEX feeds.

As for the rate setter, a straightforward implementation is a PI controller where the smart contract computes the proportional automatically and governance only sets the integral term. A more complex implementation uses a PID controller where the integral and the derivative terms are calculated by the contract using market price deviation accumulators. With a PID, governance may still need to adjust some parameters, although overall, the power they have over the system is minimized.

The bottom line is that, soon after the system is launched, you won’t need to trust governance to handle most, if not any of its components.

How Can a Protocol Use Reflex-Indexes?

After launching the system, anyone will be able to atomically deposit ETH to create reflex-indexes and then deposit reflex-indexed ETH in another protocol to borrow or create other cryptoassets, as well as synthetic gold, oil, stocks or even the current prevailing synth, synthetic USD. The indexes act as middleware between the initial cryptoasset and the final protocol. The main benefit of using the indexes as collateral is that they dampen some of the volatility from the assets supporting them.

To encourage their usage in other systems, reflex-indexes can be set up with a default positive redemption rate. The upside is that the indexes would have a higher redemption price over the long-term. On the other hand, users would progressively need to add more collateral to their positions in order to avoid liquidation from the repricing of the index. Of course, the default redemption rate can be small enough so that liquidation is not an imminent threat.

Summary

DAI is framed as a pegged asset, meaning that it must maintain its market price close to a single, non-moving value. Regardless, its initial goal was different and more akin to a reflex-index.

Reflex-indexes are “dampening machines”. With this property, a reflex-index can actually be used as collateral for a pegged coin because this way the pegged coin would have a dampened exposure to cryptoassets such as ETH (if ETH is used in creating the index).

Dampening machine caught on camera

Special thanks to Ameen Soleimani, Fernando Martinelli, Grant Hummer and Nikolai Mushegian for reviewing drafts of this article. Thanks to MetaCoin project for support and guidance in creating reflex-indexes.