Can MakerDAO offer a better version of the StableCredit Protocol?

Note: This is based off of my current understanding of the StableCredit system and could be completely wrong. I have to thank @marcandu for many of the insights as he provided much of the explanation on how stablecredit works. The sole intention of this thread is to begin a discussion and to brainstorm as a community

Introduction
I have been very intrigued by the StableCredit Protocol that was posted by Andre Cronje last week. I am not yet sure if it’s going to work, in fact I’m thinking that it wont, but it’s a very interesting system regardless. Perhaps the most interesting aspect of the system is that it exposes an under-served market – AMM liquidity providers. While credit systems like MakerDAO serve traditional borrowers that are seeking liquidity on their assets very well, the community has perhaps overlooked whether it is properly serving those who borrow with the intent of providing liquidity themselves. I believe Andre’s system has both strengths and weaknesses, and that the Maker Protocol can be the solution to those weaknesses.

Overview of the StableCredit Protocol - as I understand it
As I understand it, the StableCredit Protocol functions as follows:

Step 1: User deposits a token (e.g. $100 of ETH)
Step 2: The protocol deposits the ETH and 100 scUSD into a Uniswap pool
Step 3: The user is able to draw up to an additional 75 scUSD against this position

The net effect of these three steps is:

  • ETH/scUSD Uniswap LP Shares
  • 75 scUSD in debt

First, let’s address the 75 scUSD. We can view this as a loan against the ETH/scUSD LP Shares (a 133% collateralization ratio, to be precise). As for the 100 scUSD in the Uniswap pool, it would be tempting to view this as “unbacked,” but it has not actually entered the circulating supply. It will only enter the market if someone deposits more ETH into the Uniswap pool, which in effect would make it “backed” at that moment in time, but then it becomes dependent on positive market movement to remain that way. Importantly, it enters the circulating supply in a predictable way.

StableCredit

The weakness in this system, in my opinion, is that it it offers no incentive to destroy scUSD if the price of the collateral drops (in aggregate). This may cause people to abandon their positions and result in inflation, as unbacked scUSD enters the circulating supply.

How can MakerDAO offer a better solution?
There is a reason I outlined the specific sequential steps that a user can take when interacting with the StableCredit protocol even though they technically happen concurrently. If we focus the outcome of interacting with the Protocol, we can see that it is ultimately a 133% over-collateralized position against Uniswap LP Shares.

So why doesn’t Maker just onboard AMM LP shares? In short, capital efficiency. In Andre’s system, the user only needs to deposit $100 of ETH. If Maker were to onboard the “vanilla” version of AMM LP shares, the user would need to deposit $100 of ETH and $100 of Dai in the pool, making this 50% as capital efficient as StableCredit, and offering only 50% of the upside that the liquidity provider may have on their ETH.

In order to remedy this, MakerDAO can potentially offer a special Vault (let’s call it ETH-AMM) that uses an adapter which does the following steps (concurrently):

  1. User deposits $100 of ETH
  2. Vault mints 100 Dai and deposits both the ETH and Dai into the AMM, making the Vault collateral the LP shares
  3. The user is now able to generate Dai based on the value of the LP shares in their vault (with a catch)

ETH-AMM

Please note that in order for the newly minted Dai sitting in the AMM to hit the market, traders will be indirectly depositing ETH into the Vault. As an example, let’s say that the AMM LP Shares in the Vault have $100 of ETH and 100 Dai in the pool. A trader takes 10 of the Dai out of the pool and has to pay in $10 of ETH. The LP shares now have $110 of ETH and 90 Dai – the Dai is (currently) backed.

Why is this better?
As I mentioned above, in Andre’s initial design, there is no incentive not to walk away from a bad position and no prevention of “unbacked” scUSD leaking onto the market [unless I’m missing something, which is very possible]. I also believe there will need to be a thorough governance layer to stop malicious collateral from entering the system. These are two problems that a Maker Vault implicitly solves. In MakerDAO, if the value of the LP shares goes below the Vault’s collateralization ratio, the Vault will be liquidated. This properly aligns incentives, serves the market of AMM LPs, and allows Maker Governance to do the heavy lifting when it comes to system parameters.

There’s a catch
As I alluded to above, I don’t think the StableCredit system is going to work in its current form. Every time the price of an asset drops, the amount of outstanding scUSD increases and is likely no longer a claim on $1 of underlying collateral. I think this can be remedied by having the oracles price the LP shares in a way that accounts for the unbacked Dai that has been added or removed from the market, meaning that the Dai leaving the LP pool would effectively be added to the debt of the Vault user. @marcandu has done a more detailed calculation to simulate this, he can put it in the comments if he’d like.

Thanks for reading, I am looking forward to hearing others opinions. I also want to apologize in advance if my understanding of the StableCredit system is incorrect - I am here to learn!

20 Likes

Thank you @g_dip for sharing with the community your understanding of StableCredit and improvements over that idea.

As I see it, this will serve more than well those seeking to provide liquidity as you say, specially because they could do it in a leveraged manner (those 75 DAI borrowed can be used to buy more ETH and leverage the position in general).

If this is paired with a feature to automatically migrate current UNI-V2 tokens (or those in other protocols), we’ll incentive a faster migration of all the LP shares toward MK, representing an immediate income source for MakerDAO given the stability fee we’ll have over the LP tokens.

This matches up with how I have been thinking about StableCredit as well - and highlights my concerns. Inevitably the price of some collateral will fall and without a robust liquidation system, the system will become undercollateralized. It seems like this would lead to all kinds of other problems. And its definitely possible that there is more to the SC system that just hasn’t been fully explained yet.

At a high level, I think a lot of people have the intuition that the Maker system is very klunky and inefficient, and that there should be a better market driven way to structure the system. SC is kind of promising that, but seems to gloss over a couple sticky issues that people here are very familiar with :slight_smile:

It is very well worth watching what is going on with this system, and if certain innovations can be used to improve Maker. It kind of feels like tokenized AMM liquidity is a game changer in a way that will be obvious in hindsight, but is still difficult to understand right now.

1 Like

Thanks @g_dip for the analysis and proposition. If StableCredit could work, it would have two properties that Dai doesn’t have :

  • Anyone that holds scUSD can redeem the collateral of its choice (up to a point)
  • Minting scUSD results in an immediate increase of liquidity on AMMs

Integrating an AMM in the design of a stablecoin is a very powerful idea. I have my doubts on the peg-preserving properties of the StableCredit design that circulated in the past few days but pairing the AMM-Stablecoin concept with the robust Maker Protocol might just work.

As Greg pointed out, it is important that any circulating stablecoin is backed somewhere. Hence, we must ensure that any Dai that would leave such Maker Protocol-owned AMM will be backed by a vault.

Let’s go with the $100 of ETH example:

  • Bob deposits $100 of ETH (assume 1 ETH=$500), i.e. 0.2 ETH
  • The protocol mints 100 DAI and deposits the 0.2 ETH and 100 DAI in a newly created AMM
  • The protocol initially prices Bob’s share of the AMM at $100, i.e. the value of the AMM assets minus the Dai it contains. As such he has the possibility to draw 66 DAI (150% LR), but for the sake of our examples, chooses not to.
  • Some time later, ETH price drops by 20%. The arbitrageurs quickly raid the AMM, pulling DAI and depositing extra ETH in exchange. The pool now contains 0.224 ETH and 89.44 DAI.
  • Because of arbitrage, an extra 10.56 DAI is put in circulation. We must ensure this is backed, and because Bob has the only vault controlling the AMM, its vault must now back these 10.56 DAI
  • So instead of 66 DAI that Bob could draw from its vault he must be able to draw only 56.10. By limiting the amount of Dai that he can draw we ensure that all circulating Dai is backed.
  • To arrive to 56.10 we use the following formula:
    • LP_value = ( 1 – 1/L ) * ETHUSD * eth_balance^2 / initial_eth_balance + dai_balance/L (where L is 1/liquidation_ratio)
    • LP_value = ( 1 – 1 /0.666 ) * 400 * 0.21^2 / 1 + 94.87/0.666 = 84.16
    • Assuming Bob owns all the share of the AMM, he can mint still mint 0.66 * 84.16 = 56.10

If instead Bob had chosen to draw 57 DAI immediately and following a sudden 20% dump, its vault would become undercollateralized and subject to liquidation:

  • LP_value = 84.16
  • Vault debt: 57
  • Collateralization ratio: 148%

Liquidation would be easily performed by pulling the liquidity from the AMM:

  • 0.224 ETH that is put up for auction for the 57 DAI debt + 13% penalty
  • 89.44 DAI is pulled and immediately burned

The key thing here is that all circulating Dai is accounted against actual vaults. This is equivalent to add additional circulating Dai to the debt of these AMM-Vaults.

12 Likes

I like the idea a lot. Two questions:

  1. I’m confused about the additional risk (for the user and for Maker) that comes from the capital efficiency. How does this scheme compare to a) creating a vault containing LP shares given in exchange for 0.2ETH+100DAI and b) same with LP shares issued against 0.1ETH+50DAI?

  2. I couldn’t find a way to do it by just adding collateral types (instead of custom vault types). Specifically at some point a vault would have to issue x DAI upon receiving some new pre-LP-share tokens that prove $x worth of ETH is locked somewhere. At this point the vault is equivalent to an ETH vault with 100%CR. I would find it strange (in the sense that we’re missing something) if the whole scheme had to be bundled in a vault and couldn’t be done step by step using just collateral types + external smart contracts.

This is quite an interesting discussion.
I have a suggestion, a wild one but I’ll shoot.

Why don’t MakerDAO and Yearn Finance come together and launch this jointly? StableCredit can use Dai instead of scUSD and the community is already familiar with Dai, so that means one less stablecoin.

This will also increase Dai in circulation and will be good for the peg.

Thoughts?

8 Likes

I thought about this too, but Andre was pretty clear he wanted a system that didn’t require governance… though I’m not sure if that’s because he was “too lazy” to want to govern it :smiley:

Honestly, pursuing something like that sounds like a good idea. The trouble we have is that the Maker dev resource is already stretched reeeeaaaally thin. There are initiatives in the pipeline to remedy this, and we’re starting to see some of them bear fruit though.

More usage of DAI is always good (even though it has tended to throw the peg off, at least in the past.)

1 Like

Yeah, I think the catch is the maker protocol remains fully exposed to volatility risk for eth in this situation, since the dai in these LPs is basically imaginary, and only backed by the eth in the pool itself. This means we would not want to allow people to borrow more than half of the LP assets in this scheme. The CR should be the same as the eth vault. If maker collected say half of the liquidity fees as well (for providing the dai half of the liquidity) maybe this CR could be lowered slightly due to the positive yield. Or, we could provide a negative interest rate for borrowers if that is more interesting.

That may be the only risk though. I don’t think there is a risk of unbacked dai entering the market this way, which is really cool.

2 Likes

As LFW points out below, there’s not a lot of engineering bandwidth here at the moment. If you are a regular in the Yearn community, maybe share this idea and see what they think? :slight_smile:

1 Like

Summoning @banteg here as I am not directly in contact with Andre.

What do you think Artem? Would it be possible to use Dai for StableCredit in place of scUSD?

2 Likes

To append to this comment, it probably makes more sense to use a 66:33 Balancer-type pool instead of a 50:50 Uniswap pool as it would make the LP value accounting much simpler because both the Pool and Vault use the same ratio (150%)

4 Likes