secure multi-party computation
**SMPC** (Secure Multi-Party Computation) is a **cryptographic protocol that enables multiple parties to jointly compute a function on their private inputs without revealing those inputs to each other** — allowing collaborative ML training or inference without exposing any party's sensitive data.
**SMPC for ML**
- **Secret Sharing**: Split each value into shares distributed across parties — no single party can reconstruct the value.
- **Garbled Circuits**: Transform the computation into encrypted boolean circuits that parties evaluate without seeing intermediate values.
- **Oblivious Transfer**: One party selects a value from another party's inputs without revealing which value was selected.
- **Inference**: Run neural network inference on encrypted data — the model owner doesn't see the data, the data owner doesn't see the model.
**Why It Matters**
- **Privacy**: Multiple fabs can jointly train a model on their combined data without sharing proprietary process data.
- **Correctness**: SMPC guarantees correct computation — the result is the same as if all data were pooled.
- **Overhead**: SMPC is computationally expensive — 100-1000× slowdown compared to plaintext computation.
**SMPC** is **computing on private data together** — enabling collaborative ML without any party revealing their sensitive data.