Secure Multiparty Computation (MPC)
Takeaway
MPC lets parties compute a function on their private inputs without revealing them, learning only the output.
The problem (before → after)
- Before: Joint analytics require pooling raw data, violating privacy and compliance.
- After: Parties contribute encrypted/shares; protocols compute outputs securely under defined threat models (semi-honest or malicious).
Mental model first
Imagine each person holding a piece of a puzzle; only when all pieces are combined do you see the picture, yet no one ever sees others’ pieces alone.
Just-in-time concepts
- Secret sharing (Shamir), garbled circuits (Yao), OT, additive shares.
- Security models: semi-honest vs malicious adversaries.
- Preprocessing: Beaver triples accelerate arithmetic circuits.
First-pass solution
Choose representation (Boolean vs arithmetic); compile function into gates; run protocols (GC/OT or secret-sharing based) with preprocessing for efficiency.
Iterative refinement
- Hybrid with HE and TEE for best-of-all-worlds.
- Circuit optimizations: depth, communication rounds, and batching.
- Differential privacy on outputs to mitigate leakage.
Principles, not prescriptions
- Match protocol to function structure and network conditions.
- Define threat model and trust assumptions upfront.
Common pitfalls
- Side-channel leaks from timing or abort patterns.
- Incorrect output handling leaks too much information.
Connections and contrasts
- See also: [/blog/homomorphic-encryption], [/blog/zero-knowledge-proofs], [/blog/differential-privacy].
Quick checks
- Why preprocessing? — Moves heavy crypto offline to speed up online phase.
- When garbled circuits? — Boolean logic-heavy tasks or two-party settings.
- When secret sharing? — Arithmetic-heavy tasks with many parties.
Further reading
- Yao (1986); Goldreich; modern MPC frameworks