There was a time I let a script run through 47 epochs just to reconcile reward accounting with the canonical state.
by morning, the coffee was still untouched... while the numbers looked far too perfect to be trusted.
one Finality Provider had already left the active set, the stake had unlocked, yet ActiveSatoshis remained there as though no state transition had ever occurred.
honestly, I am not as afraid of numbers as I am of incorrect numbers that remain deterministic, still get recorded by the keeper, then pass through reward distribution as though everything were normal.
x/costaking → stale state → phantom stake → reward leakage.
a short chain... yet economic security can be breached through exactly one field that was never reset!
@BabylonLabs_io uses a dual staking model, BTC staking weight, BABY staked amount, epoch duration and cumulative_reward_ratio to distribute validator rewards.
it sounds highly sophisticated.
but GHSA-4rmq-mc2c-r495, CVSS 6.9, shows that an inactive FP can still retain non-zero ActiveSatoshis after leaving the validator set.
two different doors, both leading to the same uncomfortable question: does the state machine truly reflect the assets that still exist?
I once simulated 500 units of phantom stake persisting for another 24 epochs.
with only a 3% deviation in reward weight, those still carrying exposure get diluted, while those who have already left the system continue receiving rewards... the dashboard stays green, blocks keep running, who would notice?
my view is rather harsh: a protocol does not lose trust because it has bugs; it loses trust when economic discrepancies still appear valid.
would you trust the dashboard... or trace every state transition yourself?