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.
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.
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).
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.
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
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.
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.
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.
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:
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.