I couldn’t sleep last night so there’s got to be a better title
Alice and Bob (and maybe even Charlie!) want to find common preferences. However, they’re each ashamed of some of their preferences.
Each are only comfortable with another knowing a preference of theirs if that preference is shared by everyone at the table. They also don’t want gossipy Mallory to run a third-party check for them - this has to be possible without trusting anyone or any program with access to the secret data of others. Assume Alice and Bob may be tempted to try and find each others’ secret preferences.
For example:
-
Alice likes
Anime, Comedy, Fantasy, Romance, Thriller -
Bob likes
Anime, Drama, Horror, Romance, Thriller -
Alice is worried Bob will judge their interest in
AnimeandFantasy -
Bob is scared Alice will judge their interest in
Romance -
But both are fine with the other knowing if they are both interested.
Both will discover a mutual interest in Anime and Romance, but Bob will never deduce Alice’s secret interest in Fantasy.
I am interested in both same-room mechanical solutions (such as overlaying sheets of paper with non-preferences painted out, then shining a light through the stack) and online client-server solutions where the server cannot figure out each answer (such as being given an unlabelled ordered set to compare, where Alice and Bob each have the labels - like return {1,1,0,1,0,1,1} AND {1,0,1,0,1,1,1}).


Yeah, won’t that always be a problem if only 2 people are involved? One person can just indicate all preferences and immediately discover what the other person’s are.