This is our initial roadmap to implement anti-cheat logic at ChessX. We will be evolving it over time and make an effort to share and incorporate best-practices and knowledge with the entire online chess community.

  1. Report System

A communication channel for allowing players to report abuse, cheating and suspected engine moves is the first and very important step of cheat detection.

  1. Abnormal Rating Changes

Most chess platforms are using rating changes for detecting potential unfair behavior. This method alone is not perfectly accurate but if a user is cheating then her/his rating will increase abnormally. There is a reason for this method being inaccurate; there will be actual high rated players, they will gain elo points rapidly at start.

Running a script periodically on players database or after every game per player for checking her/his last games, win rate and rating change could be a perfect step for detecting potential cheaters.

  1. Move Times

Time spent for moves in a chess game between two human players tends to be variable. However, if we look at engines, they will respond almost periodically. Checking for this tells a lot about cheating incidents. This is one of the most accurate ways of detecting cheaters.

  1. Average Centipawn Loss

This method is similar to step 1 but in order to detect rating changes, we need to allow a cheater to play for 10-20 games, however using average centipawn loss, we can detect suspected games separately.

Note: A centipawn is 100/1th of a single pawn and centipawn loss is a calculation and numerical score given by a chess engine to the difference between the move you actually play against the strongest move available at that time.

A grandmaster can score 20 or less but a new player will score more than 100 in most of the cases. Here is an example from last world championship match:

Screen Shot 2022-11-09 at 12.04.31.png

Here is an image from Lichess (rapid game rated around 1900) for comparison:

Screen Shot 2022-11-09 at 12.04.50.png

Looking for unusual ACL scores is also one of the most accurate ways for detecting cheaters. It also requires less data than other mentioned methods since only one game is enough for calculating ACL.