Безопасные многосторонние вычисления (SMPC)

Вычисления на закрытых данных.

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["Безопасные многосторонние вычисления (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;

      

🧒 Простыми словами

🤝 Представьте, что трое друзей хотят узнать свою среднюю зарплату, но не хотят говорить друг другу, сколько именно они зарабатывают. Они могут использовать MPC: каждый разбивает свою зарплату на три случайные части и дает по одной части каждому другу. Каждый складывает полученные части и говорит только сумму. Сложив эти три суммы, они получат правильную среднюю зарплату, так и не узнав ничьей конкретной цифры.

🤓 Expert Deep Dive

SMPC базируется на двух техниках: Схемы разделения секрета (например, Шамира) и Искаженные схемы (Garbled Circuits). В блокчейне MPC стал стандартом для институционального хранения активов. Вместо одного приватного ключа создаются пороговые подписи (TSS). Ни один сервер никогда не имеет ключа целиком, а для подписи транзакции требуется сотрудничество определенного количества серверов (например, 2 из 3).

🔗 Связанные термины

Предварительные знания:

📚 Источники