The RAACMinter contract's utilization rate calculation is fundamentally flawed due to a mismatch between normalized debt (RAY-scaled index) and actual deposit amounts. This causes the utilization rate to be massively inflated, leading to maximum emission rates and hyperinflationary token minting.
The issue stems from comparing incompatible values in the utilization rate calculation:
Key issues:
Incorrect Borrow Metric:
getNormalizedDebt() returns a borrow index in RAY precision (1e27)
This is NOT the actual borrowed amount but rather a compounding index used for interest calculations
The index grows over time with interest accrual, regardless of actual borrows
Scale Mismatch:
Borrow index: RAY precision (1e27)
Deposits: Standard token precision (1e18)
Division: (1e27 * 100) / 1e18 = 1e11
Results in utilization rates billions of times higher than reality
Incorrect Deposit Source:
Uses StabilityPool deposits instead of LendingPool deposits These pools serve different purposes and their balances are not directly comparable ,StabilityPool deposits not reflect actual borrowable liquidity
The broken utilization rate then impacts token emissions:
Hyperinflationary Token Emissions:
Utilization rate will always show extremely high values (>10,000%)
Emission rate adjustments will constantly max out
Protocol will mint tokens at maximum allowed rate regardless of actual usage
Rapid token supply inflation and broken incentive structure
Manual Review
Code Analysis
Use actual borrowed amounts and deposits from the lending pool:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.