SMPC (Secure Multi-Party Computation) — безопасные многопартийные вычисления простыми словами

SMPC (или MPC, *secure multi-party computation*) — класс криптографических протоколов, позволяющих нескольким участникам совместно посчитать функцию от их приватных данных, при этом никто не раскрывает свои входы другим. На выходе все (или выбранные) участники получают только результат, а приватность входов сохраняется даже при частичном компрометировании сторон.

SMPC (Secure Multi-Party Computation) — безопасные многопартийные вычисления

Это фундамент для: MPC-кошельков и пороговых подписей (TSS) в крипто-кастоди, приватного машинного обучения, приватных аукционов, PSI (Private Set Intersection) и безопасной агрегированной аналитики.

Связанные страницы: FHE (полностью гомоморфное шифрование), zkML (верифицируемый ИИ), AI Security Hub, Guardrails.

Зачем нужен SMPC (Secure Multi-Party Computation)

  • Приватность по умолчанию. Данные остаются у владельцев; протокол раскрывает только то, что требуется функцией.
  • Совместная аналитика между конкурентами. Банки/биржи/медучреждения могут агрегировать метрики, не делясь сырыми данными.
  • Устойчивость к компрометации. Секрет дробится на «доли»; чтобы украсть ключ/данные, злоумышленнику нужно захватить порог участников.
  • Кастоди и операции с ключами. Пороговая генерация/подпись без «единого приватного ключа» в памяти.
  • Соответствие регуляторике. Локальность данных и отсутствие их копирования упрощают аудиты и DPIA.

Как это работает: интуиция

Базовая идея — секрет-шеринг (разделение секрета). Вместо прямого обмена данными участники создают доли (shares) так, что:

  • каждую долю можно хранить/передавать безопасно — изолированно она ничего не раскрывает;
  • по любым t из n долей можно восстановить секрет (t-of-n порог), а по меньшему числу — нельзя.

Поверх разделения строятся операции сложения/умножения/сравнения — из этого «конструктора» собирают произвольные функции (от статистики до подписей).

Модели безопасности

Модель Предпосылка Где встречается
Semi-honest (Honest-but-Curious) Участники следуют протоколу, но пытаются выведать лишнее Исследовательская аналитика, быстрые POC
Malicious Часть участников может отступать от протокола и саботировать вычисления Боевые кастоди/кошельки, финансы
Honest-majority Бóльшая часть честна (например, ≥2/3) Быстрые протоколы агрегации/аналитики
Dishonest-majority Допускается большинство вредоносных Более тяжёлые, но универсальные протоколы (например, SPDZ)

Важно также, кто узнаёт результат (все/лишь один) и нужен ли публичный аудит.

Основные семейства протоколов

1) Секрет-шеринг (аддитивный, полиномиальный).

  • *Аддитивный*: x = x₁ + x₂ + … + xₙ (mod q) — каждая доля случайна, сумма даёт секрет.
  • *Shamir (полиномиальный)*: секрет — свободный член случайного полинома степени t−1, доля — значение в точке; любые t точек восстанавливают секрет (интерполяция).

2) Протоколы на схемах/цепях.

  • Yao Garbled Circuits — двусторонние безопасные вычисления (2PC) через «зашумлённые» логические схемы.
  • GMW — вычисления по булевым схемам с обширным использованием oblivious transfer (OT).
  • BGW — «классика» на базе полиномиального секрета в модели честного большинства.

3) Современные активные линии.

  • SPDZ/Overdrive/MASCOT/Triples — эффективное умножение по модулю через заготовленные *Beaver triples*; часто устойчивы к злоумышленной модели.
  • ABY/ABY3 — смешанные представления (булево/арифметическое/шифротекст) и переключение между ними для эффективности.
  • PSI/OPRF — специальные протоколы пересечения множеств без раскрытия элементов.

4) Пороговые подписи (TSS).

  • Threshold ECDSA/EdDSA/BLS — ключ «рождается» распределённо и никогда не собирается целиком; подпись получается кооперацией t участников.

MPC-кошельки и TSS: в чём идея

В классическом кошельке приватный ключ хранится целиком (одна точка отказа). В MPC-кошельке ключ распределяется: sk = sk₁ ⊕ sk₂ ⊕ … ⊕ skₙ (условно), а подпись (ECDSA/EdDSA/BLS) выпускается совместным протоколом.

Плюсы:

  • Нет единого «секретного файла». Риск утечки/малвэра сильно снижается.
  • Политики утверждения. Порог t можно настраивать (например, 2-из-3: устройство+HSM+офис).
  • Прозрачность ончейн. Для наблюдателя транзакция выглядит как обычная подпись (в отличие от on-chain multisig).

Минусы/нюансы:

  • Сложность реализации. Нужны правильно настроенные протоколы, энтропия, отказоустойчивость.
  • Коммуникационные раунды. Для подписи требуется интерактивность между участниками.
  • Доверие окружению. Компрометация порога устройств даёт злоумышленнику возможность подписывать.

MPC-кошелёк vs Multisig

Критерий MPC (TSS) On-chain Multisig
Видимость ончейн Обычная одиночная подпись (приватность политики) Явная многоадресность/политика в транзакции
Гибкость порога Почти произвольные t-of-n, перенос порога без миграции адреса Жёстко вшито в смарт-контракт/скрипт
Сложность/инфра Криптопротоколы, защищённые каналы, HSM/TEE Контракт/скрипт, меньше криптознаний
Стоимость ончейн Как у обычной транзакции Выше (несколько подписей/логика в контракте)
Единая точка отказа Нет «целого ключа»; но уязвим порог t Нет единого ключа, но конфигурация публична

Оба подхода уместны: multisig — прозрачно и просто; MPC — приватно и гибко.

Классические задачи на SMPC

  • PSI (Private Set Intersection). Найти пересечение множества клиентов двух организаций без раскрытия остального. В крипто — проверки пересечений санкционных/фрод-списков.
  • Приватная аналитика/агрегация. Суммы/средние/частоты без раскрытия индивидуальных значений (KYC-счётчики, антикрут).
  • Приватные аукционы и торги. Выбрать победителя по ставке, не раскрывая проигравшие.
  • Федеративное обучение и secure aggregation. Обновления градиентов суммируются по MPC; сервер видит только агрегат.
  • Пороговые подписи/кастоди. Подпись транзакций/сообщений без «единого ключа»; ротация долей; восстановления.

Пайплайн на примере (t-of-n TSS)

  1. Distributed Key Generation (DKG). Участники совместно генерируют распределённые доли skᵢ и согласуют публичный ключ pk.
  2. Политика. Определяется порог t, роли (оператор/владалец/аудитор), расписания, квоты.
  3. Подпись. Любые t участников запускают протокол подписи (синхронно/асинхронно).
  4. Аудит. Логи попыток подписи, аттестация устройств, ротации долей.
  5. Роллбек. Процедуры блокировки утерянного устройства и восстановление доли.

Плюсы и минусы SMPC в целом

Плюсы Минусы/ограничения
Приватность входов; минимум утечек Сложность реализации и верификации протоколов
Пороговая устойчивость и отсутствие единой точки отказа Коммуникационные раунды, требования к сети/латентности
Гибкие политики доступа (t-of-n) Стоимость вычислений выше, чем «в лоб»
Прозрачность on-chain (для TSS) Операционный риск: резервирование долей, HSM/TEE, инцидент-плейбуки

SMPC vs FHE vs zkML (когда что выбирать)

Задача SMPC FHE zkML
Совместные вычисления между организациями Да (нативно) Можно, но тяжело и медленно Не про совместное вычисление
Приватность входов от исполнителя Да Да По умолчанию — нет (добавляется отдельно)
Публичная верификация результата on-chain Не специализация Не основная цель Сильная сторона
Подписи/кастоди Идеально (TSS) Не применимо Не применимо
ML-инференс Через secure aggregation / смешанные протоколы Да (CKKS/TFHE) Да (доказуемый вывод)

На практике часто используют гибриды: SMPC для распределения доверия, FHE — для вычислений по зашифрованным данным, zk — для доказуемой корректности результата.

Архитектурные заметки (инженерные)

  • Предраспределённые материалы: для умножений по модулю заранее готовят *Beaver triples* (онлайн-фаза быстрее).
  • Переключение представлений: булево ←→ арифметическое (линии ABY) в зависимости от операции.
  • Сетевые SLO: MPC чувствителен к задержкам; планируйте колокацию/каналы/кэширование.
  • Хранилище долей: HSM, смарт-карты, enclave/TEE, аппаратная энтропия, защищённые резервные копии.
  • Логи и аудит: неизменяемые журналы «кто подписал»/«какие доли участвовали», доказуемые утверждения.
  • Откат/ротация: протоколы обновления долей без пересоздания адресов/ключей.

Риски и антипаттерны

  • Склейка долей в одном месте. Любые «удобные» бэкапы, где встречаются ≥t долей, убивают модель угроз.
  • Нет DKG (генерация «центром»). Нельзя генерировать полный ключ и «нарезать» его; нужна распределённая генерация.
  • Слабая энтропия/повторные nonce в пороговой ECDSA — критическая уязвимость.
  • Отсутствие политики отказоустойчивости (что делаем при потере устройства?)
  • «Чёрные ящики» без независимого аудита. Сложные MPC-системы требуют внешних проверок/формальной верификации.

Чек-лист внедрения

  1. Определите модель угроз (semi-honest vs malicious, honest-majority, t-of-n).
  2. Выберите семейство протоколов (секрет-шеринг/SPDZ/ABY/Yao) под ваши операции.
  3. Зафиксируйте сетевые SLO (латентность/пакет-лосс), план колокации узлов.
  4. Настройте DKG и безопасное хранение долей (HSM/TEE/смарт-карты, резервные копии).
  5. Опробуйте инцидент-плейбуки: потеря, компрометация, ротация долей, отзыв доступа.
  6. Введите аудит и журналирование, тесты отказоустойчивости, независимую проверку реализации.
  7. Для кошельков — пропишите политики подписи (лимиты/кворумы/мульти-фактор).
  8. Для аналитики — приготовьте golden-наборы и «санити-тесты», чтобы не сломать корректность.

Мини-пример: PSI для пересечения санкционных списков

Две биржи хотят сверить клиентов на предмет попадания в общий санкционный список, не раскрывая полные базы.

  1. Каждая кодирует список хешами и участвует в PSI-протоколе (на базе OPRF/OT).
  2. Выход — только пересечение (идентификаторы совпадений).
  3. Никакой сторонний пользователь не узнаёт элементы вне пересечения.

Частые вопросы (FAQ)

Чем SMPC отличается от «просто шифрования и отправки данных оператору»?

Оператор при обычном шифровании должен расшифровать, чтобы посчитать. В SMPC никто не видит чужих входов: вычисление происходит над разделёнными долями/«загарбленными» схемами.

Можно ли совместить SMPC и FHE?

Да. Популярны гибриды: часть операций выполняют по FHE (чтобы уменьшить коммуникацию), часть — по SMPC (чтобы ускорить нелинейности), плюс zk-доказательства для публичной верификации.

Насколько это быстро?

Медленнее, чем «в лоб». Но для конкретных классов задач (агрегация, пороговые подписи, PSI) современные протоколы дают практичные задержки при грамотной сетевой архитектуре и предвычислениях.

Зачем TSS, если есть multisig?

Multisig прозрачен, но виден ончейн и менее гибок по порогу/политикам. TSS держит политику оффчейн: на блокчейне транзакция выглядит обычной, а ключ никогда не собирается целиком.

Что будет, если участники пропадут?

Если активно t-of-n, достаточно набрать кворум t оставшихся. Продумайте ротацию долей и «запасні» участники (эскалация по процедурам).

Мини-глоссарий

  • Secret Sharing — разделение секрета на доли; восстановление по порогу.
  • Shamir Sharing — полиномиальная схема порогового секрета.
  • Beaver Triples — заготовки для ускоренного умножения в MPC.
  • Garbled Circuits (Yao) — двусторонние вычисления по «зашумлённой» схеме.
  • OPRF/PSI — протоколы слепых функций и приватного пересечения множеств.
  • TSS — пороговые подписи (ECDSA/EdDSA/BLS), основа MPC-кошельков.

См. также

Task Runner