# Which party have to be online during garbled circuit-based MPC protocol?

Suppose that Alice, Bob and Charlie want to compute some functions without revealing each input to the function one another. We can construct the protocols using garbled circuits by multiple communications among the three parties.

Assuming all the parties are semi-honest, which party do we need to let be online in the following setting?

The function $f$ is evaluated by taking the input values from Alice and Bob. After the communication between Alice and Bob, we get some result $a$ in Bob's hand (but Bob does not know exact value of $a$).

The function $g$ is evaluated by taking the input values from Bob and Charlie. Bob takes as input $a$ to $g$.

Cleary, during the evaluation of $f$, Alice and Bob must be online. Must Alice be online during the evaluation of $g$?

• It depends on the number of corrupted parties. If two parties collude, it seems almost impossible to let any party be offline. – redplum Apr 8 '18 at 1:25
• Nice suggestion. For simplicity, every party is semi-honest. I've appended the description. – mallea Apr 8 '18 at 6:05

Alice can construct a garbled circuit for $f$, send to Bob the keys corresponding to her input, and use oblivious transfers to let him learn the keys associated to his input. After that, she can go offline. Bob can then locally compute his output $a$ (meaning, he does not have to be online during this part of the computation). Then, he plays with Charlie the same way Alice played with him: he must be online to send to Charlie a GC, some keys, and execute oblivious transfers. Both can go offline after that, and Charlie can locally compute his output.