Remote proofs are only tracked by proofid in the peer manager, so the contender cache needs to continuously "promote" cache entries since it does not store the proofs themselves. Each time promotion is attempted, an indirect validity check (isValidContenderProof) is executed to ensure the cache is not tracking invalid proofs. In practice, isValidContenderProof will look something like:
```
[](const ProofId &id) { pm->isRemoteProof(id) && (pm->isBoundToPeer(id) || pm->isDangling(id)); }
```