Share Dialog

Angle DAO recently voted to remove the dust parameter of agEUR vaults on every chain. But what does it mean? How does it improve Angle’s borrowing UX and what are the risks?
The dust parameter in borrowing protocols is a lower bound on how much debt can be issued from a vault. Let’s say you want to deposit ETH on Angle to borrow agEUR. If the dust parameter is set to 1,000 agEUR, you will have to borrow at least 1,000 agEUR to open and maintain your vault.
This parameter mainly exists on debt-based stablecoin protocols like Maker, Angle or Liquity. Its one goal is to make sure that every vault has enough debt so that liquidating it is always profitable for liquidators, and liquidations take place.
This requires that:
liq_{profit} > liq_{cost}
vaultDebt \times liq_{penalty} > liq_{gasCost} + liq_{swapSlippage}
In other words, any vault for which the profit of the liquidator would be less than its cost is likely not going to get liquidated. Looking at our example above, if the vault with 1,000 agEUR needs to get liquidated but gas costs are higher than the profit from liquidating, then the liquidation will not happen.
As long as the collateral value stays below the debt’s and no one liquidates the vault, the protocol will be stuck with undercollateralized debt. If the size of this bad debt becomes too big, it can become unhealthy for the protocol. Risk DAO has put up a very insightful dashboard about the state of bad debt across different protocols.
To summarize, the dust parameter is a minimum debt value required to open and maintain a vault. This parameter allows to maintain the protocol healthy without any bad debt at the expense of access from smaller users.
Though these users might not be legion, it is a serious barrier for new people looking to enter crypto and open a vault to borrow agEUR.
Bad debt created by small unliquidated vaults can come from two main sources:
Individual users that don’t get liquidated because of a debt too low.
Attackers that intentionally create a lot of small vaults to introduce bad debt into Angle and damage agEUR.
The sum of individual users leaving unhealthy vaults open should represent a very low share of the total outstanding debt of the protocol. For example, Aave, Compound, or Euler don’t have any dust, and neither of those protocols have a significantly large amount of bad debt.
In any case, this is not an excuse to leave this undercollateralized debt in the open.
Angle Protocol was designed in a way that liquidators can choose to batch vault liquidations, saving a lot on gas costs. Liquidating 100 vaults in one transaction is much cheaper than liquidating them individually, and still generates the same revenue. As an example, liquidating 100 vaults individually would amount to (600k + 400k)100 = 100M gas whereas batch liquidating 100 vaults would only cost 600k + 400k100 = 40.6M gas, or a 59.4% decrease in cost.
On top of that if the protocol ever ends up with a significant amount of bad debt from unliquidated vaults, the DAO could easily choose to fund a liquidator to batch liquidate those, incurring a small cost to the protocol reserves. To give you an idea, liquidating 100 vaults with a gas price of 100 gwei would cost ~4ETH, or around ~5,200 € at current prices. Even after a 10x in ETH prices, this would “only” represent ~50k€

An attacker looking to damage the protocol could try to open a lot of vaults and borrow small amounts each time. This could create enough bad debt unprofitable to liquidate and allow the attacker to make a profit out of the difference between its collateral and the agEUR borrowed. However, this is not realistic to put in place in practice for different reasons.
First, there is a significant upfront transaction cost required to open and borrow from a vault (320000 gwei, or 0.032 ETH at a gas price of 100). For the attack to be effective, many vaults with small amounts of debt would have to be opened, making it increasingly more costly for the attacker.
The attacker would also need to be able to control the price of the collateral to be able to maintain it at suppressed prices over a long period of time. Though this is not impossible, Angle carefully investigates all collaterals available to borrow agEUR from.
To prevent this, the attacker could try to open less vaults, each with a higher debt. In this case however, the vaults would rapidly become profitable enough to batch liquidate, and the attack could be stopped.
Of course, an attacker could also open many small vaults with tiny debt amounts that wouldn’t be liquidated, but in this case the impact of the protocol would be marginal.
A simulation of vaults creation and liquidation cost is accessible here. To give you an idea, creating 5M of agEUR debt through 50,000 vaults would cost ~3.2M € to the attacker, with a gas price of 100 gwei and ETH at 2,000 €. Then, a ~17% price decrease in the collateral would be necessary to start putting those vaults in an unhealthy position with a minimum collateral ratio of 120%.
Last, it’s important to note that bad debt alone is not enough to crash agEUR’s price: it would require a carefully orchestrated bank run on the protocol, with an outstanding bad debt large enough to really damage agEUR’s peg.
The dust in debt-based protocols is a parameter fixing a minimum amount of debt per loan. Angle recently set its dust parameter to 0. Everyone can now open a vault with no minimum amount of agEUR required to be borrowed, making Angle vaults accessible to a much wider user base.
Though it can theoretically make the protocol more susceptible to bad debt, doing this on purpose is very costly and hard to profit from, making it unrealistic in practice. Thanks to Angle’s batch liquidation mechanism, liquidators can liquidate bad debt spread across many vaults at a fraction of the cost than they otherwise would.
No comments yet