Difference between MPC and outsourced computation 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?
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.