The function calculateBoost incorrectly implements Curve's formula by not accounting for the value of the deposit, leading to incorrect calculations and users receiving less than they should
The boost exists to increase the earning weight of the liquidity provided by a user. It was introduced by Curve Finance and was based on 4 parameters:
v = amount of veTKN user has
V = all veTKN in the system
d = value of user deposit
D = total value deposited in a pool's gauge
The formula is the following
However the current formula does not account for the deposited and total amounts
Users who have equal veRaac but different deposit amounts will have the same boost applied, breaking the invariant of boosts being proportional to deposit sizing.
Incorrect boost allocation leads to unfair reward distribution when calculating earned in gauges.
Unfair reward distribution, logic error
Implement Curve's formula
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.