So if my friend and I both know something that the other wants, how can we transfer this information without any chance of one of us betraying the other and not telling (for example, exchanging notes and one of us not writing anything). You cannot use a third-party to determine whether the information is valid.

Note: I don't know this


closed as too broad by JMP, Gamow, Rand al'Thor, feelinferrety, Glorfindel Sep 19 '17 at 14:54

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • $\begingroup$ how likely are you and your 'friend' to lie to each other? $\endgroup$ – JMP Sep 19 '17 at 9:46
  • $\begingroup$ Very unlikely, but the point is to completely eliminate the chance of treachery. $\endgroup$ – Tobu Sep 19 '17 at 10:55
  • 1
    $\begingroup$ If A knows X and B knows Y, the goal is to get X to B and Y to A. Does B have any way to verify that X is in fact the correct information? What is to stop A from sending Z instead? Ideally, you'd want a guaranteed way for both A and B to be satisfied. $\endgroup$ – Trenin Sep 19 '17 at 14:14

Each of you is kept in a cell with nothing but a button. When both buttons are pressed, the doors to both cells will open. Nothing will happen when only one button is pressed. Between the two cells is a small grille, allowing verbal communication (or you have a pen, paper and a small letter slot, if writing is preferred).
When you are satisfied that you have received the required information, press the button. Your friend will do likewise, and both of you go free with the information. If one of you withholds the data, the other won't press the button, and thus neither of you go free.


It is a help to visualize the problem using mathematics instead of words.

Let our friends be Bob and Alice. A has the information set X that B wants to know, and B correspondingly knows Y.

The transaction is complete when A knows Y and B knows X.

We are assuming in this question that if either half of the transaction occurs before the other half, the successful party rescinds on the agreement, and the transaction is incomplete.

This means the conclusion of both information set transfers must be simultaneous, and a simple, reliable method for this is to use a series circuit in proxy.

Once this is achieved, A and B need to validate the information they have received. This requires mutual consent, and again a series circuit suffices to enforce the conditions.

  • $\begingroup$ Doesn't the need for validation mean that neither party can abandon the transfer after the first stage? That would mean you'd only need one round with the series circuit, rather than two. $\endgroup$ – LogicianWithAHat Sep 20 '17 at 7:35
  • $\begingroup$ not if one of them 'just opens up' $\endgroup$ – JMP Sep 20 '17 at 7:37

Not the answer you're looking for? Browse other questions tagged or ask your own question.