Normal Behavior:
The protocol is designed to distribute bonus rewards to stakers based on a time-weighted formula using Math.mulDiv.
Issue:
The _bonusShare function uses Math.mulDiv with integer division which rounds down. While this is intentional for the weighting, the contract lacks a mechanism to sweep or recover the residual "dust" that remains unclaimed due to precision loss. Consequently, this dust accumulates indefinitely in the contract.
Root cause:
The implementation of _bonusShare inside ConfidencePool.sol:ntences
Likelihood:
This occurs whenever the calculated bonus share results in a remainder due to the rounding-down nature of integer division.
It will happen in every pool where the provided bonus does not perfectly divide among stakers.
Impact:
Permanent locking of bonus funds that stakers are technically entitled to.
Accumulation of "dust" leads to protocol inefficiency and locked capital that cannot be recovered by any user or sponsor.
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.
The contest is complete and the rewards are being distributed.