The problem of cheating has been addressed many times in blog entries, many cheaters being reported. However, it seemed to me that few solutions were actually given.
Therefore, I want to share my thoughts about how codeforces could prevent such behavior in the future: I think that, besides automated check (which also probably could be improved), there should be some sort of report mechanism, through which anyone could report a user for cheating — this could be implemented as a simple report button beside a standings line. Adding a short text or an image/link to an image to the report could also be an option.
These reports could be handled by some trustworthy members of the community (high rated/contributing users). Even some sort of two-step verification could be implemented: after the first filtering of the trustworthy users, there could be a final check by someone from the codeforces staff (The first filtering phase will most probably reduce the quantity of reports). Some automation to this process could also be implemented: If some user receives a large number of reports, then he will be automatically considered cheater.
Finally, after a user's participation in a contest has been decided as cheating, I think some action must be taken (beside just eliminating him from that contest). One example could be automatically decreasing his rating (or contribution) by some value, or having a "1 rated contest ban", meaning that his next contest will not affect his rating, or implementing a new thing just like contribution and rating, measuring the honesty of the user.(Personally, I tend to be against the latter, unless it provides some sort of mechanism for "rehabilitation").
I know that this system has also some flaws, like: It is hard to remove cheaters from past contest (if the rating was already calculated, if you remove a single user it affects the rating changes of all other users by some small value). Also, for new contests, it will require some delay between the testing phase and the rating changes, a phase in which the system is expecting the reports from regular users (as the ones that are written in blogs after contests).
What are your thoughts about the solutions that can actually be implemented in order to find and discourage cheaters?
PS. I know there are a lot of blogs exposing cheaters, but in a quick search I could not find a blog talking about solutions. There were several solutions proposed in comments, but I don't remember in which blogs they were posted. Also, from what I remember, most of the solutions were about some automated check of copied solutions. Probably some similar solution to the one posted above was also posted before, but I cannot remember.