In Cardano, AFAICU, at the beginning of an epoch a snapshot is taken of the end state of previous epoch to see who staked, how much and where. But it seems that that state is not used as for that current epoch but for the next one instead. Is there a particular reason for this?
E.g is it because to have time to calculate slot leaders and then let them know that they need to start producing blocks? Are there other reasons?
It seems somewhat counterintuitive that by the time one is "staking" the actual funds might be long gone, delegated to another pool or not staked at all. Though I understand that this doesn't break the system and that it's just a delay.