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?