Представьте: пользователь потерял телефон с установленным криптокошельком, seed-фраза не сохранена, а на счету ERC-20 токены на $50 000. Без Social Recovery средства потеряны навсегда. Мы реализовали механизм, который позволяет восстановить доступ через доверенных людей (guardians) без seed-фразы. Всё работает на уровне смарт-контракта, мобильное приложение — это UX поверх него. Наш опыт с EIP-2525 и готовыми решениями Safe и ZeroDev позволил сократить время внедрения вдвое по сравнению с разработкой с нуля. Social Recovery экономит пользователям тысячи долларов на комиссиях и исключает риск полной потери средств. Получите консультацию по внедрению в ваш кошелёк.
Как работает Social Recovery на контрактном уровне?
Кандидатный стандарт — EIP-2525 (не финализирован) и реализации в Safe, ZeroDev, Argent. Кошелёк представляет собой смарт-аккаунт, соответствующий ERC-4337, что позволяет комбинировать Social Recovery с batched transactions и спонсорством газа. Базовая логика:
- Кошелёк — смарт-аккаунт (ERC-4337 или кастомный).
- При настройке владелец задаёт список guardians (адреса) и threshold (N из M).
- При потере доступа: guardians подтверждают
initiateRecovery(newOwner). - После сбора N подписей и опционального timelock (24–72 часа) —
finalizeRecoveryменяет владельца.
Мобильное приложение реализует: экран настройки guardians, flow инициирования восстановления (для нового устройства), экран подтверждения (для guardians).
Почему timelock критически важен?
Если owner компрометирован, а не потерян, timelock даёт время отменить мошеннический recovery через cancelRecovery с оригинального ключа. Без timelock злоумышленник, получив доступ к одному guardian-адресу, мог бы мгновенно перехватить кошелёк. В наших проектах мы устанавливаем timelock 48 часов — минимальное время, чтобы пользователь заметил проблему и отозвал операцию.
| Тип timelock | Длительность | Сценарий использования |
|---|---|---|
| Минимальный | 24 часа | Быстрое восстановление, высокое доверие к guardians |
| Средний | 48 часов | Баланс между безопасностью и скоростью |
| Максимальный | 72 часа | Консервативные настройки, риск мошенничества высок |
Кто такие guardians с технической точки зрения?
Варианты разные: другие кошельки (адреса) доверенных людей, email через ZK-Email Guardian (верификация email без раскрытия содержимого), hardware wallet, другой смарт-аккаунт.
Для мобильного приложения самый практичный вариант — guardian-адреса других пользователей приложения. Flow:
- Пользователь A добавляет guardian → вводит адрес или сканирует QR пользователя B.
- Пользователь B получает push и принимает/отклоняет роль guardian.
- Принятие guardian-роли —
addGuardianв контракте кошелька A.
Как происходит восстановление на новом устройстве?
Пользователь устанавливает приложение на новом устройстве. Генерирует новый keypair. Инициирует recovery с новым адресом — отправляет запрос guardians через push/email.
Каждый guardian видит: чей кошелёк восстанавливается, новый адрес, timestamp запроса. Подтверждает через свой кошелёк — approveRecovery UserOperation.
Что сложно в реализации Social Recovery?
Состояние вне цепочки. Guardian не всегда онлайн в момент recovery. Нужна централизованная очередь уведомлений или push-механизм. Без этого recovery зависает. Мы используем Firebase Cloud Messaging с очередью, гарантирующей доставку в течение 5 минут.
Смена guardians. Если пользователь поссорился с guardian — нужен flow удаления. removeGuardian через owner-ключ. Что если owner-ключ уже потерян? Тогда только через других guardians с повышенным threshold.
Отображение статуса. Пользователь видит: «2 из 3 guardians подтвердили, ждём ещё 1, timelock истечёт через 18 часов». Это polling контракта или event-подписка через WebSocket (eth_subscribe).
| Компонент | Сложность | Решение |
|---|---|---|
| Уведомления guardian | Высокая | Push-сервер с очередью |
| Смена guardians при утере ключа | Средняя | Только через других guardians |
| Отображение статуса recovery | Низкая | Polling или WebSocket |
Что входит в работу по внедрению?
- Аудит существующей контрактной архитектуры или выбор готового решения (Safe, ZeroDev).
- Разработка UI: экран настройки guardians, flow инициирования и подтверждения recovery.
- Интеграция push-уведомлений для guardians (APNs/FCM).
- Мониторинг состояния recovery через event-подписку.
- Документация по использованию и тестирование на TestFlight/Google Play Console.
- Гарантия на код — 12 месяцев бесплатной поддержки по исправлению багов.
Сроки и стоимость
Ориентировочные сроки — от 3 до 5 дней для интеграции с существующим смарт-аккаунтом, если контракт уже поддерживает Social Recovery. Если контракт необходимо разработать с нуля — отдельный scope обсуждается на предварительной встрече. Стоимость рассчитывается индивидуально после анализа требований. Закажите аудит текущей архитектуры или получите консультацию по внедрению Social Recovery в ваш кошелёк. Свяжитесь с нами для детального технического обсуждения.







