Secure Multi-Party Computation (SMPC) for Collaborative ML

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
Secure Multi-Party Computation (SMPC) for Collaborative ML
Complex
from 1 week to 3 months
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

Реализация Secure Multi-Party Computation (SMPC) для совместного обучения моделей

SMPC позволяет нескольким организациям совместно обучить ML-модель, при этом ни одна из сторон не видит данные других. Банки могут объединить антифрод-данные, больницы — клинические записи, компании — поведение пользователей. Без передачи raw data.

Математическая основа

Secret Sharing (схема Шамира)

Число x разделяется на n долей (shares) таким образом, что любые k из n долей позволяют восстановить x, а любые k-1 не дают никакой информации. В ML-контексте: значения параметров модели разбиваются на shares, распределяются между участниками, вычисления производятся над shares.

Обفускация через Beaver's Multiplication Triples

Умножение двух тайных значений — дорогостоящая операция в SMPC. Beaver's triples — предвычисленные случайные multiplicative triples (a, b, c) где c = a·b. Используются для эффективного умножения без раскрытия значений.

Garbled Circuits

Альтернативный подход: схема вычислений преобразуется в "запутанную" (garbled) логическую схему. Одна сторона "шифрует" схему, другая выполняет вычисления без знания входных данных первой.

Federated Learning vs SMPC

Их часто путают, но это разные технологии:

Аспект Federated Learning SMPC
Что передаётся Градиенты/веса Зашифрованные доли
Уязвимость Gradient inversion attacks Collusion между участниками
Производительность Высокая Зависит от протокола
Гарантии Heuristic Cryptographic (строгие)
Применимость Large-scale (много клиентов) Small-scale (2–10 сторон)

SMPC даёт криптографически строгие гарантии, FL — практичнее для большого числа участников.

Протоколы для ML

SPDZ (Speedz) и его варианты

Наиболее практичный протокол для arithmetic circuits. Состоит из:

  1. Offline phase: генерация Beaver's triples (может выполняться заранее)
  2. Online phase: фактические вычисления над данными

Поддерживает произвольные арифметические операции, включая матричное умножение — критично для нейронных сетей.

ABY (Arithmetic-Boolean-Yao) Framework

Гибридный фреймворк, комбинирующий три парадигмы в зависимости от типа операции:

  • Arithmetic sharing: линейные операции (матричное умножение)
  • Boolean sharing: нелинейные функции (ReLU, max pooling)
  • Yao's garbled circuits: сложные нелинейные операции

Реализации: MP-SPDZ, MOTION, ABY3, CrypTen (Facebook, Python-based).

CrypTen — практический пример

import crypten
import crypten.mpc as mpc
import torch

crypten.init()

# Each party loads their own data
@mpc.run_multiprocess(world_size=3)
def train_private():
    # Party 0 owns features, party 1 owns labels
    features = crypten.load('features.pt', src=0)
    labels = crypten.load('labels.pt', src=1)

    # Encrypt data as secret shares
    features_enc = crypten.cryptensor(features)
    labels_enc = crypten.cryptensor(labels)

    # Train model on encrypted data
    model = crypten.nn.from_pytorch(torch_model, features_enc)
    model.train()

    # Forward/backward pass happens in encrypted domain
    output = model(features_enc)
    loss = crypten.nn.MSELoss()(output, labels_enc)
    loss.backward()
    # Gradients are also encrypted shares

Производительность и ограничения

SMPC существенно медленнее обычного обучения:

  • Overhead: 100x–1000x по сравнению с plaintext для нелинейных операций
  • Нелинейности (ReLU, sigmoid, softmax) — узкое место, требуют протоколов для нелинейных функций
  • Сетевые задержки критичны: протоколы требуют многораундовой коммуникации

Оптимизации:

  • Approximation нелинейных функций полиномами (ReLU ≈ x²/4 в определённом диапазоне)
  • GPU-ускорение для offline phase
  • Batch обработка для амортизации overhead коммуникации
  • Asynchronous preprocessing

Реалистичные ожидания: обучение логистической регрессии на 100k примерах между 3 сторонами — минуты. Обучение нейронной сети средней сложности — часы. Inference — секунды.

Use cases

  • Банковский антифрод: несколько банков обучают общую модель без раскрытия транзакций клиентов
  • Медицинские исследования: клиники объединяют данные пациентов для редких заболеваний
  • Налоговый контроль: ФНС и банки совместно обучают модели без доступа к первичным данным
  • Конкурентная аналитика: компании отрасли оценивают рыночные тренды без раскрытия внутренних метрик

Срок реализации SMPC для конкретной ML-задачи: 6–12 недель, включая выбор протокола, оптимизацию производительности и security audit.