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.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.