Coin flipping

Alice and Bob want to flip a coin (by telephone in Manuel Blum's 1981 paper) to decide who wins (in Blum's paper, who gets the car after a divorce).

Actually, each one flips a coin and if the came out equal (two heada or two tails) Bob wins.

How can this be done fairly and withou cheating when the two are far apart?.

Using computers: square roots of quadratic residues!

  1. One of the two, say Bob, selects two large random primes pp and qq of the form 4k+34k+3 (Blum primes!) and then computes n=pqn= pq. He then sends nn to Alice.

  2. Alice chooses a random bb and sends a=b2modna = b² mod n to Bob.

  3. Bob computes the 4 square roots ±x\pm x and ±y\pm y of aa, chooses one of them, let us call it rr, and sends it to Alice.

  4. Alice checks if ±r=b\pm r = b. If so, then Bob wins. If not, he loses.

  5. Alice proves her claim by disclosing bb. (Observe that if Alice does not like the outcome she may simply do not finish the execution of this protocol, but that would be cheating)

To flip mm coins, do step 2. mm times, then step 3. mm times and so on. It has to be done in this way because as soon as Alice receives the square roots from Bob she will likely be able to factor nn (and so be able to change her choice of the bb).

Last updated