KVORUM
compoundSource: Compound governor alpha · #32

Distribute COMP to Affected Users in the DAI Liquidations

defeatedDec 14, 2020, 01:11 PM UTCby2F0x2f04…7718

01Summary

AISummary by Kvorumclaude-haiku-4-5

Distribute 55,254.96 COMP (~$8.6M at time of proposal) from the Comptroller treasury to 85 affected users who lost DAI in the November 26, 2020 liquidation event, compensating them 8% of their liquidated amounts via an automated Merkle distributor contract.

Type
treasury allocation
Funding
$~$8.6M (55,254.96 COMP at $155 price)

Key changes

  • Transfer 55,254.96 COMP from Comptroller to Merkle distributor contract for automatic distribution to affected users(high)
  • Compensation mechanism: users receive COMP equal to 8% of their liquidated DAI amount, calculated using 14-day average COMP price of $123.39(high)
  • Implementation uses _grantComp function to distribute treasury assets without requiring individual user contract interactions(medium)

Notable concerns

  • Proposal author was one of the 121 affected users, creating potential conflict of interest disclosure
  • Distribution represents 0.55% of total COMP supply; replenishment possible within 60 days at current treasury accrual rates
Contracts0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b0xc00e94cb662c3520282e6f5717214004a7f268880x12DEE316A8174AC6B025d1Ebc17005e94A3c12e5
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Read the description ↗

02Description

571 words

Distribute COMP to Affected Users in the DAI Liquidations

Background:

COMP distribution to users began on June 15, 2020, and has since distributed ~450K COMP, with approximately 4MM COMP remaining.

Behind the scenes, the distribution works through two main contracts, the Reservoir, and the Comptroller. The Reservoir is an immutable contract that exists outside the control of governance and drips 0.50 COMP per block into the Comptroller contract. The Reservoir continuously adds COMP at the drip rate and is independent of the rate at which the Comptroller distributes such COMP. The Comptroller contract controls the usage and distribution rate of COMP for a number of functions including but not limited to, i) distribution to borrowers and lenders for each market, ii) building a reserve that can be used for community needs, and iii) voting, among other uses.

Currently, the Comptroller distributes 0.352 COMP/block (70%) on liquidity incentives and accrues the remaining 0.148 COMP/block (30%) as treasury reserves. At the current COMP price of $155, Compound's treasury is growing at a rate of ~$149,000 per day, or $4.5MM per month.

Gauntlet's prop30 added the ability for the Comptroller contract to send COMP to a particular user, group, address, or contract selected by a governance vote. These changes as described by jmo, enable a plethora of use cases, including the use of treasury assets to compensate those liquidated in the Thanksgiving Event, as suggested by mrhen.

Mechanics:

This proposal uses the _grantComp function introduced by Gauntlet to distribute a set quantity of COMP to a Merkle distributor contract that will automatically distribute the corresponding COMP to each of the wallets affected—user's don't need to interact with any contract to claim this COMP; After the proposal's execution, the relayer will claim COMP for each wallet according to the Merkle distributor and distribute it.

To calculate the amount of COMP needed from the Comptroller for the compensation, this proposal uses the 14-day average closing price of COMP from CoinMarketCap as of the time of writing (12/8/20) to compensate users 8% of the liquidated amount.

As an illustrative example, if a wallet had 100 DAI repaid by a liquidator, then that wallet would receive 8 DAI worth of COMP, which equates to 0.064 COMP of compensation (using a 14-day average COMP price of $123.39).

Distributor 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 (in COMP). Taking the 6,817,632.51 DAI and dividing by $123.39 (the 14-day average price of COMP) equals 55,254.95 COMP distributed to users.

  • To view the detailed math breakdown, see here.
  • To preview the COMP distribution per address, see here.

Overall, this distribution of COMP represents only 0.55% of the fully diluted COMP 10M supply and less than 2% of the 24hr COMP volume traded globally, suggesting minimal market impact. Additionally, assuming the Comptroller earns 962 COMP per day, the 55k COMP distribution will be replenished in less than 60 days.

Next steps: If you support this proposal, you can delegate COMP to this autonomous proposal.

Disclosure: For full transparency, I was one of the 121 Compound users affected in the DAI liquidation event. I recently worked with the community to pass a reserve factor change to the DAI market to de-risk it and prevent repeat events.

Resources: To view the full forum post, see here.

03Mismatch analysis

AIMismatch analysis by Kvorumclaude-sonnet-5
Consistent

The proposal describes using Comptroller._grantComp to fund a Merkle distributor that will pay affected DAI liquidation users, with a total payout of ~55,254.95 COMP. The calldata's three actions implement exactly this pattern: (1) _grantComp mints/allocates 55,254.0559 COMP to the Compound Timelock itself, (2) the Timelock approves a spender contract (0x12dee316...) for that same amount, and (3) calls fund() on that contract, which is the standard mechanism to push approved COMP into a funding/distributor contract. This three-step grant→approve→fund pattern is standard boilerplate for Compound treasury distributions and is reasonably summarized by the description's single-sentence explanation of using _grantComp to fund the Merkle distributor; omitting the mechanical approve/fund steps is legitimate summarization, not a material omission. The COMP amount in calldata (55,254.0559 COMP) matches the description's stated 55,254.95 COMP within a negligible rounding difference (~0.0016%), which is not material. No target, recipient, or magnitude mismatches were found. Overall the description accurately and completely reflects the intent and effect of the on-chain actions.

Generated by Kvorum
model: claude-sonnet-5
provider: anthropic
profile: anthropic-strong-v1
prompt: v1.0
generated: 2mo ago
Review the decoded actions ↗

04Actions

3 total
#0_grantComp(address,uint256)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_grantComp(address,uint256)
Arguments
{
  "0": "0x6d903f6003cca6255D85CcA4D3B5E5146dC33925",
  "1": "55254055928856683239047"
}
Calldata
#1approve(address,uint256)chain 0x1
Target
0xc00e…6888
Value
0 wei
Function
approve(address,uint256)
Arguments
{
  "0": "0x12DEE316A8174AC6B025d1Ebc17005e94A3c12e5",
  "1": "55254055928856683239047"
}
Calldata
#2fund()chain 0x1
Target
0x12de…12e5
Value
0 wei
Function
fund()
Arguments
{}
Calldata

05Tally

Summed from votes

Voters52
VP participating894.2K
Outcome (current)Against
Current support23.8%

06Voters

52 total
Filter:
VoterChoice% of totalRationale
ED0xed40…08ffAgainst325.7K36.43%—6y ago
2F0x2f04…7718For117.9K13.18%—6y ago
540x54a3…e189Against100.1K11.19%—6y ago
7E0x7e4a…19faAgainst100K11.18%—6y ago
1D0x1d29…5d1fFor50K5.59%—6y ago
5D0x5d89…9e68Against50K5.59%—6y ago
2F0x2fd6…ba43Against25K2.80%—6y ago
DAdakeshi.eth0xe3c9…6b21Against20K2.24%—6y ago
140x1494…3c2bFor17.5K1.95%—6y ago
E50xe5b5…4b03Against15K1.68%—6y ago
0A0x0a09…b92eAgainst15K1.68%—6y ago
CF0xcfae…135aFor10K1.12%—6y ago
5B0x5b97…66c2For10K1.12%—6y ago
B00xb032…449bAgainst9K1.01%—6y ago
A80xa8c6…3985Against8K0.89%—6y ago
8D0x8d07…a265For7.5K0.84%—6y ago
TEtennisbowling.eth0xc3aa…f546Against5K0.56%—6y ago
B80xb8a6…6406Against5K0.56%—6y ago
A50xa5dc…d648Against3.3K0.36%—6y ago
7F0x7f84…4d0bAgainst960.01%—6y ago
A50xa5c3…6a69Against14.60.00%—6y ago
650x65b9…f782For11.70.00%—6y ago
840x84e3…5a95Against10.80.00%—6y ago
0D0x0d59…ebd5For5.20.00%—6y ago
C30xc372…b49fAgainst4.70.00%—6y ago
PIpizzallama.eth0x32a5…525dAgainst1.90.00%—6y ago
E80xe8d8…3f31For1.70.00%—6y ago
B90xb9fd…d382For1.60.00%—6y ago
640x6439…0183Against1.50.00%—6y ago
FB0xfb30…ea3fFor1.30.00%—6y ago
7D0x7de0…a044For0.40.00%—6y ago
850x8590…1637For0.30.00%—6y ago
7E0x7eec…0410Against0.30.00%—6y ago
JTjthrack.eth0x44c6…aabdAgainst0.30.00%—6y ago
850x8579…213aFor0.20.00%—6y ago
010x01c6…baeaFor0.20.00%—6y ago
1D0x1d03…02a7Against0.20.00%—6y ago
430x4359…0d9dFor0.10.00%—6y ago
3E0x3e61…322bAgainst0.10.00%—6y ago
A00xa0e4…ea1eFor0.10.00%—6y ago
F00xf062…84e4Against0.10.00%—6y ago
680x684d…b414For0.10.00%—6y ago
BC0xbc6b…4f8eFor0.10.00%—6y ago
DB0xdb16…f476For0.10.00%—6y ago
AE0xae6d…d8a1For0.10.00%—6y ago
1D0x1d97…0ae1Against00.00%—6y ago
F60xf6c3…b29aAgainst00.00%—6y ago
BB0xbbcf…e727For00.00%—6y ago
1F0x1f76…f6ddFor00.00%—6y ago
200x205b…caacAgainst00.00%—6y ago
Showing 50

07Forum

AIForum synthesis by Kvorumclaude-haiku-4-5
sentiment · mixedthread · mixed

Arguments for

  • Compensation restores borrower confidence in the protocol after users lost funds due to an off-market DAI price on Coinbase that did not reflect true global market prices.— kybx86, michjun, lfyke
  • The 8% liquidation penalty is an achievable, pragmatic approach to compensation that avoids complex per-user calculations while remaining feasible to implement quickly.— kybx86
  • The distribution is minimal relative to total COMP supply (0.55%) and treasury growth (~962 COMP/day), meaning it will be replenished in under 60 days with negligible market impact.— kybx86, coopahtroopa
  • Compensating users is necessary to set a healthy precedent that governance will protect users when the protocol fails to work as intended, strengthening long-term protocol reputation and user trust.— michjun, dabar90, CompHolderYYZ, lfyke
  • Other DeFi protocols (Pickle, Yearn, Opyn, Hegic) have compensated users for protocol failures, and Compound should follow this precedent to remain competitive.— kybx86
  • The proposal can proceed in parallel with oracle improvements rather than blocking compensation on fixing the oracle system first.— michjun, s3v3n

Arguments against

  • Compensating users for losses encourages looser risk-taking and sets a dangerous precedent that tail risk should be subsidized by governance, undermining proper risk assessment in the protocol.— jared, ekrenzke, franklin-pantera
  • The proposal should not proceed without first establishing a clear path to fixing the underlying oracle issues; compensation without fixing the bug merely masks systemic problems.— blck, ekrenzke, polychain
  • Using COMP tokens for compensation is inappropriate because COMP is a governance token, not money, and distributes voting power to users who may have been farming rather than building long-term value in the protocol.— lay2000lbs, tonyotonio, ekrenzke
  • A large majority of the proposed COMP distribution (61%) would go to just two yield farming operations that exploited the COMP incentive program and do not align with the protocol's long-term interests.— lay2000lbs, wario, ekrenzke
  • The proposal compensates users even though the protocol worked as designed; DAI was actually trading at that price on Coinbase, which was accurately reported.— franklin-pantera, ekrenzke
  • The 8% compensation severely undercompensates affected users who lost 25-30% of liquidated amounts due to the combination of the false DAI price and the liquidation penalty.— zino, Dmitry, CompHolderYYZ, s3v3n

Unresolved concerns

  • What is the precise actual loss per user when accounting for the difference between the manipulated DAI price and real global market prices, liquidation penalties, and collateral type impacts?— Dmitry, 4D_compound, cryptoguy123
  • Should compensation come from DAI reserves rather than COMP, and if so, are reserves sufficient to provide meaningful compensation without depleting the protocol's backstop?— lay2000lbs, dabar90, michjun
  • How should the protocol distinguish between legitimate users and recursive yield farmers exploiting COMP incentives when determining compensation eligibility and amounts?— wario, lay2000lbs, michjun
  • Why did the Compound oracle accept an off-market price from a single exchange (Coinbase) and what safeguards (e.g., Chainlink integration, TWAP backstop, multi-oracle design) should be implemented?— cryptoguy123, MasterofNonce, dabar90

Notable participants

  • kybx86Proposal originator, affected user, and primary advocate driving the compensation effort through multiple iterations and addressing community feedback.
  • warioAnalyst who developed metrics to categorize users by farming behavior and proposed alternative compensation structures that address VC fund concerns about token distribution.
  • lay2000lbsVocal opponent who raised concerns about bailouts for yield farmers and advocated for compensation from DAI reserves rather than COMP.
  • ekrenzkePolychain Capital representative who articulated concerns about setting precedent before fixing the oracle and noted reimbursement to non-aligned users.
  • 4D_compoundTechnical contributor who modeled raw damages calculations and proposed methodology for computing actual losses from the liquidation event.
  • dabar90Affected user who consistently raised concerns about protocol centralization and advocated for fair compensation based on actual losses.
  • franklin-panteraPantera Capital representative voting against, arguing users bear responsibility for known oracle risks and that compensation encourages risky behavior.
  • michjunDefender of users classified as farmers, challenging definitions of legitimate vs. exploitative behavior and advocating for inclusive compensation.
  • MasterofNonceCommunity member focused on oracle improvements and supportive of parallel compensation efforts while prioritizing oracle fixes.
  • coopahtroopaBalanced voice encouraging community participation and proposing grants to proposal authors even if proposals fail, to maintain engagement.
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Open the thread ↗