There’s three natural extreme options:
- Shards have to remember every yank receipt ever claimed
- Yanking requires a Merkle proof of every previous block in that shard proving that the same contract was not yanked in during that block
- A receipt specifies one specific block height during which it can be claimed, and if the contract does not get included at that specific height it’s simply dead forever.
But these three options are all clearly ridiculous, so there are natural intermediate options:
- A receipt must be claimed within one year. Shards have to remember receipts for one year.
- Shards have to remember receipts for one week. If a receipt is not claimed within one week, then the claimer must provide one Merkle proof per week proving that the receipt was not part of the claimed receipts list in the state during each previous week.
This is actually the same problem as the problem with rent and hibernation, and it seems likely ideal to have one mechanism to handle both cases.