The basic problem of all stablecoins can be broken down into two parts:
- How do you define your stability target?
- How do you achieve your stability target?
Defining Stability (Traditional): Level Targeting
Most stablecoins assume the existence of an external unit of account (i.e., the dollar) and define stability as having a stable value with respect to the unit of account.
One way of understanding the challenge of Icewater is to ask what happens if you want to build a coin that is itself the unit of account. Let’s call this method “level targeting” because we know the value we want the stablecoin to have at any particular moment.
In the absence of an external unit of account, it is tempting to simply construct a new external unit of account, such as some commodity or combination of commodities. Otherwise the problem seems intractable. But at the end of the day, all commodity targeting assumes the existence of some other stable entity (or basket of entities). This means we need an off-chain oracle of some kind (e.g., something to tell us the price of, say, gold or a basket of precious metals).
Alternatively, we could assume the existence of some other stable on-chain asset. For example, we could measure stability based on USDC instead of USD. But this doesn’t really solve the problem, itjust kicks the can down the road. Is it possible to have a stable unit of account that does not reference an off-chain unit of account?
Defining Stability (Icewater): Rate Targeting
The key insight underlying the Icewater protocol is that there is another method of measuring stability that does not depend on measuring your current value. We can’t measure the current value with reference to an external unit of account, but we can measure the rate of change of the value. In other words, we don’t know our position, but we can know our speed. The strategy of stabilizing the change in value can be referred to as “rate targeting”, as opposed to “level targeting”.
Specifically, Icewater measures inflation by measuring interest rates. Interest rates can be measured by measuring how much people will pay in the present for a promise in the future. How much of X will you pay for the promise of 100X in the future. You don’t have to know the present value of X to answer this. You also don’t have to assume the existence of any other unit of account other than X.
Specifically, the Icewater protocol measures the future value of H2O by introducing a token, ICE, that pays out H2O over time. If the value of ICE is stable relative to the value H2O, we can stabilize inflation.
One interesting aspect of rate targeting, as opposed to level targeting, is that we always assume the current value is ok. For traditional stablecoins, you might have a target of $1 and see that the current price is $0.90. This means you are off target. There is no such thing with rate targeting. The current price is always the “right” price. The only thing we want to influence is the future path of the price, not the current level.
However, because the price of H2O relative to ICE is the indicator we use to determine the future path of H2O, ICE effectively becomes the target (i.e., unit of account) for H2O. It is as if we conjure up the existence of a blockchain native unit of account out of thin air.
One quirk of rate targeting is that the relationship between the token you are trying to stabilize (i.e., H2O) and your target (i.e., ICE) is a bit different than for level targeting (e.g., between DAI and USD). Imagine you are targeting 1 H2O = 1 ICE, but market operations (e.g., auctions, order books, AMMs) tell you that 1 H2O = 0.90 ICE. If you were measuring against USD, a low price would mean that the current value of is too low. But if you are measuring inflation, a low current price relative to the future tells you that the future price is too high (since we assume the current price is just right).
Achieving Stability: Manipulating Supply
Once you have defined a stability target, regardless of whether it is based on level targeting or rate targeting, to actually hit your target you have to influence the value that people place on your token by engaging in market operations. For example, you can read here about the open market operations the US Federal Reserve uses to manipulate the value (and trajectory) of USD.
The market value of any token depends on supply and demand. Assuming we can’t influence demand*, to change the price we must influence supply. Consider the following diagram (from the Encyclopedia Brittanica):
If you reduce supply (i.e., go from quantity q to quantity q’) you will increase the price (i.e., from p to p’). So if the value of your token is too low, you can reduce the supply to increase the value (and vice versa).
Achieving Stability for Rate Targeting
Remember that we mentioned above that the relationship between your token price and your unit of account is different for level targeting and rate targeting.
For level targeting, if the current price is below the target you should reduce supply to increase the current price. For rate targeting, if your current price is below target (i.e., 1 H2O = 0.90 ICE) you need to increase supply! More specifically, you need to increase the rate of supply change (i.e., inflation).
This last sentence hints at another subtle difference between level targeting and rate targeting. Imagine that we are humming along printing a certain amount of H2O every day and suddenly, the market tells us that the price of H2O is too low relative ICE (i.e., which is like bond prices being too high, which is an indication that inflation is too low). In response, we decide to do an instantaneous, one-time mint to increase the supply of H2O.
Then we come back and measure the price of H2O with respect to ICE the next day. Unlike with level targeting, a one-time change in supply does not impact the price of H2O relative to ICE!** The value of H2O may have changed, but rate targeting does not measure the value. It only measures the rate of expected change in the value. If the change was yesterday, and everyone understood it was a one-time increase, it would have no effect on the price we are looking at.
So, instead of making one-time changes in supply, rate targeting must work by changing expectations about future changes in supply. This can be accomplished either by making an announcement of a future change in supply, or by making the change gradually over time.***
Market Operations: The Fundamental Equation of Accounting
Whether you do it now or in the future, you can’t reduce supply for free.
A key principle that is often overlooked in stablecoin accounting is that the issued supply of stablecoins is a liability on the protocols balance sheet. This is because a stablecoin is like a promise to pay someone a certain value anytime they want.
So let’s remind ourselves of the fundamental equation of accounting:
If the supply of tokens is too high, this means liabilities are too high! If we want to reduce the supply, the laws of accounting remand that the equation remain balanced.****
Conceptually, there are really only a few ways to reduce a liability:
- Reduce assets
- Increase equity
- Increase some other liability
No matter what we do, it is going to fit into one of these three categories, because that’s all there is!
Market Operations: Reducing Assets
The simplest way to reduce the issued supply is to buy back supply in exchange for assets. We should distinguish between two different types of assets: debt owed to the protocol and everything else.
Let’s start with “everything else” because it’s a simpler case. If you own some external assets (say, ETH or BTC) you can sell those in exchange for issued stablecoins to reduce supply. Pretty simple. The only problem with backing stablecoins with external assets directly is that if the value of those assets falls it can threaten the stability of the protocol.
Selling debt is a little more complicated, but it is actually more commonplace among today’s stablecoins. It just usually isn’t always viewed that way. For example, the Maker protocol issues DAI via collateralized vaults. But what is collateral? Collateral is something you promise in order to get a loan.
In fact, a collateralized Maker vault is a loan (denominated in DAI) borrowed by a user and owed to the Maker protocol — people get DAI in the present in return for a promise to pay back the DAI, along with interest (i.e., the “stability fee”), in the future. Loans owed to the protocol are not liabilities, they are assets. Basically, when someone creates a vault, they give Maker an asset (the promise to pay) in exchange for a liability (the DAI itself).
So to reduce the supply of DAI (a liability), the Maker protocol can encourage people to close vaults and thereby settle the loans owed to the protocol (an asset).
Market Operations: Increasing Equity
The second option for reducing liabilities is to increase equity (i.e., sell shares). Stablecoins that have tried to stabilize by buying and selling shares have been called “algorithmic” stablecoins.
The problem with stabilizing using equity has become obvious through several iterations of these “algorithmic stablecoins”. Namely, these coins are subject to what is called a “death spiral”. This means that the stablecoin price and the share price care causally correlated. That is, a fall in one is likely to cause a fall in the other.
However, it is worth noting that selling equity works very well at high share prices. It is possible to develop a system that is backed by equity at high equity values and by external assets at low equity values, but the details are beyond the scope of this post.
Market Operations: Increasing Liabilities
The final way to reduce outstanding liabilities is to increase some other kind of liability. Specifically, you can reduce short term liabilities (stablecoins) by increasing long term liabilities.
The most obvious way to do this in the Icewater protocol would be to sell ICE. By issuing more ICE at prices people are willing to pay, the protocol could encourage people to give up their H2O.
But remember that Icewater measures stability using the ICE market. The reason the protocol would want to reduce supply is if the ICE market indicates inflation. This means ICE yields are high, which means ICE prices are too low.
But what happens if the protocol sees low ICE prices and starts pumping more ICE into the market? Well, in the short run ICE prices would fall even further! How does the protocol know if their actions have been successful if the short run effect of the action is in the opposite direction?
It is problematic to use the same instrument (e.g., interest rates, and more specifically, the ICE market) as both a tool for measuring stability and for achieving stability.
The problem with manipulating supply by exchanging short and long term liabilities is really not just limited to buying and selling your own debt.
For example, the US Federal Reserve routinely influences interest rates by buying and selling government bonds. Technically, these bonds are liabilities of the US government, not the Federal Reserve.
But once a currency is as ubiquitous as the US dollar, virtually all assets become correlated with the inflation rate. So at a large enough scale we should expect things to get complicated with all three categories of market operations.
In fact, things get so complicated that economists can’t really agree about what’s happening. But one way to look at it is this: buying and selling assets whose price depends on the interest rate (i.e., bonds, but really almost all assets) has one effect in the short run, but the opposite effect in the long run. So we get a situation like this:
The John Cochrane article that serves as the source of that image addresses an essential question for stablecoin macroeconomic policy:
If the Fed [or a protocol] completely and permanently pegs interest rates, is inflation in the long run stable or unstable?
Remember how we stated earlier that the Icewater protocol pegs rates, not levels? Some economists have predicted that this will never work. For example, Milton Friedman, in his famous paper “The Role of Monetary Policy”, states that:
It [A monetary authority] cannot peg interest rates for more than very limited periods.
However, he subsequently explains that:
The limitation derives from a much misunderstood feature of the relation between money and interest rates…the monetary authority could assure low nominal rates of interest — but to do so it would have to start out in what seems like the opposite direction, by engaging in deflationary monetary policy. Similarly, it could assure high nominal interest rates by engaging in an inflationary policy and accepting a temporary movement in interest rates in the opposite direction.
In other words, you can’t keep interest rates low forever by pumping more money into the economy. Eventually the long run will catch up to you. If the market starts pushing interest rates too high (i.e., bond prices start to fall) you can’t solve the problem by buying bonds to prop up bond prices forever.
However, if you respond to indications of future inflation by gradually reducing the money supply (or reducing money printing) you can effectively achieve long run stability.
*In some cases, it is possible for a decentralized protocol to influence demand, but that is beyond the scope of this introduction.
**An increase can influence the price if it changes expectations of whether there will be future increases, which is why I specified a one-time increase.
***Expectations about future changes can also be set simply by the existence of a predictable protocol that changes supply automatically in response to price changes.
****Technically, the equation of accounting is a true by definition. If the equation becomes unbalanced (i.e., assets are greater than liabilities), what we really mean is that we have negative equity.