So what was the first large scale bank run in DeFi all about?
Why is it so hard to create a working algorithmic stablecoin? And what can
we learn from the IronFinance fiasco? You’ll find answers to these questions in this video.
Before we begin, if you want to learn more about decentralized finance and the technology behind
it make sure you subscribe to my channel, hit the bell icon and enable all notifications. You
can also consider supporting us on Patreon and joining our DeFi community on Discord.
IronFinance initially launched on Binance Smart Chain in March 2021
and aimed at creating an ecosystem for a partially collateralized algorithmic stablecoin.
As we know, building algorithmic stablecoins is hard. Most projects either completely fail or end
up in a no man's land by struggling to maintain their peg to the US Dollar. Because of this,
building an algorithmic stablecoin has become one of the holy grails in DeFi.
Achieving it would clearly revolutionize the DeFi space as we know it today.
The current ecosystem relies heavily on stablecoins that come with major trade-offs. They
maintain their peg to the US Dollar at the cost of either centralization or capital inefficiency.
For example, the custody of USDC or USDT is fully centralized. On the flip side,
stablecoins like DAI or RAI require a lot of collateral which makes them capital inefficient.
IronFinance tried to address these problems by creating a
partially collateralized stablecoin - IRON.
Despite a few hiccups along the road, such as short periods of time when IRON unpegged from USD
or when ValueDeFi exploits affected some of the IronFinance users,
the protocol kept marching forward.
In retrospect, recovering from these issues most likely built a false level of confidence in the
protocol design as its users thought they were dealing with a “battle-tested” project.
In May 2021 IronFinance expanded to Polygon and started gaining more and more traction.
Total value locked in the protocol quickly went from millions to billions of dollars,
surpassing 2 billion before the final collapse. The value of TITAN - protocol’s native token on
Polygon - went from $10 to $64 just in the last week leading to the bank run.
This parabolic growth was mostly driven by extremely high yield farming rewards
and subsequent high demand for both the TITAN and the IRON tokens.
Yield farmers were able to benefit from around 500% APR on stablecoin pairs:
IRON/USDC and around 1700% APR on more volatile pairs like TITAN/MATIC.
To add even more fuel to this parabolic growth,
IronFinance was mentioned by a famous investor - Mark Cuban - in his blog post.
This further legitimised the project and brought even more attention to it.
On the 16th of June 2021, the protocol experienced a massive bank run that crashed
the TITAN price to 0 and resulted in thousands of people experiencing major financial losses.
Before we start unfolding all of the events that led to the collapse of IronFinance,
let’s try to understand how the protocol was built.
It’s worth noting that reviewing the design of projects, including the ones that failed,
is important as it allows us to better understand what works
and what doesn’t work in DeFi. It also makes it easier to assess new protocols
that very often reuse a lot of elements of the already existing systems.
The IronFinance protocol was designed around 3 types of tokens:
Its own partially collateralized stablecoin - IRON that should maintain a soft peg to the US Dollar,
Its own token: TITAN on Polygon and STEEL on BSC,
an established stablecoin used as collateral: USDC on Polygon and BUSD on BSC
The combination of USDC and TITAN on Polygon or BUSD and STEEL on BSC was supposed to
allow the protocol to decrease the amount of stablecoin collateral over time and in turn,
making IRON partially collateralized leading to a greater capital efficiency.
The protocol, although using different tokens on Polygon and BSC,
worked in an analogous way on both platforms so in order to simplify
this video going further I’m going to skip the BSC tokens BUSD and STEEL in the explanation.
In order to achieve price stability of the IRON token, the protocol introduced
a mechanism for minting and redeeming IRON that relied on market incentives and arbitrageurs.
Whenever the price of the IRON token was less than $1, anyone could purchase it on
the open market and redeem it for approximately $1 worth of value paid in a mix of USDC and TITAN.
Whenever the price of the IRON token was greater than $1,
anyone could mint new IRON tokens for approximately $1 worth of USDC and TITAN
and sell the freshly minted IRON tokens on the open market, driving the price of IRON back to $1.
To understand the process of minting and redeeming better, we have to introduce the
concept of Target Collateral Ratio (TCR) and Effective Collateral Ratio (ECR).
Target Collateral Ratio is used by the minting function
to determine the ratio between USDC and TITAN required to mint IRON.
As an example, let’s say the TCR is at 75%. In this case, 75%
of collateral needed to mint IRON would come from USDC and 25% would come from TITAN.
The protocol started at 100% TCR and gradually lowered the TCR over time.
TCR can increase or decrease depending on the IRON price. On one hand, if the time-weighted
average price of IRON is greater than $1, TCR is lowered. On the other hand,
if the time-weighted average price of IRON is less than $1, the TCR is increased.
Effective Collateral Ratio is used by the redeeming mechanism to determine the
ratio between USDC and TITAN when redeeming IRON. ECR is calculated
as current USDC collateral divided by the total IRON supply.
If TCR is lower than ECR, the protocol has excess collateral. On the flip side,
if TCR is higher than ECR it means the protocol is undercollateralized.
As an example, if the ECR is at 75%,
each time IRON is redeemed the user would get 75% of their collateral back in USDC and 25% in TITAN.
What is important is that every time someone mints IRON the TITAN
portion of collateral is burned. If someone redeems IRON, new TITAN tokens are minted.
As we can see, the whole mechanism, although a bit complicated, should work - at least in theory.
Now, let’s see how the events leading to the collapse of IronFinance unfolded.
But before we do this, Finematics is participating in Round 10 of Gitcoin Grants where even the
smallest contribution matters, thanks to the quadratic funding mechanism. If you enjoy our
videos and would like to support the channel, check out the link in the description box below.
Let’s get back to the video.
Around 10 am UTC on 16th June 2021, the team behind the protocol noticed that a few
larger liquidity providers a.k.a “whales” started removing liquidity from IRON/USDC and then started
selling their TITAN to IRON. Instead of redeeming IRON, they sold it directly to USDC via liquidity
pools. This caused the IRON price to unpeg from the value of the US Dollar. This in turn spooked
the TITAN holders who started selling their TITAN causing the token price to drop from around $65
to $30 in approx 2 hours. The TITAN price later came back to $52 and IRON fully recovered its peg.
This event, although quite severe, wasn’t that unusual considering that the protocol had a
history of native tokens sharply dropping in value and IRON unpegging for a short period of time.
Later on the same day, a few whales started selling again. This time it was different. The
market panicked and users started redeeming IRON and selling their TITAN in masses.
Because of the extremely quick and sharp drop in the TITAN price,
the time-weighted price oracle used for reporting TITAN prices
started reporting stale prices that were still higher than the actual market price of TITAN.
This created a negative feedback loop as the price oracle was used to determine
the number of TITAN tokens that have to be printed while redeeming IRON.
Because IRON was trading off-peg at under $1,
the users could buy IRON, for let’s say $0.90 and redeem it for $0.75 in USDC
and $0.25 in TITAN and sell TITAN immediately. This situation created a death spiral for TITAN
that drove its price to pretty much 0 as the lower the TITAN price was the more
TITAN tokens would have to be printed to account for the correct amount of the redeemed capital.
The TITAN price hitting almost 0 exposed another flaw in the protocol - users being
unable to redeem their IRON tokens. This was later fixed by the team and users were
able to recover around $0.75 worth of USDC collateral from their IRON tokens.
Unfortunately, TITAN holders didn’t get away with “only” a 25% haircut and
instead took heavy losses. This also included TITAN liquidity providers.
This is because when one token in a 50/50 liquidity pool goes to 0 the impermanent
loss can reach pretty much 100%. Liquidity providers end up losing both tokens in the pool
as the non-TITAN token is sold out for TITAN that keeps going lower and lower in value.
This situation exposed a major flaw in the IronFinance mechanism
that resulted in what we can call the first large scale bank run in DeFi.
Similarly to banks with fractional-reserve systems, where there are not enough funds
to cover all depositors at any one time, the IronFinance protocol didn’t have enough collateral
to cover all minted IRON. At least not when the TITAN token used as 25%
of the overall collateral became worthless in a matter of minutes.
The IronFinance fiasco also shows us why DeFi protocols
shouldn’t fully rely on human coordination, especially when under certain circumstances
incentives work against the protocol. In theory, if people just stopped selling TITAN for a short
period of time, the system would recover as it had previously done in the past. In practice,
most market participants are driven by making a profit and the arbitrage opportunity present in
the protocol caused them to fully take advantage of this situation.
This is also why all DeFi protocols should always account for the worst-case scenario.
As with most major protocol failures in DeFi, there are always some lessons to be learned.
In the case of IronFinance, there are a few important takeaways.
First of all, we always have to consider what would happen to the protocol in the worst-case
scenario. This usually involves one of the tokens used in the protocol sharply losing its value.
What happens when the protocol stops expanding and starts contracting?
What if the contraction is way quicker than expansion?
Another important element of the protocol design that
always has to be fully understood is the usage of price oracles.
Could they report stale prices or get manipulated by flash loan attacks? If so, what basic protocol
mechanisms rely on these oracles and how would they behave when the oracle is compromised.
Next lesson, providing liquidity in a pool where at least 1 asset can drop to 0 means
that we can lose pretty much all of our capital, even if the second token doesn’t lose any value.
Another lesson, following celebrities and their investments
might be risky. With great power comes great responsibility and unfortunately,
even a single mention of a certain protocol or a token can cause people to invest in something they
don’t fully understand - don’t be that person and always make sure you do your own due diligence.
One good indicator of high-risk protocols is extremely high APR in yield farming.
If something looks too good to be true there are usually some risks that have to be accounted for.
Last but not least, building algorithmic stablecoins is hard. I hope one day we can
see a fully functioning algorithmic stablecoin competing in size with USDT or USDC, but this
will most likely take a bit of time and hundreds of failed attempts. If you want to become an early
adopter of such a coin it’s great, but keep in mind that the numbers are not on your side.
So what’s next when it comes to IronFinance and algorithmic stablecoins?
At the moment, the team behind the protocol is planning on conducting an in-depth analysis of
the situation, in order to understand the circumstances which led to such an outcome.
It’s hard to say if the team behind IronFinance
will decide to fix the shortcomings of the existing protocol and relaunch it.
Historically, second versions of failed protocols usually don’t get nearly as
much traction as their original versions. Yam Finance was a good example of such a protocol.
After the collapse of IronFinance, there is still a lot of capital sitting on the sideline looking
for other high-risk opportunities. It will be interesting to see where this capital goes next.
So what do you think about the IronFinance fiasco? Are you optimistic about the future
of algorithmic stablecoins? Comment down below.
And as always, if you enjoyed this video,
smash the like button, subscribe to my channel and check out Finematics grant on Gitcoin.
Thanks for watching!