Безпечні багатосторонні обчислення (SMPC)
Безпечне багатостороння обчислення (SMPC) — це криптографічна технологія, яка дозволяє кільком сторонам спільно обчислювати функцію на основі своїх вхідних даних, зберігаючи ці дані конфіденційними.
Безпечне багатостороння обчислення (SMPC або MPC) — це підгалузь криптографії, що дозволяє кільком сторонам спільно обчислювати результат на основі їхніх об'єднаних даних без розкриття індивідуальних вхідних даних одна одній. Це уможливлює збереження приватності обчислень у сценаріях, де сторони не повністю довіряють одна одній.
Ключові протоколи включають спотворені схеми Яо (Yao's Garbled Circuits) для двосторонніх обчислень, схеми розподілу секрету (Шаміра, адитивні) та новіші розробки, як-от SPDZ та Overdrive, що забезпечують захист від зловмисників. Обчислення розподілено так, що жодна сторона ніколи не бачить повних даних.
У блокчейн-додатках SMPC використовується для порогових підписів (жодна сторона не володіє повним приватним ключем), приватних смарт-контрактів, рішень для децентралізованого зберігання (custody) та оракулів зі збереженням конфіденційності. Це особливо цінно для інституційного зберігання, де транзакції повинні авторизувати кілька сторін.
Виклики включають накладні витрати на комунікацію (сторони повинні обмінюватися повідомленнями), обчислювальну вартість (операції повільніші за звичайні) та складність впровадження. Проте останні досягнення зробили SMPC дедалі практичнішим для реальних застосувань.
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).