Calcul multipartite sécurisé (SMPC)
Le calcul multipartite sécurisé est une technique cryptographique qui permet à plusieurs parties de calculer conjointement une fonction sur leurs entrées tout en gardant ces entrées privées.
Le calcul multipartite sécurisé (SMPC ou MPC) est un sous-domaine de la cryptographie qui permet à plusieurs parties de calculer collaborativement un résultat à partir de leurs données combinées sans révéler leurs entrées individuelles les unes aux autres. Cela permet un calcul préservant la confidentialité dans des scénarios où les parties ne se font pas entièrement confiance.
Les protocoles clés incluent les circuits brouillés de Yao (pour le calcul à deux parties), les schémas de partage de secret (Shamir, additif) et des développements plus récents comme SPDZ et Overdrive qui offrent une sécurité contre les acteurs malveillants. Le calcul est distribué de manière à ce qu'aucune partie unique ne voie jamais les données complètes.
Dans les applications blockchain, SMPC est utilisé pour les signatures à seuil (aucune partie unique ne détient la clé privée complète), les contrats intelligents privés, les solutions de conservation décentralisée et les oracles préservant la confidentialité. C'est particulièrement précieux pour la conservation institutionnelle où plusieurs parties doivent autoriser les transactions.
Les défis incluent la surcharge de communication (les parties doivent échanger des messages), le coût de calcul (les opérations sont plus lentes qu'en texte clair) et la complexité de mise en œuvre. Cependant, les progrès récents ont rendu le SMPC de plus en plus pratique pour les applications du monde réel.
graph LR
Center["Calcul multipartite sécurisé (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;
🧒 Explique-moi comme si j'avais 5 ans
Calculer une moyenne sans dire ses secrets.
🤓 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.