PROPOSAL: Distribute DAI to Users Affected by DAI Liquidations

Formal Proposal: Distribute DAI to Users Affected by DAI Liquidations

OBJECTIVES
This post will outline an on-chain proposal that will compensate users affected by the liquidation events of November 26th, 2020 in the DAI market. After feedback and discussions, this proposal’s code will be published on-chain in collaboration with those that support this methodology.

Thank you to the Compound community and investors for the weeks of feedback, iteration and discussions that have helped craft this proposal.

BACKGROUND
On November 26th, 2020 an unexpected increase in the DAI price to $1.30 on Coinbase Pro led to 85.2 million in DAI being liquidated. An initial compensation proposal for that event did not pass an executive vote, with 680k COMP voting against and 212k COMP voting for.

Since the original proposal, there have been positive changes in Compound’s oracle system and improvements in the state of the DAI market’s reserves. The oracle fix and the increased DAI reserves address three key issues voiced by the community with the previous compensation proposal:

  1. Reimbursement to users before clarity on when/how the underlying issue would be fixed.
  2. Reimbursement denominated in COMP to affected users may not necessarily align with the objectives of COMP usage or COMP holders.
  3. Setting a precedent that tail-risk events should be subsidized with COMP.

Today, the 15.1 million DAI in reserves is sufficient to cover the November 26th losses as originally calculated in full. The total expected compensation amount is approximately 6.8 million DAI based on the protocol’s 8% liquidation penalty. Compensation is well within the capabilities of Compound governance today and will help give closure to a topic that’s still a point of ongoing discussion in the community and allow the protocol to move forward on stronger footing.

CODE MECHANICS
This proposal utilizes a slightly modified version of the merkle distributor used for the airdrop of Uniswap’s UNI token. The merkle tree contains the addresses of those affected by the liquidation event, and was reconciled and analyzed against on-chain data from around the time of the liquidation event. A relayer will claim the merkle drop for each wallet according to the distributor and distribute the DAI to user’s wallets. Users do not need to interact with any contract to claim this DAI.

The script to generate the affected addresses list (and distribute DAI to them) fetches the liquidation transactions which repaid DAI within the given block bounds (11332733 to 11335286). The repaid DAI is multiplied by 0.08 to attain the liquidation fee incurred by the affected address. If a wallet had 100 DAI repaid by a liquidator, then that wallet would receive 8 DAI as part of this compensation proposal.

Full coverage is ensured through unit testing, forking simulation and a testrun of the whole proposal process on testnet. @arr00 arr00 is the core contributor to the code.

DISTRIBUTION METHODOLOGY
Referencing the DAI liquidations spreadsheet published by @rleshner, a total of 85,220,406.43 DAI was repaid on 11/26/20. Applying the 8% liquidation penalty, this proposal would pay out a total of 6,817,632.51 DAI.

To preview the DAI distribution per address, see here.

Action Items
If you support this proposal, you can delegate COMP to this autonomous proposal (CAP), which will be deployed after allowing sufficient time for the community to review the code and proposal.

Again, thank you to the Compound community and investors for the weeks of feedback, iteration and discussions that have helped craft this proposal.

Disclosure
For full transparency, I was one of the Compound users affected in the DAI liquidation event and believe this governance owes it to the community to consider this proposal. For context, in 2020, I worked with the community to pass a reserve factor change to the DAI market and improve the overall risk positioning of the Compound protocol.

Resources

6 Likes

I see there are two accounts making up the vast majority of compensation amounts:

“0x909b443761bbD7fbB876Ecde71a37E1433f6af6f”: “3691394.287603915”
“0xB1AdceddB2941033a090dD166a462fe1c2029484”: “1401662.9011659885”

Would it make sense to curtail the compensation amounts for these two users? Eg compensating only 80% of amounts over 1 million DAI would yield the following compensation amounts:

“0x909b443761bbD7fbB876Ecde71a37E1433f6af6f”: “3153115.430083132”
“0xB1AdceddB2941033a090dD166a462fe1c2029484”: “1321330.3209327908”

Curtailing compensation for just these two accounts would save 618611.4377539807 DAI, or ~9% of the total compensation amount. Based on the amount of COMP these users have farmed, they would still have made a large profit overall.

The specifics of compensation caps/reductions could be adjusted to other thresholds. But in general, it seems unfair to take reserves from the Compound community and current/future DAI depositors for the benefit of industrial scale farming operations.

Also, sorry to bring this feedback only now, I’ll admin I have not been following the discussions closely and should have commented earlier. Thanks for your work on the compensation scheme!

5 Likes

@monet-supply it could make sense but curious to hear what other people think?

1 Like

If anyone wants to simulate options for curtailing compensation to the top end of account values, you can make a copy of this sheet: DAI Liquidations - Compensation Reduction - Google Sheets

Independent variables are “reduction threshold” and “reduction ratio”.

1 Like

I think that we as a community should make a final decision on this issue now. Almost all the issues addressed last time around are no longer relevant or have been addressed. At this point, I think the only things to consider is the following: was $1.30 the correct market price for Dai, and if not, should the Compound community compensate those effected.

I was strongly against the last proposal as it was trying to compensate users affected by a non-mitigated issue. Now that the oracle was changed and this event cannot happen again, I do think we should consider the proposal. While I don’t think there was a hack, or a mishap in the system, users experienced an unexpected loss. I know of accounts that were safely borrowing at ~70% utilization which were liquidated. These users should be compensated at this point. On the other hand, we have many accounts that were dangerously farming COMP who are probably less deserving of full compensation; however, I think it is a bad idea to start differentiating between different users in this situation. In my mind, its an all or nothing scenario which the community should decide on.

6 Likes

Thank you, @monet-supply, for making a Google Sheets with the information.

I think it makes sense for the protocol to acknowledge that users were harmed and that the protocol’s design was flawed at the time. Now that a fix has been implemented, I think it makes sense to reimburse users partially. However, I think larger users should bear some responsibility for not understanding the risks of the protocol. The vast majority of Compound users were unaffected by the incident, and they won’t be receiving any compensation for acting responsibly.

I propose a Reduction Threshold of $100k and a Reduction Ratio of 50%. With those parameters, the protocol would distribute ~$4m.

On a separate note, I would prefer the compensation is paid in COMP rather than DAI. We need to continue to distribute the protocol’s large treasury.

4 Likes

@getty I disagree with this logic pretty much in full.

What is the justification to reduce the amount of compensation? In order to save Compound treasury money? That really isn’t appropriate given that the liquidations occurred here as a result of Compound’s inability to use a proper price oracle. Not to mention the fact that this was a very long time ago, and the price of pretty much every single liquidated asset (other than stablecoins) has increased immensely since then.

At a bare minimum the 8% liquidation fee should be repaid to affected users of the protocol. If you want to cap that at some threshold (like what @monet_supply proposed) that seems fair, since those huge wallets are not the average user of the protocol, but other than that this should be a full reimbursement in my opinion.

If it’s being paid in COMP, it should be based on the value of COMP at the time of liquidation (which someone had proposed on the prior thread). I would be in favor of that, as it appropriately reimburses folks for the damages they experienced and the opportunity cost of not having those assets invested during the price run up in early 2021.

And yes in full transparency, I was affected by it. But I was not participating in any risky behavior and was just borrowing DAI against other stables because I didn’t want to pay to swap them at that time. I was NOT levered farming, and there’s zero reason I should have been liquidated. It’s way past the time that this should have been resolved

2 Likes

Thanks @kybx86 for the continued effort on this.

We can go back and forth on whether or not code is law, but it’s clear Compound didn’t work as intended. Given the nuance, for this isolated situation, I think it’s reasonable for COMP to compensate users involved in this event.

On the specifics: excited to see compensation coming from the reserves and paid in DAI instead of COMP (this was a key reason PC voted against the original prop). I’m onboard with the logic behind capping the repayment for large-scale farmers and would support this. Though overall, it’s important to remember the total $ amount being distributed here is not super significant in the grand scheme of things.

One nice addition to this would be for us to define (or add more structure around) what situations in the future (if any) would merit reimbursement, and how this reimbursement will occur.

7 Likes

@JacobPPhillips @tob @arr00, before moving forward with a formal CAP, I’d like to hear from the community, particularly those that have played a role in this proposal, any concrete next steps that we need to take to close the gap and get the proposal deployed.

It seems like we are in agreement to proceed with:

  • DAI reserves
  • 8% liquidation penalty

It seems like the outstanding items revolve around whether or not there should be manual adjustments to cap compensation for certain wallets.

In my view, governance should be scientific and systematic, not emotional. While I agree with others that there’s a power curve toward the top wallets, I don’t believe we should manually adjust or interfere with the uniformity of the proposal (as @arr00 wrote) or what each of us believes is fair. “Justice is blind”.

That said, I’m open to hearing if those that have contributed to the development of this proposal have very strong views against moving forward as is.

1 Like

What @kybx86 is proposing seems fair to me. One thing to consider is the idea that @tob suggested of basing the compensation on an amount of COMP computed at the time of liquidation is an interesting one as many of the victims lost assets which would have significantly appreciated in the time it has taken to resolve this issue. This idea is worth consideration, though no need for this to be a blocking issue.

2 Likes

What that mean “acting responsibly”? Lower LTV ratio?
Damaged users did not determine CR, so “acting responsibly” is a completely subjective assessment.

Thank you to those that provided feedback. The CAP has been deployed here.

This CAP needs 65k COMP delegate votes until it becomes a formal proposal.

If you support this proposal, please consider delegating to it.

VIEW CAP & DELEGATE

2 Likes

I ask the community delegate votes. Your support is important to us!

2 Likes

@Dmitry Thank you.

The CAP is live and it needs votes to get to 65K so it can be made into a formal proposal. The CAP already has 3 votes and ~12K COMP, please delegate to it to get it across the line:

1 Like

65,000 votes delegated! I just want to say a massive thanks to @kybx86 and the community.

2 Likes

Gauntlet is in agreement that using DAI over COMP sets a good precedent and acts as a strong signal to the broader community. We also intend to model reserve growth to help the community reason better about scenarios such as this.

While a threshold or reduction ratio intuitively make sense the risk of subjectivity is too high.

For those reasons, Gauntlet will be voting FOR CP059.

5 Likes

Thank you for the support @inkymaze. I look forward to seeing Gauntlet’s future risk modeling work as Compound market reserves continue to grow.

1 Like

Pretty much agree with this sentiment. I’d like to reduce payouts to some of the top addresses, but there’s no easy way to decide where the cutoff should be / how much to reduce compensation - this would likely bog down the discussion and compensation process. I’m also planning to vote in favor.

5 Likes

Thanks again to everyone that has supported this proposal and provided thoughtful commentary.

Voting is now live.
Prop 059:

1 Like

I voted against this proposal because 74% of the payments go to two accounts, and 54% goes to a single account who was farming COMP by recursively borrowing and resupplying DAI.

Account 0x909b443761bbD7fbB876Ecde71a37E1433f6af6f

  • supplied $18M in USDC
  • recursively supplied $108M in DAI and borrowed $93M DAI
  • was liquidated with a repayment of $46M in DAI here: Ethereum Transaction Hash (Txhash) Details | Etherscan
  • collected 17,733 COMP from farming, worth about $2.2M at the time of liquidation and worth about $7.1M today

The protocol should not encourage behavior that exploited a flaw in the design of COMP rewards. This was an industrial-scale farmer who realized a profit of between $2M and $7M in COMP value without contributing net liquidity to the protocol. They bypassed two different user protections built into the protocol interface by (a) recursively borrowing DAI and (b) borrowing well beyond the safe limit. Had they not also supplied some USDC to add to their yield they would have been safe in spite of everything. They do not deserve to be rewarded with an additional $3.69M.

5 Likes