August 30, 2021
In this post I’ll be continuing my analysis of the key differences between Liquity Protocol and MakerDAO. If you haven’t read part 1, I highly recommend doing so before continuing. If you have read it, welcome back!
Before we dive in, I just want to clarify a few things: I think MakerDAO and Liquity are both awesome projects. Yes, I have a bias towards Liquity, but I think this space has been able to evolve leaps and bounds due to the existence of Maker. The purpose of this series isn’t to pit communities against each other, but to compare and contrast key differences between the two protocols. With that out of the way, let’s get started.
One major technical difference between MakerDAO and Liquity is how they handle liquidations. When positions are liquidated in either system, the collateral belonging to either of those positions need to be sold off in order to make bad debt whole. Otherwise, each system could become undercollateralized; making the debt (LUSD or DAI) only partially backed.
It’s also important to understand the difference between the price oracles each protocol uses to determine whether or not a position is eligible for liquidation. Price oracles send the median of multiple off-chain (real-time) price feeds to the smart contracts of almost any protocol you use, so they’re quite an important tool in DeFi.
Maker uses the OSM (Oracle Security Module) which — by design — only updates its price feeds every hour. This means there is always a one hour delay in price feeds between the real market price and the OSM. That means borrowers have one hour to adjust their collateral ratios if needed to avoid liquidation.
Liquity primarily uses Chainlink’s ETH/USD price feed, which changes every 0.5% price deviation or every hour otherwise. This allows Liquity to accurately execute liquidations as close to real-time as possible. For borrowers, this means that you’ll benefit from being able to have a low minimum collateral ratio (which I’ll touch on later), but you won’t receive the one hour delay that Maker offers.
Maker liquidates under-collateralized Vaults by putting the collateral up for auction and selling it off to bidders until the outstanding debt (and a liquidation penalty) in the Vault is covered.
MakerDAO has made significant improvements to their mechanism with Liquidations 2.0, mainly by switching from an English auction model to a Dutch auction model. Previously, prices for collateral started low and rose as participants had to outbid each other until the auction ended. The English model had major problems such as 6 hour auctions, the requirement to lock up the bids from multiple bidders, protocol loss from low bids (in one scenario, $8.32M liquidated for 0 DAI), and liquidity crunches.
With the Dutch model, which already has proven to be the superior choice, the auction begins with the initial asking price for collateral starting high and decreasing (in increments, or “takes”) over time until all of the the debt is repaid / collateral is bought. In addition to this major upgrade, MakerDAO also implemented support for flash loans, acceptance of partial bids, and DEX aggregator integrations to aid the liquidity crunch issue.
The technical details on how auctions work are better read here, so instead let’s focus on performance during the recent “Grey Swan” event on 5/19/2021.
For a general overview, you can refer to the chart above, but let’s take a look at the finer details.
The key data points that stand out are 47 of 59 ETH-A auctions lasted around 30–70 minutes and 23 of 34 WBTC-A auctions lasted 30–40 minutes. This performance is a massive improvement from the previous model, but it’s not exactly instant.
This chart displays the difference between real time price vs settlement price for ETH-A auctions on 5/19. Ideally, you would want a consistent graph with all dots ranging from 0% to -x% (whatever margins Maker can handle) in order to have a consistent balance of liquidators profiting and MakerDAO not suffering any losses.
Unfortunately this is out of Maker’s control, hence the huge variation of auctions settling up to 10% above market price (result=liquidators lose in most cases), down to ~30% below market price (result=protocol loss in most cases). Because of the combination of real-time price volatility and the one-hour delay of OSM’s price feed, Maker auctions cannot guarantee any initial profit to liquidators or any non-loss auctions for the system. I’m not sure if there are any parameters Maker can set to decrease the room for error.
Despite all of this, credit is deserved. Maker performed extremely well on 5/19, resulting in only ~$12,000 protocol loss. Perhaps this number could’ve been bigger if market conditions were more severe, but I have no doubt that Maker will continue to improve this mechanism going forward.
In contrast to Maker’s auctions, Liquity liquidates under-collateralized Troves instantaneously —substantially reducing the possibility of protocol loss while still guaranteeing an initial profit for users participating in liquidations.
This is possible by offsetting uncollateralized debt against available capital in the Stability Pool. When any Trove is liquidated, an amount of LUSD corresponding to the remaining debt of the Trove is burned from the Stability Pool’s balance to repay its debt. In exchange, the entire collateral from the Trove is transferred to the Stability Pool. With this mechanism, all stability depositors are effectively buying ETH at a ~10% discount with their LUSD deposit. The Stability Pool completely democratizes access to the collateral liquidation process, allowing anyone with any amount of LUSD to participate.
Furthermore, liquidators or “initiators / keepers’’ (external bots that actually call on the liquidation contracts) are rewarded with 200 LUSD and 0.5% of the liquidated collateral.
What if the Stability Pool is empty?
In Liquity, the entire collateral in the system is used to back all loans in aggregate through its Redistribution mechanism. So, even if the system is not able to offset a loan against the Stability Pool (because the pool is empty), it could still recoup the losses, as long the TCR remains above 100%.
Where does the 200 LUSD come from?
When users open a Trove and borrow LUSD, 200 LUSD is set aside to compensate liquidators in the event your Trove is liquidated. The “Liquidation Reserve” is fully refundable if a user’s Trove is not liquidated, and is given back upon repayment of debt.
Is 0.5% enough for worst-case scenarios?
During extreme conditions where gas prices increase significantly (e.g. a flash crash), many Troves may become liquidatable. Liquity has accounted for this by allowing “out-of-order and batch liquidations’’. Out-of-order liquidations allow initiators to target specific under-collateralized Troves, meaning larger Troves can be targeted to ensure that the 0.5% reward remains profitable. Batch liquidations (which may also be out-of-order) allow up to 160-185 Troves to be liquidated in a single transaction, which decreases the total gas cost per Trove liquidated.
Let’s also take a look at how Liquity performed on 5/19. I’ll be providing a general overview since Kolten has already written a blog post about the same topic, but I’ll be adding a conclusion at the end of this section to summarize the comparison between Maker and Liquity.
During the “Grey Swan ‘’ event, Liquity handled it’s first stress test exceptionally well as you can see above — starting with 1,054 Troves and ending with ~677 Troves, performing all liquidations exactly as intended.
It’s important to note that the system entered Recovery Mode twice, but recovered so quickly that Dune Analytics couldn’t pick up on it. Recovery Mode triggers when the Total Collateral Ratio (TCR) drops below 150% and was designed to increase the TCR as efficiently as possible. In total, 121 Troves were liquidated under normal conditions while 189 Troves were liquidated under Recovery Mode conditions (query here).
Despite the large amount of liquidated positions, the Stability Pool was able to effectively absorb all of the defaulted debt. ~93.5M LUSD debt was offset against the Stability Pool and ~48,668 of liquidated ETH was distributed to Stability Pool depositors.
Both protocols’ performances during the most recent grey swan event were quite noteworthy. MakerDAO has clearly learned from its past inefficiencies and continues to improve upon its liquidation mechanism, which also held its own when put to the test when it liquidated ~$41M of collateral on 5/19 and only lost $12,000. Though one could make the argument that the quick ETH price rebound along with Maker’s OSM delay potentially saved the protocol from more significant losses.
It’s also safe to say that Liquity has completely innovated this necessary function of borrowing protocols by creating a liquidation mechanism that’s fast, effective, and works under extreme conditions.
Another difference between Liquity and Maker is the minimum collateral ratio required for positions (i.e. Troves and Vaults). The minimum collateral ratio is the collateral ratio your loan must stay at or above to avoid liquidation. Collateral ratios can be calculated by the following formula: (Collateral Amount x Collateral Price) ÷ Debt × 100
Why is there a difference?
For borrowing protocols such as Liquity and Maker, the minimum collateral ratio (CR) is a reflection of how efficient their liquidation mechanisms are, since it acts as a buffer against under-collateralization. In other words: the quicker a protocol facilitates liquidations, the lower its collateral requirements can be to still remain safe as a monetary system.
As we discussed in the previous section, the speed of liquidations between Maker and Liquity are quite different and this leads to differences in minimum collateral ratios. Let’s discuss why it’s important for users.
Maker has three vaults that allows users to deposit ETH and borrow DAI:
I included the stability fees for each Maker ETH Vault because Maker increases the costs to borrow to offset the risk (lower minimum CR) of DAI becoming under-collateralized. This is important if you’re looking to obtain the most debt from your collateral; you’ll have to pay a premium to do so in Maker’s system.
Within Liquity, the minimum CR under normal operation is and always will be 110% (the threshold is 150% under Recovery mode), this cannot be changed via governance as mentioned in my previous post.
What are some benefits of a lower minimum collateral ratio?
Here’s a chart displaying Liquity and Maker Total Collateral Ratio (TCR) for ETH loans from 4/05/21 to 8/25/21. Liquity’s TCR is meaningfully below Makers a majority of the time, highlighting Liquity’s clear advantage with regards to capital efficiency.
Similar to minimum CRs, minimum debts are also affected by liquidation mechanisms. Disregarding the differences between the two protocols, let’s first discuss why minimum debts are required.
Minimum debts play a huge role when it comes to liquidations and protecting protocols against bad debt. For example, let’s say Maker or Liquity decided to have no minimum debt. If a loan had $500 worth of collateral, would liquidators/bidders have any room to profit after gas fees? What if there’s 100 loans with $500 worth of collateral clogging the system? Would someone be willing to liquidate them all?
During flash crashes we’ve seen gas prices spike to ~1000 Gwei and above. A clear-cut solution to ensure liquidations always occur is to implement a minimum debt that tries to guarantee that all loans will be profitable to liquidate.
Because of Maker’s auctions (difference of market price/settlement price) and rising gas prices, Maker has to consistently revisit this parameter to ensure auction success (i.e. zero protocol loss, liquidators still profit). Historically, the minimum debt has risen and it will continue to rise until Maker finds a healthy balance.
The lower the minimum CR of each Vault, the higher the minimum debt has to increase. Currently, the minimum debt you can borrow against ETH ranges from $5,000 (ETH-C), $10,000 (ETH-A), to $30,000 (ETH-B). On top of paying a premium to make the most of your collateral, you’ll also need deeper pockets to do so. However, it’s worth noting that Maker governance feels comfortable with these moves due to the types of users they attract — small users were already priced out due to previous minimum debt increases.
The minimum debt you can borrow from Liquity is and will always be $2000. Since the protocol is immutable, this minimum debt will never change.
Why is this important?
Simply put: Vault accessibility will become increasingly difficult for smaller Maker users. Even if Maker Governance decides to keep the ETH-C Vault as a safe-haven for smaller users, the capital-efficiency compared to Liquity is quite low with 175% being the minimum CR. Using Liquity, under every circumstance, users only need ~$2200 worth of ETH to borrow against and to maintain the 110% CR threshold.
Even though Maker has definitely kept this hassle for users in mind by making changes to the minimum debts subject to the GSM Pause Delay (currently 48 hours), it’s still another recurring change that users need to consider if borrowing long-term.
On a final note, it would be really cool to see Maker implement a new parameter akin to Liquity‘s Liquidation Reserve in order to re-enable access for smaller users. The slightly reduced capital efficiency of smaller loans seems like a small price to pay for allowing small-scale borrowers.
Although I’ve already covered how the Stability Pool functions, I’m bringing it up again, but instead with a focus on the yield-earning opportunity in comparison to MakerDAO’s DAI Savings Rate (DSR).
Users can deposit their DAI into the DAI Savings Contract. In return, Maker pays depositors a portion of accrued Stability Fees, or the DSR. Currently, the DSR is 0.1%.
Why is it so low?
This “savings account” is used to throttle DAI demand by using interest as an incentive for users to lock up their DAI; specifically, the rates should move like this: DAI demand low -> DSR goes up, DAI demand high -> DSR goes down.
So the theory goes at least. Historically, the DSR has been ~0% since March 24th, 2020 due to high demand for holding DAI. Source. Also, MKR governance participants may prefer to use the Stability Fee as their main monetary policy to regulate the DAI price which is to their own financial benefit, rather than paying out a steady interest to DAI holders. So unfortunately for users, it doesn’t provide a natural source for reliable yield.
Instead of a savings contract, Liquity has a Stability Pool that users can deposit LUSD into. As liquidations occur over time, their LUSD will be burned proportionally in exchange for liquidated ETH collateral. In other words: users are buying ETH at a 10% discount with their LUSD, as Troves will be liquidated just below 110% CR. Additionally, LQTY tokens are distributed over time to Stability Pool depositors, which creates a more reliable opportunity to earn yield as a function of time.
Without including the potential gains from liquidated ETH collateral, the APR for the Stability Pool LQTY rewards is >10% at the time of writing.
Liquity has an earning opportunity built in for users, where the Stability Pool is directly incentivized from LQTY rewards and users benefit from locking up their LUSD in exchange for ETH when liquidations occur, providing another benefit in the form of increased ETH exposure. Also, users who are risk-off and don’t prefer the increased ETH exposure can deposit through B.Protocol, which autocompounds the ETH rewards back into LUSD.
Maker has the DAI Savings Rate, which is supposed to decrease as demand for DAI increases and vice versa. Mass adoption of their stablecoin negatively affects users participating in this contract.
Of course some users will have no problem allocating their borrowed funds outside of each protocol, but allocating rewards and revenue to users that prefer to keep their funds within the protocol is just as important.
So far, we’ve discussed the two stablecoins at hand (DAI and LUSD). In this section we’re going to talk about the differences between MKR and LQTY, which are the more speculative tokens for each protocol.
MakerDAO’s token, MKR, is most commonly known for its use case around governance voting. Other than that, MKR has two more use-cases within the protocol:
In short, depending on the health of the protocol, MKR holders are either affected positively from surplus auctions or negatively by debt auctions. To be fair, I’m actually a fan of the way MKR is used within the protocol. It indirectly incentivizes MKR holders to govern the protocol as best as possible in order to benefit. In theory, it makes sense although I reasoned in the last article why governance isn’t the most efficient way for users to participate.
LQTY has 2 main use-cases within the protocol :
The summary is simple. On one hand, you have a governance token that captures surplus protocol revenue and possibly has the risk of being used for recapitalization. On the other hand, you essentially have a risk-free (besides exposure to price changes) token that can be earned through participating within the protocol and it can be staked to earn 100% of protocol revenue.
This should be the last part to this comparison series between Liquity and MakerDAO. I hope you’ve enjoyed reading more about the key differences between these two protocols. To learn more about MakerDAO, check out their resources:
Website | Twitter | Discord | Telegram | Github | Reddit | LiquityCN