秘密計算(SMPC / Secure Multi-Party Computation)
セキュア・マルチパーティ計算は、複数の当事者がそれぞれの入力を秘密にしたまま、その入力に対する関数を共同で計算できるようにする暗号技術です。
セキュア・マルチパーティ計算(SMPCまたはMPC)は、複数の当事者が個々の入力を互いに明かすことなく、結合されたデータから共同で結果を計算することを可能にする暗号学の分野です。これにより、当事者が互いに完全に信頼していないシナリオにおいて、プライバシーを保護した計算が可能になります。
主要なプロトコルには、Yaoのガーブルド・サーキット(2者間計算用)、秘密分散スキーム(シャミア、加法的)、および悪意のある攻撃に対するセキュリティを提供するSPDZやOverdriveなどの最近の開発が含まれます。計算は分散され、単一の当事者が完全なデータを見ることはありません。
ブロックチェーンアプリケーションでは、SMPCは閾値署名(単一の当事者が完全な秘密鍵を持たない)、プライベートスマートコントラクト、分散型カストディソリューション、およびプライバシー保護オラクルに使用されます。複数の当事者が取引を承認する必要がある機関投資家のカストディにとって特に価値があります。
課題には、通信オーバーヘッド(当事者がメッセージを交換する必要がある)、計算コスト(平文よりも操作が遅い)、および実装の複雑さが含まれます。しかし、最近の進歩により、SMPCは実世界のアプリケーションにとってますます実用的になっています。
graph LR
Center["秘密計算(SMPC / Secure Multi-Party Computation)"]:::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;
🧒 5歳でもわかるように説明
「自分の給料を誰にも教えずに、10人の平均給料を知りたい」という時に使います。魔法の箱にみんながこっそり数字を入れると、箱は平均だけを教えてくれます。誰がいくら入れたかは、他の人はもちろん、箱自身もわからないようになっています。
🤓 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.