Anti-cheating in the LLM Era

Revision en3, by piaoyun, 2026-06-25 04:22:03

I think many people now hold such an idea: LLMs have already historically defeated CP, and catching those cheaters is only useless effort. The fairness of CF and the value of rating will finally disappear.

But, is CP the first game where humans were defeated?

Long time ago, Deep Blue defeated chess, AlphaZero defeated Go, scripts and mouse macros defeated FPS games, and GTO defeated Poker. The fact is, chess developed faster time controls that are harder to cheat in. Thousands of millions of real money still flows on poker websites. FPS game companies rely on automatic detection and community anti-cheat to continuously reduce the percentage of cheaters in the game, until it reaches a level that can basically be tolerated.

In this article, I list some anti-cheating methods that I know. Maybe not all of them are feasible. But what I want to express is that we still have many methods to defend the purity of the CP community.

1. KYC (Know Your Contestant) & VP (Verified Player)

First, we need to recognize that there is a huge cost asymmetry between cheating and anti-cheating today.

Because of some kind of insistence on “open-source spirit”, Codeforces still has no effective restriction on one person registering multiple accounts. In every contest, there are thousands of alternate accounts joining. Obviously, the energy of CF managers is limited. They pay more attention to removing cheaters within the top 200, and have to tolerate huge cheating in the rating range below 2400.

However, most ordinary users are the ones who support the Codeforces community. They might also become future GMs or even LGMs. Hurting their feelings toward CF will certainly harm the future of the community.

I think firstly one phone number should be limited to only one CF account. If you want to cheat, then you should be prepared to lose the convenience of using CF later.

Second, we should allow users to become further Verified.

The standard of Verified, in my definition, is that you can prove your strength through a trusted third party, or that if you are found cheating, you will pay a relatively high cost.

To become Verified, one needs to satisfy any one of the following conditions:

  1. Verify an award from any offline contest, such as ICPC, UCup, OI in any nation, like NOIP or CCO.
  2. The account was registered before the LLM era, for example before 2025, and already had a rating close to the current level at that time.
  3. Complete student verification and confirm that you are a student of some school, so that the community from the same school can play a role of supervision.
  4. Pay for the account.

When calculating the final rating, Verified players will only be calculated based on other Verified players, and non-Verified players will be “skipped”. Non-Verified players also use Verified players as the standard, but they will not have an influence on the latter. (which means, the rating of a Non-Verified player is based on his performance against other Verified players

After that, we can selectively ignore anti-cheating review for non-Verified players.

Through this method, non-Verified players can get a fake rating to satisfy their vanity, but they will no longer hurt other honest players. At the same time, the experience of new players joining contests and getting rating will not be affected.

2. Hack the Cheater

A large number of honest CF users have already mobilized to find cheaters, and summarized many features of AI, such as overly engineered naming, overly defensive programming, and so on.

Unfortunately, the enthusiasm of these users has not been effectively used for now.

I want to introduce the anti-cheating experience of Perfect World Platform in CS2. It is mainly divided into two types:

  1. PAC, or Perfect Anti-Cheat. The official side collects features through automatic programs, with human intervention.
  2. CAC, or Community Anti-Cheat. It is a community formed by green players, similar to a jury system, which evaluates and votes on recordings of suspected cheaters.

First, Codeforces should open a report function, allowing users to submit evidence of suspected cheaters. After that, other Verified players can review the code of reported players and vote.

This process may cause false judgments. Therefore, we can use a mild method for damage control. If a player is judged by the community to have cheated in this contest, this player will not affect the rating of other players in this contest. But he himself can still get rating normally, and there will be no display on his profile.

The case will be further submitted to administrators with higher authority, who will make further decisions.

3. Possible Future Anti-cheating

Anti-cheating from the source of LLMs may be very hard, but it is also the most effective.

Take Poker as an example. The largest GTO provider, GTOWizard, has always cooperated with major poker websites and provided methods to detect cheating, including checking whether some hands were queried in GTOWizard, and whether the actions of players match the suggestions of AI.

During the Chinese Gaokao (National College Entrance Exam), many local AI companies closed image recognition functions and refused to answer questions that might be related to exam problems.

LLMs do not only affect Codeforces. They also affect the fairness of exams around the world. Maybe in the future, there will be a database jointly maintained by global educational institutions. They can upload exams that are currently happening, and LLMs can check the database before answering questions, then choose whether to refuse answering.

This will not be pushed forward by Codeforces or some university alone, but will be produced by cooperation of the whole society.

Final Words

CP and Codeforces were once my belief, because it is open to everyone, and is always objective, fair, and equal. Anyone has the chance to realize himself. I absolutely do not want to admit that it will be easily defeated by technology.

I sincerely hope that everyone can restore confidence and solve this hard problem together: to defend the sacredness and honor of our cause.

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English piaoyun 2026-06-25 04:22:03 114
en2 English piaoyun 2026-06-19 11:21:24 11 Tiny change: 'ar.\n\nBut is Codeforces the first' -> 'ar.\n\nBut, is CP the first' (published)
en1 English piaoyun 2026-06-19 11:19:36 6156 Initial revision (saved to drafts)