I'd be curious to know about the cheating rate on chess.com. I'd expect at lot of people to cheat occasionally, e.g. kids with too much time on their hand, people trying to "fix" their ranking, or getting a bit of help when they play against their friend and so on...
And also... who cares? there are no stake, just playing against random people, who cares if they cheat as long as you have fun playing. It's less fun for the cheater, but doesn't impact non-cheater.
Since chess.com ranks similar players against each other, and I'm not planning on tournament play at all, I actually wouldn't care in the slightest if I played someone who was consistently cheating. That would mean I'm playing a hybrid human/computer instead of a pure human, but I'd still be playing someone with a consistent ranking and it would still in some sense be a fair fight.
I would be upset if someone was inconsistently cheating, and so I'm playing someone nominally at 1400 but for this game they're actually playing 2100.
Of course for true tournament play, the rules are the rules, whatever they may be, and they must be followed for it to have any meaning.
This is actually what lichess does - if it flags you as a cheater, you are silently paired against other cheaters.
They have almost the entirety of the lichess system source code publicly available, but from what I can gather they have a private set of weights on inputs - I assume to prevent cheaters from fully reverse-engineering the system.
I think it is an interesting question. Aside from consent, playing against an anonymous cheater is indistinguishable from playing against a better player. Presumably people are elo matched so it should not matter
It is definitely not indistinguishable, both because "someone with this rating shouldn't be winning like this" and because engine moves look very different than human moves, especially at lower ratings.
At top levels it gets closer -- often human play is compared to engine play and people will discuss which moves were 'engine-like' vs 'human', and a significant achievement would be to play the engine moves on every turn. Although it should be said that engine moves are not always necessarily the best moves positionally, nor the moves with the highest win % versus a human (because you can 'trick' a human, whereas the engine can't trick itself so it will never prefer a move like that)... but they are always the best moves tactically.
In middling ratings, if I was allowed to look at the engine (in a Lichess replay for instance) I'd guess I can tell a player using the engine with 99+% accuracy. People _always_ lose on tactics (or misplayed opening lines, misplayed endgames, etc). Engines never do. At high ratings I assume this goes down, especially if the players are playing 'boring' draw-ish lines, in which the best moves are fairly obvious most of the time.
Thanks for breaking down how this would actually work in practice. As an amateur player, I don't think I personally would be able to tell the difference between playing a much better player and a good bot, or a bad player and a bad bot.
And also... who cares? there are no stake, just playing against random people, who cares if they cheat as long as you have fun playing. It's less fun for the cheater, but doesn't impact non-cheater.