Hello,
I open a new thread on this forum to have an open discussion about what should be in your opinion the best "automated" or semi-automated cheating detection software, or at least the indicators to be
used into it. We can also talk about other techniques or countermeasures to be taken to avoid it as most as possible...
I think that cheating is really the biggest curse to be found on every chess playing server.
The nice point with this new website is that the creator seems to be willing quite hard to fight against this issue, and on an open basis.
Other sites such as the famous Playchess server have a detection software running and you can see from time to time (quite often actually) "red public messages" telling you that some user elo rating
has been deleted beacause he/her was caught using a chess engine. However, nobody but the authors knows how it works, and I suspect it is not working very well because I have a lot of games where I am
really suspicious on the opponent. It is for example impossible that every games are analysed on the server side as this would require too much computation power as chess engines are pretty intensive
CPU consummers. It is not done on a distributed basis either as the CPU load on the client side isn't growing up at all during games.
It's similar to cryprography... some system are based on keeping the "reciepe" secret, some others are based on a public but smart algorithm which I found a much better way.
I've already been thinking a little to this and I believe that there are several levels of action.
First, there are time cheaters which create artificial lag (I don't know how it works excatly but that exists for sure) which gives them big advantage on fast or bullet games. I think this can be
handled at server level with some kind of time seal and game cancelling in case the lag is too high. This kind of cheat is however not the biggest pain... Playing against an engine is.
One is of course to have a post-game or real time game analysis versus one or several engines and check the results...
This is not easy however as they are many engines which don't always give the same first or second move. Engins can be parameterized for intermediate strength which sometime makes small or big
blunders. There is the openning stage in which some players including me knows a little theory moves. Some players start using the engine only at a later stage on the game (usually preceeded by a
large "setup" time at a stage where the position is not necessarily so complex or already desesperate against a human player). The engines will not give the same best move depending on the time given
to them, their evaluation of the position will largely depends on the time given to evaluate and the hardware it was run onto... Complex task then that we may talk later.
Other indicators could in my opinion be based on :
- the time to move, but how to use this efficiently should be investigated
- the mouse displacement between moves
- the playing window togles / focus loss between moves
The last indicators could be used to find someone is using a software on the same computer (but not on a secondary device). I don't know if it's possible to evaluate it at web browser level... I mean
if the player is leaving the web browser window focus after each move... This should be a good clue that is looking something somewhere else.
the mose move indocator could propably be used too, if the player is using on a secondary device, it's mouse should remains exactly steady for a rather constant time between moves. Same as previous, I
don't know if it's "recordable" on a web application, but I've seen some web visits stats apps that have some click maps and mouse move maps so something should be possible I guess.
Another solution/countermeasure may be to have a few hidden bots (even using the name of a real registered human player could be a good idea) sent at supposed cheaters (or on a more random basis to
all players) and playing strong A.I. chess. Results against those should be good indicators, and loss not taken into account on the elo rating for example (you should also be informed you have been
playing a bot at the end of the game).
Of course, people getting convinced of cheating should have their elo reseted (and it's nice that points are given back here !).I my opinion, they should also be "stamped", I mean have an icon or sign
next to their name so that you know their past and avoid them if you want to.
Another idea still not perfect but all this is still discussion level right now could include having some kind af "no cheating" certification. For example, you could have a client level software
running on your computer (on a voluntary will basis) giving you access to another icon such as "trusted player". This client could for example perform some kind of computer process inspection, mouse
or windows focus recording, or even screenshots of the desktop at regular interval...
Of course there are some confidentialty inssues, but I really think that when I'm playing chess on the Internet, I would accept to have such a dogwatch running on my computer to make the other player
more confident he/she is not playing an engine. Of course if he/she is using a secondary device, this make it more difficult (there is however this mouse moves indicator idea and time to move that
could still give some clues)
Thank you for reading all that stuff, and maybe it could be a good idea to move this thread an a forum where there are some computer chess specialists such as talkchess... What do you think ?
Regards,
Mathieu
I open a new thread on this forum to have an open discussion about what should be in your opinion the best "automated" or semi-automated cheating detection software, or at least the indicators to be
used into it. We can also talk about other techniques or countermeasures to be taken to avoid it as most as possible...
I think that cheating is really the biggest curse to be found on every chess playing server.
The nice point with this new website is that the creator seems to be willing quite hard to fight against this issue, and on an open basis.
Other sites such as the famous Playchess server have a detection software running and you can see from time to time (quite often actually) "red public messages" telling you that some user elo rating
has been deleted beacause he/her was caught using a chess engine. However, nobody but the authors knows how it works, and I suspect it is not working very well because I have a lot of games where I am
really suspicious on the opponent. It is for example impossible that every games are analysed on the server side as this would require too much computation power as chess engines are pretty intensive
CPU consummers. It is not done on a distributed basis either as the CPU load on the client side isn't growing up at all during games.
It's similar to cryprography... some system are based on keeping the "reciepe" secret, some others are based on a public but smart algorithm which I found a much better way.
I've already been thinking a little to this and I believe that there are several levels of action.
First, there are time cheaters which create artificial lag (I don't know how it works excatly but that exists for sure) which gives them big advantage on fast or bullet games. I think this can be
handled at server level with some kind of time seal and game cancelling in case the lag is too high. This kind of cheat is however not the biggest pain... Playing against an engine is.
One is of course to have a post-game or real time game analysis versus one or several engines and check the results...
This is not easy however as they are many engines which don't always give the same first or second move. Engins can be parameterized for intermediate strength which sometime makes small or big
blunders. There is the openning stage in which some players including me knows a little theory moves. Some players start using the engine only at a later stage on the game (usually preceeded by a
large "setup" time at a stage where the position is not necessarily so complex or already desesperate against a human player). The engines will not give the same best move depending on the time given
to them, their evaluation of the position will largely depends on the time given to evaluate and the hardware it was run onto... Complex task then that we may talk later.
Other indicators could in my opinion be based on :
- the time to move, but how to use this efficiently should be investigated
- the mouse displacement between moves
- the playing window togles / focus loss between moves
The last indicators could be used to find someone is using a software on the same computer (but not on a secondary device). I don't know if it's possible to evaluate it at web browser level... I mean
if the player is leaving the web browser window focus after each move... This should be a good clue that is looking something somewhere else.
the mose move indocator could propably be used too, if the player is using on a secondary device, it's mouse should remains exactly steady for a rather constant time between moves. Same as previous, I
don't know if it's "recordable" on a web application, but I've seen some web visits stats apps that have some click maps and mouse move maps so something should be possible I guess.
Another solution/countermeasure may be to have a few hidden bots (even using the name of a real registered human player could be a good idea) sent at supposed cheaters (or on a more random basis to
all players) and playing strong A.I. chess. Results against those should be good indicators, and loss not taken into account on the elo rating for example (you should also be informed you have been
playing a bot at the end of the game).
Of course, people getting convinced of cheating should have their elo reseted (and it's nice that points are given back here !).I my opinion, they should also be "stamped", I mean have an icon or sign
next to their name so that you know their past and avoid them if you want to.
Another idea still not perfect but all this is still discussion level right now could include having some kind af "no cheating" certification. For example, you could have a client level software
running on your computer (on a voluntary will basis) giving you access to another icon such as "trusted player". This client could for example perform some kind of computer process inspection, mouse
or windows focus recording, or even screenshots of the desktop at regular interval...
Of course there are some confidentialty inssues, but I really think that when I'm playing chess on the Internet, I would accept to have such a dogwatch running on my computer to make the other player
more confident he/she is not playing an engine. Of course if he/she is using a secondary device, this make it more difficult (there is however this mouse moves indicator idea and time to move that
could still give some clues)
Thank you for reading all that stuff, and maybe it could be a good idea to move this thread an a forum where there are some computer chess specialists such as talkchess... What do you think ?
Regards,
Mathieu