I am reading an introductory paper on multi-party computation (MPC), and it makes a distinction between outsourced computation and MPC.

In an outsourced computation, one party owns the data and wants to be able to obtain the result of computation on that data. The second party receives and stores the data in an encrypted form, performs computation on the encrypted data, and provides the encrypted results to the data owner, without learning anything about the input data, intermediate values, or final result. The data owner can then decrypt the returned results to obtain the output.

After reading this, I found outsourced computation and its difference to MPC is not quite clear. In MPC, parties can send their encrypted data to a trusted third-party to compute a result that then gets delivered back to them. This seems like what was described above, no?

My thoughts to justify the difference include:

  • Perhaps outsourced computation only involves two parties, the data provider and the data processor
  • Perhaps outsourced computation does not require the individual to send encrypted data to the second party

In summary, what is the difference between MPC and outsourced computation?

  • $\begingroup$ I think it should be secure outsourced computation, outsourced computation can be performed without security. In MPC setting, some parties can be honest, some semi-honest, some malicious and some covert adversaries. $\endgroup$
    – kelalaka
    Sep 27, 2019 at 16:12
  • $\begingroup$ By "send encrypted data", do you mean: requires a confidential channel between the parties? $\endgroup$ Sep 27, 2019 at 23:07

1 Answer 1


About outsourced computing: under a security viewpoint, there is no challenge in trusting a thirty party and give him all responsibility on doing the task in secrecy and return the output the the parties. Trust a central party is all everyone doesn't want. So security isn't a problem when you trust someone.

Secure multi-party computation: in the most classical view, with secure MPC we have n parties entering their correspondent inputs (in secrecy), and get their correspondent output(s) (when it is the case) (in secrecy). The challenge here is the inexistence of a trusted party, and all we want is that a protocol makes the role of that trusted party, giving the guarantees that trusted party could provide.

For example, we can consider some security level of a digital version of an election: think about some computer that we can trust, in a hypothetical idealized world, realizing the election function. Your challenge is: how can you construct a (distributed) protocol that runs among the parties, and that gives all the security guarantees that trusted computer could provide to the electors.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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