Answers.Body: <p>Some of those things are possible in theory.  Especially if you have a good idea what an engine-detector is looking for, you could maybe do some machine-learning training of algorithm against algorithm until you had one that could make good moves that didn't get detected as different from a given player's normal play.</p>
  <p><strong>But that would require someone to be interested in spending a <em>bunch</em> of effort to make software whose main use-cases included letting people cheat undetectably</strong>.  Most people actively don't want that and would avoid doing so, even though there might be other uses (like for training, to play against a human-like opponent, if it's good enough to <em>really</em> play human-like, not just sneak under the anti-cheat radar).</p>
  <p>So I think a significant part of what prevents that from happening is the ethics / moral code of many software developers.  Or that <strong>for most people it's a somewhat less interesting goal</strong> than making a strong chess engine by any means possible.  Not purely technical challenges <em>if</em> someone set that as a goal.</p>
  <p>OTOH I could imagine some people might be curious to see if they could teach an engine to play more like a human, or play more like a <em>particular</em> human. And/or as @Akavall mentions, as a training opponent.  That could make for some interesting research, although the danger of cheaters weaponizing the results would hopefully deter many researchers from pursuing it.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T07:07:43.947Z
Answers.Text: The caveat is that the whole point of cheating is to "win", but once you make your moves undetectable (mimics a real player), then you probably won't be winning with the same level of consistency.
Answers.UserDisplayName: Nelson
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T07:09:20.810Z
Answers.Text: @Nelson: Right, but you can still win significantly more than you were before, and put your rating on an upward trajectory as you at least avoid blunders, for example.
Answers.UserDisplayName: Peter Cordes
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T07:43:28.077Z
Answers.Text: Good points, but software that plays very much like a human would be useful for other things besides cheating, it could be useful to play training games against, for example, so there could be an incentive to develop it.
Answers.UserDisplayName: Akavall
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T07:46:04.017Z
Answers.Text: @Akavall: Good point, that's a stronger factor in the plus side than what I'd thought of.  But only if it's *really* human-like, not just fooling an automated cheat-detection system.  Anyway, updated my answer to include that, thanks.
Answers.UserDisplayName: Peter Cordes
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-11-05T14:52:12.903Z
Answers.Text: i think you have the right idea but... in esports (other esports? lol)  like csgo, there are hundreds of sites dedicated to cheating. i have a feeling there may be a few such sites similar dedicated to chess cheating but ultimately i think it would end up the same as csgo: for every cheat, the csgo peeps will eventually improve their systems to counter the cheat. i have a feeling the case is similar to chess except i think it's much less difficult to counter cheats in chess as compared to games like csgo. idk.
Answers.UserDisplayName: BCLC
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-03-20T16:01:13.757Z
Answers.Text: @BCLC: Chess being turn-based makes it a lot different from fast-paced games.  Very low-bandwidth.  The only interaction between client and server is a move, and there aren't many moves in a game, and time controls give the player enough time to look at another screen or window between moves so no modification of the client software is necessary. Also, the player already has perfect information about the game state; no wall hacks needed.  Cheat-detection in chess is a lot different from esport games where cheating involves basically hacking software, I think.
Answers.UserDisplayName: Peter Cordes
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T06:33:28.857Z
Answers.LastActivityDate: 2020-11-10T07:49:06.570Z
Answers.LastEditDate: 2020-11-10T07:49:06.570Z
Answers.UserDisplayName: Peter Cordes
Answers.Body: <p>One very obvious indication for people using engines is, that they need roughly the same time for every move (usually about 5s in blitz games), even for the most obvious ones, which could be premoved. They also have much worse ratings in faster time controls (bullet). One example: <a href="https://youtu.be/rlxHusHfpck" rel="noreferrer">https://youtu.be/rlxHusHfpck</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T08:17:40.920Z
Answers.Text: On the opposite, I once made a mistake losing the queen in a quick game online, something a computer "sees" immediately (most other moves are pruned quickly) and it took the "opponent" 0.3 second to take it. A human, even seeing quickly the completely unexpected (and not anticipated = no premove) mistake would need at least 1.5~2 seconds to take it. A very fast move that shows, anyway, that the opponent is a comp
Answers.UserDisplayName: Déjà vu
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T16:45:15.063Z
Answers.Text: @e2-e4 You should take a look at one of this HyperBullet/UltraBullet tournaments on Lichess.
Answers.UserDisplayName: Sleafar
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-11T08:00:03.103Z
Answers.Text: As the chess engines usually used are a handful, it is possible that websites could be comparing the move made by the player with the move made by an engine at the same position. If the moves are consistently the same, then it is quite obvious that an engine is being used.
Answers.UserDisplayName: Paddy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-11T09:39:32.703Z
Answers.Text: @Paddy It's not that simple. If you would do that, you would accuse every top player who memorized 30+ move variations up to e.g. a forced draw of cheating.
Answers.UserDisplayName: Sleafar
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-11T10:47:07.337Z
Answers.Text: @Sleafar: Those show the reaction times of players prepared and hyper-focused for such a fast game.  Seeing the same reaction times in a non-blitz game is still a pretty big red flag.
Answers.UserDisplayName: Peter LeFanu Lumsdaine
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-11T13:43:46.923Z
Answers.Text: @PeterLeFanuLumsdaine e2-e4 was talking about a "quick online game" so I assume it was a blitz game. I'm making moves regularly in times below 1.5-2s during blitz games (and usually regret them regularly as well). I seriously doubt you can accuse someone of cheating, because he took your queen in a time below 1s. Even if you could, this would be an indication that you play against a bot, not someone using an external engine.
Answers.UserDisplayName: Sleafar
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-09T16:42:42.157Z
Answers.LastActivityDate: 2020-11-09T16:42:42.157Z
Answers.UserDisplayName: Sleafar
Answers.Body: <p>That's a bit like asking a congregation of people &quot;is everyone here?&quot; and expecting an accurate answer.</p>
  <p>There may very well be chess engines that are optimized to fly under the radar of the cheat detection algorithms used at the major sites. But those are not the ones that get exposed and therefore they are not well known.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T17:58:20.647Z
Answers.LastActivityDate: 2020-11-10T17:58:20.647Z
Answers.UserDisplayName: NoirDesir
Answers.Body: <p>With the proliferation of machine learning systems and excess processing power, once you have enough play data, you can use readily accessible machine learning algorithms to determine a player's playstyle, and compare their moves against chess engine playstyles.</p>
  <p>The exact mechanism and detail are university-level courses, so that isn't something I can explain in detail at the moment, but having access to a large amount of chess play data would make such analysis easily doable for someone in 2nd or 3rd year in computer science or data analytics. Machine learning is accessible enough that I think even a high schooler with particular interest would be able to do the analysis.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-18T01:25:35.560Z
Answers.Text: "easily" means here that he would know well, what to develop. The actual development would take from months to years.
Answers.UserDisplayName: Gray Sheep
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T01:24:42.180Z
Answers.LastActivityDate: 2020-11-10T07:05:29.623Z
Answers.LastEditDate: 2020-11-10T07:05:29.623Z
Answers.UserDisplayName: Nelson
Answers.Body: <p>in esports (other esports? lol)  like csgo, there are hundreds of sites dedicated to cheating. i have a feeling there may be a few such sites similar dedicated to chess cheating but ultimately i think it would end up the same as csgo: for every cheat, the csgo peeps will eventually improve their systems to counter the cheat. i have a feeling the case is similar to chess except i think it's much less difficult to counter cheats in chess as compared to games like csgo.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-11-05T14:52:48.643Z
Answers.LastActivityDate: 2021-11-05T14:52:48.643Z
Answers.UserDisplayName: BCLC
Answers.Body: <ol>
  <li><p>Engines have no concept of natural moves and they have no fear. An engine will play for the most advantage, not for the most manageable advantage, even if it allows a fierce attack, because it sees that the attack does not work, while a human would probably prevent an attack and settle with a smaller, but practical advantage.</p>
  </li>
  <li><p>&quot;Randomly&quot; picking good moves is not easy. The second best move may only be second best if you see a very hard ONLY MOVE which comes 15 moves after. And sometimes, the best move is very obvious, and playing the second best move would be very suspicious.</p>
  </li>
  <li><p>It is not very known how engine detections on chess websites work, but I have read that they also account for playstyle inconsistency (ultra-aggressive to defensive, even though an aggressive move is available and not much worse), mouse movement, time management.</p>
  </li>
  </ol>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T08:30:28.520Z
Answers.Text: The third point is very important: There is no simple "one size fits all" set of measures that would universally camouflage engine use for every user. For 100% "protection", each cheater would basically need their own tailor-made anti-detection profile, trained with hundreds of their own games to play just like them themselves but a *little* stronger. Not very feasible.
Answers.UserDisplayName: Annatar
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T12:23:58.330Z
Answers.Text: @Annatar Feed a collection of 5 or so suggested moves into the engine, get them back ordered according to how good the engine thinks they are.  (Not so good for blitz of course)
Answers.UserDisplayName: Taemyr
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T17:18:19.220Z
Answers.Text: Do you think advancements in AI can help chess engines to bypass all 3?
Answers.UserDisplayName: Apoqlite
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T21:43:19.207Z
Answers.Text: @Apoqlite Certainly it could, but at the same time the websites will also be improving their anti-cheat detection as well.
Answers.UserDisplayName: Carmeister
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-10T22:35:17.513Z
Answers.Text: @Annatar great point. Chess playing style (timing, decision making etc) could be an unique as hand writing
Answers.UserDisplayName: stevec
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-11T07:57:48.690Z
Answers.Text: I agree with the inconsistency part. I remember a friend and I were playing on Lichess and he got banned (or warned) because he was playing very aggressively originally and then decreased his aggression to give me a chance because I am not nearly as good as him.
Answers.UserDisplayName: Paddy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-12T18:35:26.497Z
Answers.Text: I can give an AI fear.
Answers.UserDisplayName: Joshua
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-18T01:23:07.980Z
Answers.Text: If I would cheat, I would use the engine only in critical cases. If I play 50 steps as usual, among them 3 ones which were the steps of a program, I think nothing would be seen by any detector.
Answers.UserDisplayName: Gray Sheep
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-09T15:56:03.253Z
Answers.LastActivityDate: 2020-11-09T15:56:03.253Z
Answers.UserDisplayName: B.Swan
Body: <p>I see accounts of people getting banned from sites like chess.com for using engines like Stockfish and Komodo (I admit I have used these engines before, but never in an actual match). Now, I believe there are certain characteristics of these engines that make them easy to detect.  One I heard is the way you move the King, as well as every move being the best move possible (This one could be wrong). But I was thinking... couldn't chess engines not do the things that make them detectable, like play Kings less randomly, play sub-optimal moves in between optimal ones, etc, and become basically, as far as I can notice, undetectable? Is there anything about the way they are programmed that make this impossible or is this because of legality and morality?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-11-12T10:30:37.023Z
Comments.Text: @J... Failing the turing test in general is indeed about being 'intelligent' enough, failing to not be identified has more to do with replicating the same human 'stupidity' in the same way.
Comments.UserDisplayName: David Mulder
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-11-12T12:07:16.913Z
Comments.Text: Human stupidity isn't a particularly efficient heuristic in a typical Turing test. And the best chess engines aren't based on brute force anymore anyway, but something more akin to analysis (alphazero is a neural network). Regardless I put 'intelligent' and 'stupidity' between quotes because they are inadequate terms, maybe I should have called it 'human fallibility', making sure that every action takes as long as it would take a human, making sure that the errors that are made are of consistent style, etc.
Comments.UserDisplayName: David Mulder
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-11-12T12:42:43.080Z
Comments.Text: @J... https://chess.stackexchange.com/a/32880/2947 answer expresses my own believes why Chess Engines can be identified. As for neuron counts, neurons in neural networks and in the brain are only very superficially similar concepts, so comparing them is beyond meaningless. As for energy efficiency, a trained neural network is typically reasonably cheap to execute, it's the training portion that takes either time or energy. I would expect a dedicated chess engine to be more energy efficient than a human (obviously humans are flexible).
Comments.UserDisplayName: David Mulder
Tags: <engines><online-chess><programming>
Title: What prevents chess engines from being undetectable?
ThreadText: # What prevents chess engines from being undetectable?
  
  (Asked by: username_0 on 2020-11-09)
  
  I see accounts of people getting banned from sites like chess.com for using engines like Stockfish and Komodo (I admit I have used these engines before, but never in an actual match). Now, I believe there are certain characteristics of these engines that make them easy to detect. One I heard is the way you move the King, as well as every move being the best move possible (This one could be wrong). But I was thinking... couldn't chess engines not do the things that make them detectable, like play Kings less randomly, play sub-optimal moves in between optimal ones, etc, and become basically, as far as I can notice, undetectable? Is there anything about the way they are programmed that make this impossible or is this because of legality and morality?
  
  **Tags:** engines, online-chess, programming
  
  > **Comments:**
  > **username_1**: @J... Failing the turing test in general is indeed about being 'intelligent' enough, failing to not be identified has more to do with replicating the same human 'stupidity' in the same way.  
  > **username_1**: Human stupidity isn't a particularly efficient heuristic in a typical Turing test. And the best chess engines aren't based on brute force anymore anyway, but something more akin to analysis (alphazero is a neural network). Regardless I put 'intelligent' and 'stupidity' between quotes because they are inadequate terms, maybe I should have called it 'human fallibility', making sure that every action takes as long as it would take a human, making sure that the errors that are made are of consistent style, etc.  
  > **username_1**: @J... https://chess.stackexchange.com/a/32880/2947 answer expresses my own believes why Chess Engines can be identified. As for neuron counts, neurons in neural networks and in the brain are only very superficially similar concepts, so comparing them is beyond meaningless. As for energy efficiency, a trained neural network is typically reasonably cheap to execute, it's the training portion that takes either time or energy. I would expect a dedicated chess engine to be more energy efficient than a human (obviously humans are flexible).  
  
  ---
  
  ## 6 answers
  
  ### Answer by username_12 on 2020-11-09. Score: 31 | Accepted answer
  
  1. Engines have no concept of natural moves and they have no fear. An engine will play for the most advantage, not for the most manageable advantage, even if it allows a fierce attack, because it sees that the attack does not work, while a human would probably prevent an attack and settle with a smaller, but practical advantage.
  2. "Randomly" picking good moves is not easy. The second best move may only be second best if you see a very hard ONLY MOVE which comes 15 moves after. And sometimes, the best move is very obvious, and playing the second best move would be very suspicious.
  3. It is not very known how engine detections on chess websites work, but I have read that they also account for playstyle inconsistency (ultra-aggressive to defensive, even though an aggressive move is available and not much worse), mouse movement, time management.
  
  > **Comments:**
  > **username_13**: The third point is very important: There is no simple "one size fits all" set of measures that would universally camouflage engine use for every user. For 100% "protection", each cheater would basically need their own tailor-made anti-detection profile, trained with hundreds of their own games to play just like them themselves but a *little* stronger. Not very feasible.  
  > **username_14**: @username_13 Feed a collection of 5 or so suggested moves into the engine, get them back ordered according to how good the engine thinks they are.  (Not so good for blitz of course)  
  > **username_0**: Do you think advancements in AI can help chess engines to bypass all 3?  
  > **username_15**: @username_0 Certainly it could, but at the same time the websites will also be improving their anti-cheat detection as well.  
  > **username_16**: @username_13 great point. Chess playing style (timing, decision making etc) could be an unique as hand writing  
  > **username_8**: I agree with the inconsistency part. I remember a friend and I were playing on Lichess and he got banned (or warned) because he was playing very aggressively originally and then decreased his aggression to give me a chance because I am not nearly as good as him.  
  > **username_17**: I can give an AI fear.  
  > **username_11**: If I would cheat, I would use the engine only in critical cases. If I play 50 steps as usual, among them 3 ones which were the steps of a program, I think nothing would be seen by any detector.  
  
  ---
  
  ### Answer by username_6 on 2020-11-09. Score: 16
  
  One very obvious indication for people using engines is, that they need roughly the same time for every move (usually about 5s in blitz games), even for the most obvious ones, which could be premoved. They also have much worse ratings in faster time controls (bullet). One example: <https://youtu.be/rlxHusHfpck>
  
  > **Comments:**
  > **username_7**: On the opposite, I once made a mistake losing the queen in a quick game online, something a computer "sees" immediately (most other moves are pruned quickly) and it took the "opponent" 0.3 second to take it. A human, even seeing quickly the completely unexpected (and not anticipated = no premove) mistake would need at least 1.5~2 seconds to take it. A very fast move that shows, anyway, that the opponent is a comp  
  > **username_6**: @e2-e4 You should take a look at one of this HyperBullet/UltraBullet tournaments on Lichess.  
  > **username_8**: As the chess engines usually used are a handful, it is possible that websites could be comparing the move made by the player with the move made by an engine at the same position. If the moves are consistently the same, then it is quite obvious that an engine is being used.  
  > **username_6**: @username_8 It's not that simple. If you would do that, you would accuse every top player who memorized 30+ move variations up to e.g. a forced draw of cheating.  
  > **username_9**: @username_6: Those show the reaction times of players prepared and hyper-focused for such a fast game.  Seeing the same reaction times in a non-blitz game is still a pretty big red flag.  
  > **username_6**: @username_9 e2-e4 was talking about a "quick online game" so I assume it was a blitz game. I'm making moves regularly in times below 1.5-2s during blitz games (and usually regret them regularly as well). I seriously doubt you can accuse someone of cheating, because he took your queen in a time below 1s. Even if you could, this would be an indication that you play against a bot, not someone using an external engine.  
  
  ---
  
  ### Answer by username_2 on 2020-11-10. Score: 12
  
  Some of those things are possible in theory. Especially if you have a good idea what an engine-detector is looking for, you could maybe do some machine-learning training of algorithm against algorithm until you had one that could make good moves that didn't get detected as different from a given player's normal play.
  
  **But that would require someone to be interested in spending a *bunch* of effort to make software whose main use-cases included letting people cheat undetectably**. Most people actively don't want that and would avoid doing so, even though there might be other uses (like for training, to play against a human-like opponent, if it's good enough to *really* play human-like, not just sneak under the anti-cheat radar).
  
  So I think a significant part of what prevents that from happening is the ethics / moral code of many software developers. Or that **for most people it's a somewhat less interesting goal** than making a strong chess engine by any means possible. Not purely technical challenges *if* someone set that as a goal.
  
  OTOH I could imagine some people might be curious to see if they could teach an engine to play more like a human, or play more like a *particular* human. And/or as @username_4 mentions, as a training opponent. That could make for some interesting research, although the danger of cheaters weaponizing the results would hopefully deter many researchers from pursuing it.
  
  > **Comments:**
  > **username_3**: The caveat is that the whole point of cheating is to "win", but once you make your moves undetectable (mimics a real player), then you probably won't be winning with the same level of consistency.  
  > **username_2**: @username_3: Right, but you can still win significantly more than you were before, and put your rating on an upward trajectory as you at least avoid blunders, for example.  
  > **username_4**: Good points, but software that plays very much like a human would be useful for other things besides cheating, it could be useful to play training games against, for example, so there could be an incentive to develop it.  
  > **username_2**: @username_4: Good point, that's a stronger factor in the plus side than what I'd thought of.  But only if it's *really* human-like, not just fooling an automated cheat-detection system.  Anyway, updated my answer to include that, thanks.  
  > **username_5**: i think you have the right idea but... in esports (other esports? lol)  like csgo, there are hundreds of sites dedicated to cheating. i have a feeling there may be a few such sites similar dedicated to chess cheating but ultimately i think it would end up the same as csgo: for every cheat, the csgo peeps will eventually improve their systems to counter the cheat. i have a feeling the case is similar to chess except i think it's much less difficult to counter cheats in chess as compared to games like csgo. idk.  
  > **username_2**: @username_5: Chess being turn-based makes it a lot different from fast-paced games.  Very low-bandwidth.  The only interaction between client and server is a move, and there aren't many moves in a game, and time controls give the player enough time to look at another screen or window between moves so no modification of the client software is necessary. Also, the player already has perfect information about the game state; no wall hacks needed.  Cheat-detection in chess is a lot different from esport games where cheating involves basically hacking software, I think.  
  
  ---
  
  ### Answer by username_10 on 2020-11-10. Score: 5
  
  That's a bit like asking a congregation of people "is everyone here?" and expecting an accurate answer.
  
  There may very well be chess engines that are optimized to fly under the radar of the cheat detection algorithms used at the major sites. But those are not the ones that get exposed and therefore they are not well known.
  
  
  ---
  
  ### Answer by username_3 on 2020-11-10. Score: 4
  
  With the proliferation of machine learning systems and excess processing power, once you have enough play data, you can use readily accessible machine learning algorithms to determine a player's playstyle, and compare their moves against chess engine playstyles.
  
  The exact mechanism and detail are university-level courses, so that isn't something I can explain in detail at the moment, but having access to a large amount of chess play data would make such analysis easily doable for someone in 2nd or 3rd year in computer science or data analytics. Machine learning is accessible enough that I think even a high schooler with particular interest would be able to do the analysis.
  
  > **Comments:**
  > **username_11**: "easily" means here that he would know well, what to develop. The actual development would take from months to years.  
  
  ---
  
  ### Answer by username_5 on 2021-11-05. Score: 0
  
  in esports (other esports? lol) like csgo, there are hundreds of sites dedicated to cheating. i have a feeling there may be a few such sites similar dedicated to chess cheating but ultimately i think it would end up the same as csgo: for every cheat, the csgo peeps will eventually improve their systems to counter the cheat. i have a feeling the case is similar to chess except i think it's much less difficult to counter cheats in chess as compared to games like csgo.
  
  
  ---
  
  