Реализация мультиподписи (Multisig) в мобильном криптокошельке

Реализация мультиподписи (Multisig) в мобильном криптокошельке Подписать транзакцию одним приватным ключом — рискованно. Если ключ украден или скомпрометирован, все активы потеряны. Мультиподпись решает эту проблему, требуя несколько независимых подтверждений. В мобильных кошельках мы внедряем дв

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Реализация мультиподписи (Multisig) в мобильном криптокошельке
Сложный
от 1 недели до 3 месяцев

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    600

Реализация мультиподписи (Multisig) в мобильном криптокошельке

Подписать транзакцию одним приватным ключом — рискованно. Если ключ украден или скомпрометирован, все активы потеряны. Мультиподпись решает эту проблему, требуя несколько независимых подтверждений. В мобильных кошельках мы внедряем два подхода: Smart Contract (Safe/Gnosis) и MPC (Multi-Party Computation). Наш опыт — 30+ блокчейн-проектов — показывает, что правильный выбор схемы определяет и безопасность, и UX.

Gnosis Safe — один из самых популярных смарт-контрактов для мультиподписи, а протокол GG20/GG21 используется в MPC-решениях (см. документацию Safe и википедию о мультиподписи).

Multisig на мобильном — не просто «нужно N из M подписей». Это координация между устройствами или людьми, управление состоянием подписания, хранение pending-транзакций и UX, при котором пользователь понимает где он находится в процессе. Стек и сложность сильно зависят от того, что именно под словом «мультиподпись».

Два подхода: Safe vs MPC — что выбрать?

Критерий Safe (Smart Contract) MPC (Threshold ECDSA)
On-chain след Да, каждая подпись подтверждается Нет, только финальная подпись
Гибкость Любой контракт, но высокий газ Любой контракт, низкий газ
Задержка подписи Мгновенно (офчейн голосование) 200–500 ms на signing round
Безопасность Зависит от смарт-контракта Ключ физически не собирается
Сложность интеграции Низкая (SDK) Высокая (нативные библиотеки)

Smart contract multisig (Safe/Gnosis). Смарт-контракт проверяет N подписей перед исполнением. Транзакция хранится в контракте как pending. Каждый подписант независимо подтверждает через approveHash. Простое решение для командного кошелька. Мобильное приложение — это клиент к Safe Transaction Service API (safe-transaction-service), который хранит pending-транзакции офчейн.

MPC (Multi-Party Computation). Приватный ключ физически никогда не собирается в одном месте. Каждая сторона хранит shard ключа, подпись генерируется совместно через протоколы GG20 или CGGMP21 (Threshold ECDSA). Сложнее в реализации, нет onchain-следа, работает с любым контрактом.

Для потребительских кошельков чаще нужен MPC (1 shard на устройстве, 1 на сервере — схема 2-of-2 для защиты от кражи устройства). Для корпоративных — Safe 3-of-5.

Сравним: MPC обеспечивает до 2 раз меньшие газовые затраты, чем Safe, при большом количестве подписей, так как onchain фиксируется только финальная подпись. Однако Safe проще в интеграции и прозрачнее для аудита.

Как настроить Safe multisig на мобильном

Интеграция через Safe{Core} SDK:

import { SafeFactory, SafeAccountConfig } from '@safe-global/protocol-kit' const safeAccountConfig: SafeAccountConfig = { owners: [owner1Address, owner2Address, owner3Address], threshold: 2, } const safeFactory = await SafeFactory.create({ ethAdapter }) const safe = await safeFactory.deploySafe({ safeAccountConfig }) 

Для подписания pending-транзакции:

const safeTransaction = await safe.createTransaction({ transactions: [{ to, data, value }] }) const txHash = await safe.getTransactionHash(safeTransaction) const signature = await safe.signTransactionHash(txHash) await safeTxService.proposeTransaction({ safeAddress, safeTransactionData: safeTransaction.data, safeTxHash: txHash, senderSignature: signature.data }) 

Второй подписант получает push-уведомление, видит детали транзакции, подтверждает своей подписью. Когда набралось N — приложение отправляет executeTransaction.

Почему мультиподпись критична для безопасности?

Одиночный приватный ключ — единственная точка отказа. При краже устройства злоумышленник получает полный доступ к средствам. Мультиподпись устраняет эту уязвимость: даже если устройство скомпрометировано, без второго подписанта (например, серверного shard или второго мобильного) транзакция не пройдёт. Мы гарантируем корректную реализацию как для Safe, так и для MPC, с аудитом безопасности на каждом этапе.

Как выбрать между Safe и MPC?

Решение зависит от сценария:

  • Командный кошелёк с контролем мультиподписи: Safe — прозрачно, просто, легко аудировать.
  • Защита от кражи устройства: MPC 2-of-2 (устройство + сервер) — ключ не покидает shard, даже при взломе сервера.
  • Конфиденциальность транзакций: MPC — нет onchain-следа голосования.

MPC: что реализуем нативно

Для схемы 2-of-2 (телефон + сервер) используем библиотеки с открытым кодом: tss-lib (Go), multi-party-ecdsa (Rust). На мобильном — нативный модуль (Swift/Kotlin) с биндингами к Rust через UniFFI или C FFI.

Подробнее о генерации ключей (keygen) Keygen — однократный обмен сообщениями между устройством и сервером через WebSocket. Результат: каждая сторона получает свой shard, хранит у себя, полный ключ не существует нигде. После keygen можно подписывать транзакции.

Подпись транзакции: interactive signing round (2–4 round-trip сообщения), занимает 200–500мс при хорошем соединении. Это приемлемо, но нужно показывать прогресс.

Управление pending-транзакциями в UI

Список транзакций со статусами: pending_signatures (сколько из N собрано), ready (можно исполнять), executed, rejected. Каждая транзакция — детали: адрес получателя, сумма, данные вызова (декодированные если известен ABI). Уведомление подписантам через FCM/APNs.

Что входит в работу

  • Аудит требований и выбор схемы (Safe или MPC).
  • Архитектура: схема хранения shard-ов, push-уведомления, deep linking.
  • Интеграция: Safe Transaction Service (1–2 недели) или нативный MPC модуль (1–3 месяца).
  • Тестирование: корректность подписания, обработка edge-кейсов (отказ подписанта, таймауты).
  • Документация и код-ревью.
  • Поддержка после деплоя.

Процесс и сроки

Этап Длительность
Аналитика и выбор подхода 1–2 дня
Проектирование схемы 3–5 дней
Интеграция (Safe) 1–2 недели
Интеграция (MPC) 1–3 месяца
Тестирование и аудит 1–2 недели
Деплой и документация 3–5 дней

Стоимость рассчитывается индивидуально после оценки объёма работ. Закажите консультацию, и мы предложим оптимальное решение под ваш бюджет.

Типичные ошибки

  • Не учитывать коммуникационные задержки в MPC — показать прогресс.
  • Не реализовать fallback при недоступности сервера (для MPC с сервером).
  • Пренебрегать проверкой подлинности push-уведомлений (возможность фейковых запросов).

Получите готовое решение мультиподписи под ключ. Свяжитесь с нами для анализа вашего проекта.