A whale can extract the entire bonus pool by front-running terminal resolution with a same-block deposit. The k=2 time-weighted bonus formula falls back to amount-weighted when globalScore == 0, which the whale forces by collapsing riskWindowStart == riskWindowEnd.
The _bonusShare function computes each staker's bonus using a k=2 time-weighted formula that rewards longer at-risk duration. When globalScore == 0, it distributes proportionally to stake amount as a fallback.
A whale can front-run a terminal registry transition (PRODUCTION/CORRUPTED) by depositing in the same block. This makes riskWindowStart == riskWindowEnd, so every staker's (T − entry)² == 0 and globalScore == 0. The amount-weighted fallback lets the whale's dominant stake capture nearly all bonus despite zero at-risk time, extracting the entire bonus pool from legitimate long-bearing stakers.
Likelihood:
A terminal registry transition (PRODUCTION/CORRUPTED) becomes visible in the mempool while the pool has not yet been poked during active risk, creating the front-running opportunity
The whale's capital is fully redeemable after resolution, making the attack cost essentially one block of gas
Impact:
A whale can capture >99% of the bonus pool that was intended for long-bearing stakers
Long-term stakers who bore the actual at-risk time receive negligible bonus rewards, breaking the protocol's incentive model
Run:
Alternatively, in _bonusShare when globalScore == 0 and riskWindowStart == riskWindowEnd, distribute bonus only to pre-risk stakers or burn to recovery instead of amount-weighting.
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.