Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Title: Adopt 2-of-3 recovery with guard + E2E server shard (supersedes KYC-SSS draft) Status: superseded Superseded by: decision-2026-01-17-cloud-backup-supersedes-sss.md Owner: Artur Date: 13.01.2026

Context:

  • 2026-01-13 рассматривался вариант «KYC-провайдер выдаёт пароль из лица» (KYC-SSS). Риски: центр доверия в KYC, deepfake/replay, "костыльное" (нестадартное) решение открывающее фронт для атак, сервер/провайдер может выпустить ключ без пользователя.
  • Нужен компромисс между UX и некастодиальностью: пользователь не теряет все средства при утере устройства, сервер не получает доступа к сид.

Decision:

  • Принят флоу 2/3 SSS: шард U у пользователя, шард S хранится на сервере только как шифртекст, шард G у гварда. Любые 2 из 3 восстанавливают сид.
  • Сервер не знает ключей расшифровки S-shard; S-shard шифруется E2E под pubkey восстановления пользователя и pubkey гварда (двойная обёртка/гибрид).
  • Recovery требует участия гварда (разблокировка G-shard под KDF+био/паскод) и сессионного ключа пользователя; KYC даёт только сигнал допуска, не ключ.
  • Таймауты, rate-limit, аудит событий recovery; OOB подтверждение гварда (тревога владельцу).

Safety rationale:

  • Нет приватных ключей/сид на сервере; шифртекст бесполезен без ключей U/G.
  • Сервер не может «тихо» запустить восстановление: нужен G-shard + сессионный ключ U, плюс OOB-подтверждение.
  • KYC не даёт доступ к секретам, только риск-сигнал; биометрия — локальный гейт, а не сетевой пароль.
  • Ротация/ревокация возможна: смена guard pubkey, rewrap S-shard, перевыпуск SSS.

Децентрализация:

  • UX: восстановление требует участия гварда; потеря и U-shard, и G-shard при недоступности S-shard = невосстановимо.
  • Server scope: хранит только шифртекст S-shard + метаданные (wallet_id, k/n, guard_id, статусы); обслуживает уведомления и аудит.
  • Guard responsibilities: хранить G-shard локально в защищённом хранилище; подтверждать запросы OOB; тревожить владельца.

Links:

  • Flow: wallet/flows/flow-wallet-recovery-2of3.md
  • Rules/invariants: .cursorrules

Прописать процедуру и решение rewrap при смене guard pubkey и при ротации recovery ключей.