I'm thinking of the problem of a distributed tinder: a network of peers, who want to match with each other confidentially.

The solution I'm thinking about is something along the lines of Alice sending some message encrypted with Bob's public key that implies she likes him. She will not send this message to Bob obviously because she doesn't know if he likes her yet. So instead she will send it to Carrol, who is a peer with hash closest to Alice+Bob public keys.

In order for Alice and Bob to stay anonymous, Carroll will receive the message through several relays, aka onion routing.

Bob does the same thing. The result is that Carrol gets two messages she can't read and needs to decide what to do with them.

The messages, although encrypted, should somehow* match together and then be sent back through the relays, each side getting the other side's message, at which point they can communicate directly.

*I am missing the cryptography primitive to enable this puzzle ability.

  • $\begingroup$ Bob can mount a sybil attack. He can register an account for each person that he likes, and brute-force a choice of public key that will very closely match the hash of his + the other person's public key. Now he will be the one receiving the message from Alice. $\endgroup$
    – knaccc
    Sep 15 at 10:22
  • $\begingroup$ You might be interested in oblivious transfer. $\endgroup$
    – Lev
    Sep 15 at 22:39


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.