Secure Multi-Party Computation (SMPC)

Secure Multi-Party Computation is a cryptographic technique that enables multiple parties to jointly compute a function over their inputs while keeping those inputs private.

Secure Multi-Party Computation (SMPC or MPC) is a subfield of cryptography that allows multiple parties to collaboratively compute a result from their combined data without revealing their individual inputs to each other. This enables privacy-preserving computation in scenarios where parties don't fully trust each other.

Key protocols include Yao's Garbled Circuits (for two-party computation), secret sharing schemes (Shamir's, additive), and more recent developments like SPDZ and Overdrive that offer malicious security. The computation is distributed so that no single party ever sees the complete data.

In blockchain applications, SMPC is used for threshold signatures (no single party holds the full private key), private smart contracts, decentralized custody solutions, and privacy-preserving oracles. It's particularly valuable for institutional custody where multiple parties must authorize transactions.

Challenges include communication overhead (parties must exchange messages), computational cost (operations are slower than plaintext), and complexity of implementation. However, recent advances have made SMPC increasingly practical for real-world applications.

        graph LR
  Center["Secure Multi-Party Computation (SMPC)"]:::main
  Pre_asymmetric_encryption["asymmetric-encryption"]:::pre --> Center
  click Pre_asymmetric_encryption "/terms/asymmetric-encryption"
  Pre_digital_signature["digital-signature"]:::pre --> Center
  click Pre_digital_signature "/terms/digital-signature"
  Rel_homomorphic_encryption["homomorphic-encryption"]:::related -.-> Center
  click Rel_homomorphic_encryption "/terms/homomorphic-encryption"
  Rel_zero_knowledge_proof["zero-knowledge-proof"]:::related -.-> Center
  click Rel_zero_knowledge_proof "/terms/zero-knowledge-proof"
  Rel_confidential_computing["confidential-computing"]:::related -.-> Center
  click Rel_confidential_computing "/terms/confidential-computing"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Explain Like I'm 5

Imagine 10 friends want to know their average salary without anyone revealing exactly how much they make. They use a special magic box where everyone drops a secret piece of paper. The box tells them the average, but no one—not even the box—knows who wrote what.

🤓 Expert Deep Dive

## MPC vs. FHE vs. ZKP
- MPC: Multiple parties talk to each other to find a result (Interactive). Best for shared custody and joint analysis.
- FHE: One party does math on encrypted data (Non-interactive). Best for outsourcing data to a cloud and getting a result back.
- ZKP: One party proves they know something to another (Non-interactive/Interactive). Best for verifying identity or transaction validity without showing the data.

🔗 Related Terms

📚 Sources