Thank you, for the report, Pete. The thing is that even if we take as a given that price, reported by Coinbase oracle was accurate for the actual market conditions on particular Coinbase market and wasn’t a result of error or manipulation, it wasn’t relevant to actual price of DAI, as other market’s, in particular, Uniswap have not experienced and reported such price. Since it’s critical for Compound to have accurate price at every time, event proved, that Coinbase Price Oracle is not enough by itself to achive that goal. That doesn’t mean that price reported by Coinbase isn’t important data source, but it looks like just by itself, it’s not going to do the trick.
Thank you for chiming in. While I find your discoveries hard to believe, I appreciate you coming here to share your perspective.
First, it is widely understood that the market price was $1.03 during this incident. There were millions of DAI available for sale at this price across nearly every exchange in these moments. Can you please comment on how and why the Coinbase Oracle failed to reflect true market value despite three promised layers of protection against off market data?
Specifically I’d like your comment on point #2, off-chain filtering. Everyone knows DAI should trade near $1, and given that it was clear that in this moment, there was a liquidity crisis on Coinbase and Coinbase alone, why was $1.30 allowed to be printed on the oracle? Especially since it was only sustained for a few minutes. The oracle should be smarter.
This is completely unacceptable for Coinbase to be so cavalier about reporting local market prices on an narrow illiquid slice of the market when everyone knows the real purpose of the oracle is to report true market value. Your blog post says as much. Again it states “it is important to address various scenarios in which a data point to be signed does not reflect an actual market price of an asset”.
What sanity checks did the oracle perform? Did it check to see if Coinbase was off-market relative to other exchanges? In this case, every other exchange. I’d like to know how this oracle failure happened. I’d also like a full disclosure of how many accounts participated in driving the price of DAI to $1.30 and keeping it there. Please disclose whether there was anything suspicious or any patterns amongst these accounts.
Thanks for this.
Was there anything out of the ordinary with regard to the DAI-USDC designated market makers? Specifically:
- Were the market markets operating normally?
- What kept them from bringing back down the price by buying DAI on the Coinbase DAI-USD book and selling on DAI-USDC?
- The price dislocation against the wider market lasted for about an hour, so I think market makers would have had time to source liquidity even from other exchanges. Why didn’t they?
- Are you planing on increasing market makers on DAI-USDC to prevent other such liquidity crunches? I analyzed the relevant trades for this event, and buying about 360,000 DAI with a total cost of about 21K USD (paying above $1) is what was required to move the price to $1.3.
I’m a long time Compound user, but not integrating Chainlink at this point would be a mistake. It’s been mentioned in this thread many different ways already, but if you aren’t getting full market coverage, us users are taking on unnecessary risk. This recent problem with the DAI price being manipulated is proof of that. What would be a good reason NOT to integrate Chainlink price feeds?
MakerDAO offered liquidity against USDC, TUSD and PAX with up to ~99% LTV (100x leverage) and no liquidations, so it seems like it should be impossible for the price to diverge this much if deposits and withdrawals were operating normally.
Can you comment on the existence of any deposit/withdrawal issues during the time period covered? If there were issues, were they caused by technical faults or did Coinbase restrict transfers purposefully?
Thank you for your consideration.
Esteemed kybx86 has created a thread “Compensation Proposal: Distribute COMP to Affected Users in the DAI Liquidations” - I suggest everybody to move there, to that thread for the discussion of the specifics.
Hi @cryptoguy123. I’ve been following your work, and I agree that Coinbase’s filtering was poor judgment and candidly frustrating. I was also one of the affected users and I’ve been working with the community on compensation. Not sure if you’ve seen it, but I deployed a proposal to compensate users. It needs the community’s votes to pass. You can view the full details under this forum post: Compensation Proposal: Distribute COMP to Affected Users in the DAI Liquidations
Ideation for a new proposal that addresses objections with the initial has been occurring in the thread for the previous proposal Compensation Proposal: Distribute COMP to Affected Users in the DAI Liquidations
1- My thought is that it’s not the role of governance token to compensate for liquidations or failed liquidations
2 - In case there is a reserve build( the DAI reserve) it might be used after a vote to compensate for that day, even if it is not in this case a failed liquidation, but it should be voted whether or not the insurance fund should cover it
3- in case the vote would be to cover it, the coverage shouldnt go higher than the insurance fund taken at the time of the event, should the loss be higher.
insurance fund(dai reserve) is there to insure for failed liquidation
comp token was there to distribute a governance power to the right persons, not here to be used as an insurance fund, if this changes, it must be decided in the future and not related to a specific event
here is my opinion
I’d say I agree that deployment of an insurance fund makes perfect sense for covering platform failure / false liquidations over distributing governance tokens. I’d prefer the former over the latter.
(That being said my #1 preference would be returning the assets seized in false liquidation but I do not know the feasibility of that)
I don’t believe the return of the tokens is feasible because I’m pretty sure they’re liquidated by third parties who agree to pay the gas fee (not 100%).
I wonder if someone has done a more detailed analysis or researched DAI LIQUIDATION EVENT more deeply? (I do not mean individuals but providers of these types of services - ex. Gauntlet).
I don’t think it’s more about “peanut compensation” than explaining to damaged users where, how, and why the error occurred.
I think as members of the Compound community and protocol users we deserve some meaningful explanation. This event is ignored by the big token holders, who even claim that everything worked properly.
Given the current losses (ETH - $ 1000), an explanation would be a decent gesture.
@rleshner - You and the team from Gauntlet have refrained from voting on the compensation proposal. Can we get some real arguments about the liquidation event?
So this is just being ignored? Nothing being done? No oracle changes, and no compensation to people who got screwed by Compound’s crappy price oracle?
We can find that crappy oracle in new COMPOUND CHAIN WHITEPAPER. I don’t want to call out people but Compound.finance is obviously in a strong partnership with Coinbase.
I expected the team from Bankless and the Daily Gwei podcast to comment on the situation but everyone seems to avoid commenting on that.
Bull market is on the way and everyone is happy and euphoric and that distracts them from the real problems that exist in the DeFi sector (which is anything but DeFi).
Agreed, I have asked for some more details on how the oracle in the Compound Chain is going to operate (I know the node operators will be posting data, but I assume the reporter is still CB pro) but have not gotten a clear picture.
It would be a real shame if the lack of attention to fixing the oracle is simply because of the partnership you mention. I can’t imagine the community at large thinks that is a good idea. The silence is becoming rather frustrating, especially since I’m seeing DAI still prone to volatility on the CB pro market. Here is it today. Clearly this needs to be addressed ASAP.
Compound looks like an abandoned project. Nobody seems to care. Luckily there are other options out there.
Another proof, that Coinbase is a really bad oracle source. Especially if it’s the only one.
Yeah, it’s painfully clear that Coinbase is an unreliable data source. The crashes, the price spikes etc. are becoming more and more frequent.
We need to swallow our pride and get integrated with Chainlink ASAP before the inevitable occurs.
Hello, I hope everyone is having a good 2021 so far. Let’s keep the ball rolling on fixing the issues that were highlighted in the thanksgiving false liquidation event, while the attack vector itself is being fixed.
Here I’m laying out a quick mock proposal for compensation for the victims of the exploit, which I wish to turn into a full proposal.
Specifically I’d like to get feedback from those that were against the previous proposal as this one seeks to address the issues that prevented its approval.
The two criticisms of the previous proposal were:
- The distribution of compensation was in COMP
- Too much of it was going to whales
Since it seems compensating in the assets liquidated is infeasible or unpopular, the first issue may be solved simply by drawing from DAI reserves which, based on conversation, seems to be an agreeable solution. It also may have positive secondary effects towards mitigating future exploits of the faulty oracle system assuming this proposal is merged before the attack vector is addressed.
This is a more accurate computation of damages from the false liquidations than the previous proposal. A side effect of this is that same asset liquidations have drastically lowered damages as the manipulated DAI price was not a factor in these cases. As such the large whale receives a lower, but more accurate, proportion of the total compensation, whereas smaller users receive larger.
I believe this should be sufficient to address concern number 2. Although I appreciate @wario’s hard work so far, I do not think it makes sense or is necessary to modulate compensation amounts arbitrarily based on user behavior.
This proposal would raise the USD compensation amount from ~$6.8M to ~$7.5M if 100% of damages were compensated. If those that were against the previous proposal have issues with this amount, a simple percentage of the total amount should be suggested and agreed upon! (e.g. 90% would bring it down to approximately the previous compensation amount of $6.8M)
I plan to start working with the original proposal author, @kybx86, to draft a new proposal using this method. The next steps would be to use on-chain data to compute the actual numbers for damages then encode it into a proposal.
Let’s come together to make things right with Compounds users and improve the protocol!
- Too much of it was going to whales
I don’t think anyone in the previous compensation proposal stated that their reasoning for voting against it was because it was “going to whales”. To summarize the reasons stated, it was because most of the compensation would have gone to users egaged in recursive farming, and dumping of COMP rewards. As they were:
a) Gaming the COMP incentives
b) Not aligned with the long-term interests of the protocol, given the dumping
An example to be precise, the largest liquidated account (0x909b), one of such industrial farmers has a raw total damage of 3.8M, according to your computations. So that’s close to half of the total budgeted compensation.
Previous thread here: Compensation Proposal: Distribute COMP to Affected Users in the DAI Liquidations