IDEA: Verified Rating
To combat cheating, what if we implement "verified rating"? That is, if a user has a rating over a certain threshold, (lets say 1900 or 2100), they must send proof that they have the skill of their rating. Users who do not verify rating are still able to compete and gain/lose rating, but are not displayed on the leaderboard (similar to trusted participants). Maybe they won't be able to compete rated if their rating is extremely high (like 2400) but still unverified (I haven't thought this part out yet). Users who are under the verification threshold are unaffected.
To verify rating, users could submit proof of a score in a trusted completion where cheating is much more likely to get caught (like USACO or NOI). If they do not have such score, they could record themselves solving a contest. Moderators would then review it to make sure no cheating occurred, then the user's rating would become verified. To make sure that a user does not verify a low score and then cheat, we will require re-verification for crossing title thresholds.
Feasibility:
There are only 3500 active users with rating 1900 or above, and 1800 users that are 2100 or above. Evaluating official competition score takes negligible time, so we assume that in the worst case everyone sends 2 hour recordings. Moderators could easily watch at a sped up rate, even 10x would be sufficient to guarantee fair play, or even just choose a random portion to watch. This results in a worst case scenario of 700 hours of recordings to watch, around 4 business months for a single person to watch. Splitting it across 8 moderators, then this can be done in just 2 weeks. I know that the moderators are very busy with other things, but a total of 4 business months to solve cheating is not that much work. Contest evaluation may need to be paused for a slight period of time, but I believe this is worth it.
Sufficiency:
Only high rated users with verified ratings carry weight, as it is expected that you will quickly verify your rating after crossing a certain threshold. Then, high rating but unverified users can be identified as either cheaters or retired, allowing for much quicker identification and a lot less false accusations. Cheaters will be unable to cross the 2400 threshold, and basically be exposing themselves by crossing the 1900 threshold but are unable to verify rating. Both of these significantly decrease the incentive to cheat, as cheaters usually want more than just a measly blue title.
Some possible shortcomings:
Users who verify rating and then cheat without going over next threshold are let slip
I think that this is a lot better than what we have currently. Also even if an Orange coder cheats, if they can demonstrate their master level skill, they should not need to face as harsh consequences, and letting them slip is not that bad.
Division 2 is worsened
By making it impossible for cheaters to go into Division 1, aren't we basically forcing all cheatings to destroy Division 2? I think that without the high rating gain and prospect of Division 1 promotion, cheaters are less likely to exist in general, and will probably stop cheating or just quit CodeForces.
I think this idea might be a good starting point to combat cheating, but it definitely needs more work. Please leave any thoughts you have in the comments!



