Ways of hiding the reviewer’s identity from the entity being reviewed

Background

Let's suppose I have a platform much like Yelp, but it's only for ONE small town (80k inhabitants) and it only has listings of workers, not businesses.

In such a small town, most people are close in the social network. That means that it's relatively easy for a person to stumble across another.


The problem

If Mary hires John for a job, but then Mary doesn't like the end result of John's work and leaves him a bad review on the platform, how to give Mary the option to hide her identity in order to avoid any awkward situation in the case she stumbles across John? Not only awkward situations but also harassment from John, which is a possibility, am I right?

Why just hiding her name doesn't work:

If John had only one client (Mary) in a long period of time, and then shortly after the job he gets an anonymous bad review, he would do the Math in his head and know the author of the review must be Mary.


My solution

I thought of only releasing anonymous reviews by groups of 2 or more, so that John couldn't know for sure who is the person behind the review.


The questions

Feel free to answer any one (or all) of these.

  • Have you faced a problem like this? How did you solve it?
  • Can you think of ways I can improve my solution?
  • Is this an old problem I'm not aware of? If so, is there any better solution?