The working supply tracking in BoostController can become misaligned with the total boost amounts. This breaks the core boost accounting and could lead to incorrect reward distributions.
The Trigger
The code assumed working supply and total boost would naturally stay synchronized since they represent the same underlying value. However:
The GaugeController uses these values for reward calculations
The veRAACToken voting power affects boost calculations
Independent updates create race conditions
The updateUserBoost() function from BoostController.sol where the desynchronization occurs.
Think of the BoostController as a bank's accounting system, it must maintain perfect balance between its ledgers. The working supply represents the "available balance" while total boost tracks the "actual holdings." When these values diverge, it's like having two different amounts in your checking account.
In the RAAC protocol, this accounting system determines how much extra voting power and rewards users receive based on their veRAACToken holdings.
When a user interacts with the boost system. The BoostController calculates their new boost amount based on their veRAACToken balance. let's say they have 1000 veRAAC tokens. The contract then attempts to update both the user's boost and the pool's working supply. Here's where things go wrong:
This creates a dangerous mismatch. The working supply now shows 1500 while total boost reflects 1400. This 100-token difference might seem small, but it compounds with each update, potentially leading to significant reward miscalculations.
For the RAAC protocol, which relies on precise boost calculations to incentivize long-term veRAACToken holders, this desynchronization directly impacts the core tokenomics. Users could receive up to 2.5x their normal rewards incorrectly, or have their voting power miscalculated in governance decisions.
Incorrect boost multipliers affect reward distribution
Undermines the veRAACToken voting power system
Destabilizes the gauge weight calculations
Treat the updates as a single atomic operation ensuring the fundamental accounting equation always holds true, working supply must equal total boost at all times.
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.