Multi-party Computation
Multi-party Computation (MPC) refers to a process where more than a single organization analyzes subsets of data and the results of each are combined to produce a final result. Often MPC relies on sending more than a single piece of information from one organization to the other, but remains unaware (“oblivious”) to what information matches the receiver’s data set.
A simple example is where Alice wants to compare information with Bob, but not disclose Alice’s own information to Bob. By sending an array of data containing true signal and noise and Bob sending back an array of true signal and noise mapped to each item of the array, Alice can gain some knowledge from Bob without either party knowing what true data the other actually had.
The increase in computation cost and increase in processing latency has made MPC applications prohibitive for scaled data processing and especially for real-time decisioning. Moreover, given Alice and Bob are intentionally lying to one another (potentially sending true information and assuredly sending made up data), there is no guarantee that either of them actually send true information to the other.
Finally, even if both parties send only true information if there is very little overlap or very high overlap between their two data sets (e.g., two organizations comparing customer lists), the aggregate count alone confirms this fact. For example, if an airline company wanted to compare a set of its most valuable business travelers with the customers of a credit card company's luxury credit card customer list, the data would be "leaked" to both sides even if only the aggregate count is shared and it was incredibly small or very large.