The benchmarkRate is initialized in the constructor and then used as a reference in the calculateNewEmissionRate() function. However, benchmarkRate is only updated manually via updateBenchmarkRate() (if such a function exists) and is not automatically adjusted when system conditions change.
If benchmarkRate becomes outdated, emission rate adjustments may be based on stale data. This could cause the system to either overcompensate or undercompensate the emission rate relative to the intended benchmark, leading to suboptimal token supply dynamics.
The root cause is that benchmarkRate is treated as a static reference value without an automatic update mechanism. Without regular updates, it may no longer accurately reflect the current economic conditions or desired emission targets.
Explain in relevant detail using numbers and creating scenarios demonstrating the impact
For example, if benchmarkRate was initially set to 100 tokens per block but market conditions or protocol targets evolve such that the desired benchmark becomes 150 tokens per block, failure to update benchmarkRate would constrain the emission rate adjustments. The emission rate might be capped or set too low, leading to insufficient token distribution relative to protocol needs.
If benchmarkRate becomes outdated, emission rate adjustments may be based on stale data. This could cause the system to either overcompensate or undercompensate the emission rate relative to the intended benchmark, leading to suboptimal token supply dynamics.
Introduce an automated mechanism to update benchmarkRate periodically based on current system parameters or market data. Alternatively, provide clear governance procedures for updating benchmarkRate and ensure that it is reviewed and adjusted at regular intervals.
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.