naviS1mple's blog

By naviS1mple, history, 20 hours ago, In English

Below I present a few solutions that could be implemented that would in my opinion massively deter AI usage based cheating

AI cheating on Codeforces has similarities with chess and video games, but the available evidence is different.

Chess provides a sequence of moves and timings. Competitive programming largely exposes submitted code, while the reasoning happens elsewhere. AI assistance might provide an entire solution or just one crucial observation. Honest contestants also often produce similar implementations of the same algorithm, making “this looks like AI” a weak accusation.

I am proposing two possible solutions.

1. Identity verification

OTP verification could add some friction, although it only establishes access to an email address or phone number.

I would consider going further: a government ID and a live selfie, linked privately to one active rated account. Attaching an identity could discourage cheating by making account replacement harder and reduce smurfing.

It would not eliminate either. Validating documents is different from detecting the same person across multiple accounts, and verified accounts can still be shared.

Open-source starting points include IDVKit, an early iOS project supporting document-chip reading, face matching, and liveness, and DeepFace, which provides face verification and anti-spoofing components. Neither is a complete, universally reliable KYC solution, but they offer components worth evaluating.

Using open-source components and building internal tools could keep costs low by reducing reliance on paid verification services and their per-check fees. Sponsorship, community contributions, and verifying users once rather than every contest could also help. Hosting, maintenance, security, and support would still need resources.

I would start with an optional verified leaderboard to test the approach. This would have limited impact on cheating outside that leaderboard, but could help establish whether broader adoption is worthwhile. Mandatory ID checks could exclude younger participants and people uncomfortable sharing sensitive documents. Public handles should remain pseudonymous, with minimal identity-data retention.

2. AI reference solutions and internal flags

For each round, setters and testers could collect their own solutions alongside several outputs from commonly available models such as ChatGPT and Claude, using free access or subscriptions around $20 per month.

Models should initially receive only what contestants receive. The model, prompts, and date should be recorded, and unpublished problems should only be uploaded with organizer approval and suitable data-handling arrangements.

After the contest, tools such as MOSS or JPlag could compare submissions against other contestants and these reference solutions. JPlag runs locally, making it an option for an internally maintained system.

Similarity does not establish cheating. MOSS explicitly warns against that interpretation. Standard algorithms and templates naturally overlap, while AI-assisted code may look completely different. Setters’ solutions would help establish what ordinary similarities to expect.

I would use matches to create an internal review priority, loosely inspired by Trust Factor. Flags would prompt human inspection, without automatic bans, rating penalties, or public accusations. Unsupported flags should be cleared, and any eventual adverse decision should allow an appeal.

Before deployment, this needs testing against independently written human solutions and known AI-assisted solutions. Does adding AI examples improve detection? How many honest contestants get flagged? How much reviewer time does it require?

These are long-term proposals. Using open-source components and building internal tools could keep costs low, but making them effective would require volunteers to help build and test the tools, committed maintainers to keep them reliable, and resources for hosting and human review.

I would pilot the review system first and test identity verification on a smaller, voluntary basis. That would help establish the actual costs and benefits before expanding either system.

TL;DR: I am proposing two possible solutions: private identity verification to discourage disposable rated accounts, and an internal system comparing submissions against AI-generated reference solutions to prioritize human review. Open-source tools and community contributions could keep costs low, but both would require sustained volunteer effort and maintenance to work effectively over the long term.

  • Vote: I like it
  • +6
  • Vote: I do not like it

»
20 hours ago, hide # |
← Rev. 2  
Vote: I like it 0 Vote: I do not like it

If identity verification eventually becomes mandatory, Codeforces could also introduce a feature for reporting other users. However, such a feature shouldnt be added until theres a strict and reliable identity verification process in place; otherwise it could easily be abused by bots or malicious users

  • »
    »
    19 hours ago, hide # ^ |
    ← Rev. 2  
    Vote: I like it +8 Vote: I do not like it

    I feel like a good way to implement this could be to allow red coders to report users which those go to admins to check, which reduces abuse potential and a 50-contest minimum or so on top of that since people can easily get to red using $$$AI$$$ nowaday.

    • »
      »
      »
      18 hours ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      did you edit your entire comment just to add a period at the end

      • »
        »
        »
        »
        17 hours ago, hide # ^ |
         
        Vote: I like it +11 Vote: I do not like it

        yeah

»
18 hours ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

You should make your next post about how you went from 3k+ rank in div3 to top 5 in div2 within 1 week. I'm curious about your ways of improvement.

»
18 hours ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

Jst remove the rank system. Cheaters cheat to show off their rank right? No rank, nothing to show off, no reason to put effort to cheat. Only the people truly passionate about coding and problem solving will remain.

  • »
    »
    17 hours ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Totally agree this rank system is meaningless now with cheaters

  • »
    »
    17 hours ago, hide # ^ |
     
    Vote: I like it +3 Vote: I do not like it

    I don't think so. Primarily because competitive programming in its name signifies a relative rank based system. Just because there are few bad apples does not mean you need to get rid of the whole system. It's just like saying we should remove all cars from the roads in order to solve the problem of accidents.

    Think of it that way. Even before AI there used to be telegram cheaters, but at that time the number of cheaters was not that many therefore there was no need to take these drastic steps. So we need to get the numbers back down, so it is more like a optimization problem in a way.

»
17 hours ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

s1mple trying to get his graffiti back with a double noscope vs cheaters xd

»
5 hours ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

One possible solution is to create an IDE that integrates with codeforces.com, so that contests can be viewed and entered only through this IDE. The IDE would support AI agents: for example, you could use AI to parse input/output, generate templates such as a segment tree, a max-heap or a prime sieve, train, solve problems, or simply write code. However, if you participate in a rated contest, the IDE sends logs that are reviewed automatically. The idea is that you should have your templates there and copy-paste only from the IDE to the IDE. So copy pasting from something else will be forbidden. Another even more interesting possibility — create minimalistic OS where you can have only one program installed — CF-IDE.