However the most obvious cheaters are more easily given away by time between moves. When they take the same time between every move whether it be a deep positional move or an obvious recapture, you can be quite sure something fishy is going on. Sometimes they can have literally 1 legal move and still take 10 seconds to find it.
A good player using an engine sparingly however would be very difficult to spot in online chess, especially in a single match.
Note: I have not cheated myself, but I can definitely see a way it can be done. I'm not sure if it would be good of me to describe the process of course... Just think what input you can have and what output you can get if you were to do this programmatically and you can very well imagine if it's possible, there are also existing tools for that. You don't have to open a chess engine in another window and manually do the movements, if you know how to script.
In bullet, I think may be, you could technically even use something to do "anti blundering", meaning you will blunder a lot less, because engine will just check whether it would be an obvious blunder, and block your move. May be you just allow few blunders, and I imagine it would be undetected. Sorry, again for brain storming about that. It is fascinating topic though. Engine could be running on a lower depth and it could be more sort of positional engine that does not do magical engine moves, but is trained on human players and using neural network mostly. Maybe it will just help you do theory openings. And you won't be able to charge anyone for cheating for following opening theory.
I also think the cheating detection algorithms can be beated, and I believe I could do that. Why do they still serve their purpose, more often than not?
To me, it's inherently linked to the very nature of online cheating. It's essentially a futile, nonsensical activity. The only gratification is an illusion of intellectual superiority, whose worthlessness is so transparent that it can only attract people who don't get to experience the sense of intellectual superiority pretty much anywhere else. As harsh as it may sound, your average cheater is rather stupid. That's why it isn't really difficult to catch 90% of them.
I don't rule out there are some cheaters who do it out of intellectual curiosity, but that would be a statistical outlier.
For real ranked matches, participants must have 360 webcams and so on showing they aren't cheating
Perhaps a nit-pick: they need to discover the legal move, and discover that no other moves are possible, right? As a rather basic chess player myself, I can imagine I might spend some time on this depending on the situation.
Of course a beginner would take some time to spot this, but it's unlikely you would confuse a beginner for a cheater, since a beginner will likely make many sub-optimal moves and spend lots of time thinking in general.
* Some cheaters will just 100% match the best engine moves. If a player consistently does exactly what Stockfish would do that's an obvious giveaway.
* Some cheaters will be manually copying moves between the chess website and their engine; in high-speed games ('blitz' and 'bullet' chess) their abilities plummet when there are only a few seconds left on the clock, because they can't copy fast enough.
* Similarly, a player who takes 5 seconds a move whether they're pounding out a basic book opening or making an inspired move in an extremely complicated situation will raise suspicion.
* Some cheaters will just be improbably good for their known background. A few weeks back some billionaire beat five-time world champion Vishy Anand in a charity game (where Anand played a bunch of different games at once) which is the chess equivalent of Mark Zuckerberg outrunning Usain Bolt.
* Chess engines will sometimes make moves that even the top humans fail to see. All the action is happening on the right of the board, and some innocuous move on the left of the board produces a perfectly executed forced mate in 15 moves? Some people will look at that suspiciously.
Of course, a sufficiently careful cheater could cheat without triggering any of these heuristics - a player who only relies on the engine for one or two key moves can easily be undetectable.
Presumably an excellent player might often make the same moves as an engine, so this measure alone isn't going to be perfect. But it could be a starting point. You might also look at the player's historical performance and watch for suspicious changes, or perhaps look for patterns in the time taken to play the move?
The really hard part of chess is what to do in the mid game, once you're off your scripted opening, there is still lots of material, and neither player has any significant vulnerabilities. A computer is useful here.
I don't like giving out ideas here, but I feel like these are obvious ways one could cheat and go undetected.
That would be hard to distinguish from someone memorizing an opening book. So hard to detect.
But sometimes a computer will make odd moves no human would ever make. I've been playing against an ios stockfish app to relearn how to play, and when it gets behind it starts throwing material away to delay the inevitable; a human would more likely keep the material and hope the opponent doesn't see the path to victory.
One way to detect use of an engine is to look for moves like this, though if it could be done algorithmicly then that same algorithm could be used to make the engine play more like a human.