KVORUM
compoundSource: Compound governor bravo · #327

Upgrade Compound v2 Oracle To Disable UAV

executedSep 15, 2024, 05:55 AM UTCby050x0579…ca09

01Summary

AISummary by Kvorumclaude-haiku-4-5

Upgrade Compound v2's price oracle from Uniswap Anchored View (UAV) to a new Chainlink-based oracle contract. The new oracle retrieves prices directly from Chainlink Price Feeds, includes methods for community-managed feed updates, and uses fixed prices for deprecated assets (SAI, FEI, REP).

Type
contract upgrade

Key changes

  • Replace Uniswap Anchored View with Chainlink-based PriceOracle for improved reliability and precision in price feeds(high)
  • Update stablecoin valuation to use Chainlink Feeds instead of hardcoded values(high)
  • Add write methods to PriceOracle contracts allowing Compound community to update or add new feeds without contract redeployment(high)
  • Implement fixed prices for deprecated assets SAI, FEI, and REP(medium)

Notable concerns

  • Dependency shift from Uniswap to Chainlink for oracle pricing
  • Contract upgrade audit completed by OpenZeppelin but implementation risk remains
Contracts0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b0x8cf42b08ad13761345531b839487aa4d113955d9
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Read the description ↗

02Description

143 words

Upgrade Compound v2 Oracle To Disable UAV

Details

Set new price oracle to 0x8cf42b08ad13761345531b839487aa4d113955d9

Info

Arana is proposing on behalf of Chainlink Labs to upgrade Compound v2’s oracle to a new contract that directly consumes data from Chainlink Price Feeds, similar to Compound III. 

<u>Forum Post</u>

Updates include:

  • The Uniswap Anchored View is replaced by a Chainlink-based PriceOracle, improving reliability and precision by retrieving prices directly from Chainlink Price Feeds.
  • Updates stablecoin valuation to use Chainlink Feeds instead of hardcoded values.
  • Write methods to update configs on the PriceOracle contracts to allow the Compound community to update or add new feeds without a contract redeployment.
  • Use fixed prices to account for the pricing of deprecated assets SAI, FEI, and REP.

The community can review the PriceOracle Contract <u>here</u>, with <u>OpenZeppelin’s audit here</u> and successful fork test results <u>here</u>.

03Mismatch analysis

AIMismatch analysis by Kvorumclaude-sonnet-5
Consistent

The proposal describes a single, well-defined action: setting a new price oracle address on Compound v2's Comptroller. The decoded calldata contains exactly one action, a call to _setPriceOracle(address) on the Comptroller contract, passing the same address (0x8CF42B08AD13761345531b839487aA4d113955d9) that is explicitly named in the description's Details section (case-insensitive match, which is expected for Ethereum addresses). The other bullet points in the 'Info' section (Chainlink feed integration, stablecoin valuation logic, write methods for config updates, fixed prices for deprecated assets) describe the internal behavior/design of the new oracle contract itself, not separate on-chain governance actions — these are implemented within the referenced oracle contract's code, not as additional proposal actions, which is normal since deploying and setting an oracle contract only requires the single _setPriceOracle call. There is no mismatch in target address, value, or function called. No omitted, extra, or mismatched actions were found. Confidence is high because both the description and calldata are specific and directly comparable on the core action (the oracle address swap), and they match exactly.

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

04Actions

1 total
#0_setPriceOracle(address)chain 0x1
Target
0x3d98…cd3b
Value
0 wei
Function
_setPriceOracle(address)
Arguments
{
  "newOracle": "0x8CF42B08AD13761345531b839487aA4d113955d9"
}
Calldata

05Tally

Summed from votes

Voters24
VP participating741.8K
Outcome (current)For
Current support100%

06Voters

24 total

No votes recorded yet.

07Forum

AIForum synthesis by Kvorumclaude-sonnet-5
sentiment · favorablethread · constructive

Arguments for

  • The UAV's Uniswap v3 TWAP anchor frequently blocks accurate, timely Chainlink price data during volatility due to TWAP latency and Uniswap illiquidity, causing stale prices and real losses (e.g., SUSHI incident, UNI bad debt).— CL_Michael, songziyu2003, cylon
  • Compound III has safely used Chainlink Price Feeds directly without a UAV since launch, demonstrating the anchor mechanism is unnecessary and the direct approach is proven.— CL_Michael, cylon, kevin
  • The current UAV requires a full contract redeployment to add or change any price feed, whereas the new PriceOracle lets the community update feeds without redeployment.— CL_Michael, kevin
  • Replacing hardcoded 'FixedPrice' stablecoin values with live Chainlink market prices reduces risk during stablecoin depeg events, aligning v2 with v3's approach.— CL_Michael, Chainlink_Labs
  • The upgrade is designed as a low-lift change requiring no modification to the Comptroller and no downtime, minimizing migration risk.— CL_Michael
  • Independent OpenZeppelin audits and fork testing found no critical/high issues and confirmed the new PriceOracle integrates correctly and prices assets accurately, including under volatility.— jbass-oz, Chainlink_Labs
  • Documented real-world incidents (SUSHI price blocking, UNI-related bad debt) provide concrete evidence that the UAV design causes protocol harm and justify prompt action.— CL_Michael, songziyu2003

Arguments against

None surfaced.

Unresolved concerns

  • Because the new oracle fixes SAI's price in USD rather than replicating the UAV's SAI/ETH-derived pricing, SAI valuations could diverge from the old mechanism as ETH/USD moves, affecting underwater account calculations and liquidation seizures.— jbass-oz

Notable participants

  • CL_MichaelChainlink Labs proposer who authored the proposal, provided incident evidence, and posted deployment/status updates throughout the process.
  • cylonOpenZeppelin representative who endorsed the proposal and explained the practical flaws of the UAV's original design.
  • kevinCompound Labs representative who supported the proposal and highlighted the UAV's upgrade limitations.
  • songziyu2003Community member who supplied a real-world incident report (UNI bad debt) reinforcing the case for disabling the UAV.
  • jbass-ozOpenZeppelin auditor who published multiple audit and fork-test reports, resolving issues and flagging the SAI pricing divergence concern.
  • Chainlink_LabsPosted updated PriceOracle deployment details and handling of deprecated asset pricing following audit feedback.
Generated by Kvorum
model: claude-sonnet-5
provider: anthropic
profile: anthropic-strong-v1
prompt: v1.0
generated: 2mo ago
Open the thread ↗