How EOS and ETH DeFi Made It Through Market Turmoil

Unconventional analysis of two major decentralized finance projects, based on Ethereum and EOS, which recently went through the same storm
Unconventional analysis of two major decentralized finance projects, based on Ethereum and EOS, which recently went through the same storm

On March 11 at 4:56 p.m. UTC, Tedros Adhanom Ghebreyesus, the director of the World Health Organization, stated that COVID-19 can be characterized as a pandemic. Industry experts consider the global uncertainty around this respiratory disease — from travel bans imposed by governments across the globe to the continuing global market turmoil — to be a trigger of the cryptocurrency market’s painful crash.

Most cryptocurrencies saw their biggest 24-hour price drops in a single 24-hour period. The strong downward trend started off around 6:00 a.m. UTC on March 12 and continued until the morning of March 13. Ether (ETH) took a huge 33% hit of roughly $60 by 1:30 p.m., plunging 46.6% overall within these two days. EOS (EOS) covered almost the same numbers, losing 42.42% of its value. The charts of both cryptocurrencies’ price movements are remarkably similar.

Correlations between ETH and EOS prices on March 12-13

The continued market fall had an obvious impact on the decentralized finance sector, which commonly relies on overcollateralized digital assets to back the value of new currency. The ensuing barrage of liquidated undercollateralized assets embraced DeFi protocols and even touched its risk-averse investors. These circumstances became a proper stress test for the biggest industry’s projects, revealing their weaknesses as well as their strengths.

Related: DeFi Can Now Choose to Run Trustless Zero-Knowledge Proofs

Here is an analysis of what happened to MakerDAO (MKR), the biggest DeFi project on Ethereum, and how it compares with Equilibrium EOSDT, the biggest DeFi project on EOS.

How did these two different projects weather the same storm?

The perfect storm

As soon as the crypto market entered panic selloffs, the number of transactions in blockchain networks predictably increased. The Bitcoin (BTC) blockchain normally hovers around less than 0.7 transactions per second, but it was handling 5.76 transactions per second at its peak on March 13. These circumstances easily cause congestion in the networks and seriously affect their normal operations.

The number of pending transactions on the Ethereum network increased dramatically. The average amount of time to confirm a block increased from the usual 15 seconds to 2,680 seconds (44 minutes), while the gas price was spiking to ridiculous levels around 110 Gwei (compared to the average Ethereum transaction price of 16 Gwei).

Gas price as of 12:00 p.m. UTC on March 12

Therefore, most of the transactions on the network got clogged, affecting the normal operations of any DApps running on top of it (unless their users were paying outrageous transaction fees — keep this part in mind). This flood of pending transactions became one of the reasons why MakerDAO’s price feeds glitched. Apparently, 14 anonymous price providers didn’t raise the gas price, but simply stopped pushing actual prices to the blockchain. Or, their transactions simply failed.

At the same time, EOS didn’t experience these issues the same way (see on the chart below). Compared to Ethereum, EOS is not that sensitive to a rise in simultaneous transactions due to its architectural specifics. Unlike Ethereum, EOS was designed for a bandwidth capacity of 250 transactions per second, and could potentially be scaled to 4,000. Ethereum processes 15 transactions per second as of this writing.

Central Processing Unit cost (ms per EOS)

Furthermore, EOSDT’s price feeds (provided by three public oracles: Provable, DelphiOracle, and LiquidApps) were in full working capacity during the entire timeframe. We can see the curve of the on-chain price feed almost replicates the market price. The largest deviation was 15% and lasted for around 10 minutes.

Note: Price feed chart based on the blockchain data

Note: Price feed chart based on the blockchain data

The differences in price feed accuracy also come from the average refresh rate. This is once per minute with EOSDT, and once per hour with MakerDAO. That's obviously too slow for such a rapidly changing landscape, like we saw just recently (even if MakerDAO’s price feeds worked properly). The question of whether or not Ethereum can support fast and economically viable price feeds is still in place.

The prices on MakerDAO’s smart contracts were outdated for quite some time. The on-chain ETH price in particular was $126.69 at 2:04 a.m. UTC on March 13, while the market price was as low as $95.69 at the same time. This huge 32% deviation was effectively a market premium on liquidated ETH collateral, which was supposed to be offered at a discount auction instead.

According to our research, there were two periods when the on-chain price was significantly deviating over 10% from the market price — between 10:44 a.m. and 5:04 p.m. UST on March 12, and between 11:29 p.m. and 3:04 a.m. UTC the same day.

These periods perfectly match the two waves of market collapse and Ethereum network turmoil.

Let the show begin

Margin calls came raining down with the first heavy price drop. At this time, the on-chain prices of both systems were synced up with the market, and both the EOS and Ethereum networks were functioning properly. But as soon as MakerDAO’s on-chain prices started losing their peg, the intensity of margin calls and liquidations began decreasing, despite the continuing market crash.

Margin calls and liquidation dynamics

Note: Based on the blockchain data

The spikes in margin calls on Equilibrium EOSDT fall exactly on the price dumps, but in MakerDAO, the margin call dynamic seems to be lagging. The fundamentals of this lie in the key difference between EOSDT’s and MakerDAO’s liquidation mechanics.

MakerDAO completely relies on the action of a third-party player (called a keeper) who is supposed to watch after existing vaults and trigger a “bite” action to call for margin if some become undercollateralized. The system verifies that the call is legit and releases collateral to the auction smart contract.

But Equilibrium EOSDT doesn’t require any third-party involvement, since the system identifies undercollateralized user positions automatically on every price update.

Due to the network clog, most of MakerDAO’s keepers were unable to trigger the bite method. At the same time, some vaults were not considered undercollateralized, thanks to the overestimated on-chain price.

Worth mentioning that liquidations in Equilibrium EOSDT are as simple as an ordinary asset transfer to a smart contract (compared to MakerDAO, where a sophisticated keeper bot is required). The simplification of the liquidation interface makes it available for a broader audience and might mitigate potential inefficiencies.

 Outstanding bad debt and liquidation speed

Note: Based on the blockchain data

This is how the liquidation dynamics look for the given timeframe. Equilibrium EOSDT ended up with $0.00 outstanding “bad” debt. If you’re wondering, “Wait, why is outstanding ‘bad’ debt in MakerDAO increasing over time?” then you’re asking a perfectly reasonable question.

MakerDAO is in turbulence

As described above, the initial offer of liquidated Ether collateral at the auctions was way higher than its market price. This happened due to outdated on-chain prices that were 32% higher than the market price at its peak deviation during the network clog. We can assume that it might mislead keepers amid the booming gas price. It seems like some of them refused to participate in the auctions to avoid being overcharged or even losing their funds (due to the high transaction cost and unpredictable system behavior). Other than that, they simply could not broadcast a transaction.

But there was one market actor who decided to try their luck and to jump on the auction, despite the risk of potential losses. It looks like the person either didn’t want to take that much risk or just wanted to run an experiment with fate. They added a bit more gas (150 gwei — ten times the standard) and bet one at auction ID 823 (50 ETH) at 12:49 p.m. UTC on the day in question. This opened Pandora’s box: They won the auction at 1:16 p.m. UTC, and we only know their Ethereum address: 0x43559e88e1bf4594cfa2cb100f325219fa1c0349. A bet of one actually means 10^-18 DAI, according to the standard ERC-20 token precision — that’s a number so small that it’s effectively zero.

There were 1,369 auctions won at the near-zero price. While Ether price was declining, there was a lack of natural buyers for the “bad” debt and the imbalance in MakerDAO’s system continued increasing.

The distribution of “zero” bid auctions over time matches with both waves of market collapse and Ethereum network turmoil.

Time distribution of zero bid auctions

Note: Based on the blockchain data

The last “zero” bid auction was completed at 3:14 a.m. UTC on March 13, right at the end of the second wave of the storm. The average auction of this kind was 50 ETH, and MakerDAO’s users ended up missing over $5.6 million.

At least 8 Ethereum addresses were competing in these auctions:

0x9c05a05893ada984fc20d0da0c046de5cc0e8273

0x9631a838a81d4050c43c66bc03a0cf414243f661

0xb00b6d69822da235a99d2242376066507c9a97b7

0xb400cd43dc25db30c07e665903a052ac120c30ad

0x6066be9369b4eaf5847c9f01eb52ae1e81f2d6b0

0xb8bbf36ba36fc78f3f137c514af33709fffba604

0xcdef772ca4f12c4fe23c09a3961186d065a6a4ca

0xc2f61a6eeec48d686901d325cde9233b81c793f3

Next steps

Some people are arguing that there is nothing wrong in making bids at auctions that are technically more than zero. Another possible argument is that auctions are the fairest liquidation model — if no one wants to buy an asset, then a price of zero is fair. We know where they are coming from, and we call it a failure of common sense expectations. People don’t win $6,000 auctions in the real world by bidding 10^-18 dollars. And there definitely were those who wanted to participate with more reasonable bids, but they simply couldn’t because the network got stuck.

Without any doubts, it was a mistake of system logic. It is a hypocrisy even to speculate whether this is a feature or a bug. It is an obvious vulnerability discovered by market actors who extracted over 66,476 ETH (around $7.64 million as of this writing) from MakerDAO’s smart contracts.

It seems like the developers just didn’t account for any heavy load on the underlying platform. This is why the market should not discard the value of highly scalable systems like EOS — it delivered a smooth experience for DeFi projects like Equilibrium EOSDT during the latest turmoil.

The MakerDAO Foundation recently proposed several further steps to resolve the situation. One of them is a backstop auction (a controversial decision) and a very reasonable increase of the auction time to six hours (without further timer renewal on every bid). Hopefully the industry will learn lessons, and arguments like “10^-18 is more than zero” and “You’d better ask Vitalik” will no longer be eligible.

The views, thoughts and opinions expressed here are the author’s alone and do not necessarily reflect or represent the views and opinions of Cointelegraph.

This article does not contain investment advice or recommendations. Every investment and trading move involves risk, you should conduct your own research when making a decision.

Alex Melikhov is the co-founder of cryptocurrency exchange Changelly as well as CEO and co-founder of Equilibrium, a framework for asset-backed stablecoins and DeFi products. Having over 14 years of entrepreneurial and fintech experience, Alex has been involved in the cryptocurrency world since 2013. His current project, Equilibrium, aims to empower decentralized finance and accelerate the development of both an emerging DeFi economy and the future of money.