2

I have started reading

I found the abstract of those these two work to be contraddicting.

  • Are we saying that exchange of secrets is possible and fair exchange is not without a trusted third party?
  • What is the difference of exchange of secrets or just fair exchange?
SEJPM
  • 46,697
  • 9
  • 103
  • 214
graphtheory92
  • 793
  • 5
  • 16

2 Answers2

1

The difference lies in the word "fair."

Fair exchange is the idea that both or neither of parties get the information they want, whereas an exchange that is not fair could result in one party not getting their data. Oblivious transfer is a mechanism that could be used in an exchange to ensure secrecy of which secret they got, but there would need to be a trusted third party to ensure that it was a fair exchange if one of the parties is malicious.

An example: We could say I'm trying to get a secret from you and you are trying to get a secret from me, but everything happens in some kind of order. If I leave after I get your secret and I never send you the final message that reveals my secret to you, the exchange wasn't fair. If we used an oblivious transfer, then you don't know what secret you gave me out of the list of secrets.

If there is some kind of external force, like a legal contract or maintaining my reputation or a desire to remain a member of the protocol, then I may feel compelled to give you my secret, which we could do obliviously using oblivious transfer. If there is a trusted third party, then they can be a middle man, making sure that they are in possession of the critical messages required for the secret exchange before giving either party their message.

Even without Fair Exchange with malicious parties, Oblivious Transfer is still useful for basic information swaps in the realm of semi-honest protocols, like the exchange of information between hospitals.

One thing that is interesting is that the trusted third party doesn't even need to really be aware they are acting as such in some circumstances. An example of this is Atomic Swap in the cryptocurrency world, where the transfer of assets requires the release of a transaction that gives a secret to another person, which can then be used to get assets from another blockchain. In this case, the blockchain acts like a trusted third party without any awareness that they took part in the protocol.

Zarquan
  • 355
  • 1
  • 10
0

If two parties exchange messages and we would like at the end of exchange either both parties can learn the secret or both parties can not, it is easy to prove this is impossible.

For any such exchange there is a last message, the sending party doesn't learn anything if we drop it and the other party must still be able to learn the secret. If continue we end up with a 0 message protocol and this obviously can't be done.

However the above proof falsely assumes at every step we are in a binary state of either can or can not find the secret. A more realistic model is we can always find the secret with some computational effort.

We can therefor have a protocol where in each round the computational cost is reduced for both sides slightly e.g by revealing part of a key protecting the secret. And providing proof in each round we are indeed compliant.

If one party breaks off the exchange early, they will have a slight advantage over the other party but won't be in a position where they got everything and the other side nothing.

Meir Maor
  • 12,053
  • 1
  • 24
  • 55