Гибридная аутентификация

Три уровня входа: от простого Telegram-логина для кассиров до seed phrase и Web3-подписи для межброкерских обязательств. Не «только seed» — seed как опция и усиление.

1 Три уровня аутентификации
Для крипто-обменников seed phrase логичен: аудитория уже знает что это такое

У платформы уже есть некастодиальный кошелёк. Seed phrase — не обязательный, а опциональный уровень для тех, кому нужна криптографическая подпись операций.

1
📱
Telegram / Пароль
Для всех пользователей
Быстрый вход через Telegram Login Widget или классика — логин + пароль. Минимальный friction для кассиров, менеджеров, клиентов.
2
🔑
Seed Phrase
Для владельцев, финансистов
12 слов BIP39 → приватный ключ. Подтверждение крупных операций, восстановление доступа, подпись межброкерских обязательств.
3
🌐
Web3 / Межброкерский ID
Для межброкерных расчётов
Тот же ключ из seed = идентификатор в сети FastOTC. Подпись зеркальных обязательств, хэширование транзакций, репутация.
2 Экран входа (3 вкладки)
12:45 brokerAlfa.fastapp.dad
AlphaChange
Вход в личный кабинет

Дизайн-решения

Dark theme — основной
Mobile-first ориентир
Telegram — первая вкладка (основной метод)
Брендинг брокера, НЕ FastOTC
Web3 — опция, не обязательный метод
Seed phrase — только для владельцев обменников
3 Кто использует какой уровень
Роль Основной вход Дополнительно Зачем
Клиент Уровень 1 Telegram Минимальный friction, быстрый вход
Кассир Уровень 1 Пароль Не все кассиры крипто-грамотные
Менеджер Уровень 1 Telegram / пароль Скорость важнее безопасности
Соло-брокер Уровень 1 Telegram Уровень 2 Seed (опция) Подтверждение крупных операций
Владелец обменника Уровень 1 Telegram Уровень 2 Seed Восстановление, подпись, контроль
Межброкерный партнёр Уровень 1 Уровень 3 Web3 ID Подпись обязательств, репутация в сети
4 Что даёт Seed Phrase
Derivation: от 12 слов до идентичности в сети
BIP39
12 слов (Seed)
Derivation
Private Key
Криптография
Public Key
=
Идентичность
ID в сети FastOTC
🔐
Подтверждение крупных операций
Пороговые суммы ($10K+) требуют seed-подписи
🔄
Восстановление доступа
Потерял пароль/TG — восстановление по seed
🤝
Подпись обязательств
Зеркальные обязательства подписаны ключом
Репутация в сети
Рейтинг привязан к публичному ключу
📝
Seed
12 слов BIP39
🔑
Private Key
ed25519 / secp256k1
📋
Public Key
ID в сети
✍️
Подпись TX
Хэширование
🌐
Сеть FastOTC
Верификация
5 Риски и защита
🚨

Потеря seed = потеря доступа навсегда

Пользователь забыл или потерял 12 слов. Нет способа восстановить приватный ключ.

Mitigation: Seed — опциональный уровень. Базовый вход через TG/пароль всегда работает. Seed нужен только для подтверждения крупных операций.
😤

Ввод 12 слов на каждом входе — friction

Если требовать seed при каждом логине — пользователи уйдут.

Mitigation: Seed НЕ для логина. Он для: крупных операций (пороговая сумма), восстановления, подписи обязательств. Ежедневный вход — через TG.
🤷

Не все крипто-грамотные

Кассиры, бухгалтеры — не понимают что такое seed phrase.

Mitigation: Seed доступен только на уровнях «Владелец» и «Соло-брокер». Кассиры и менеджеры используют только Уровень 1 (TG/пароль).
🔓

Компрометация seed

Если seed украден — злоумышленник может подписать обязательства.

Mitigation: Привязка к устройству (device fingerprint). Ротация ключей (генерация нового seed с переносом идентичности). Уведомления о подозрительных подписях.
6 Web3 авторизация — для межброкерных расчётов
Web3 — не обязательный метод для всех, а опция для межброкерных расчётов

Оставляем простой вход через Telegram тоже. Web3 подключается когда брокер выходит в межброкерную сеть и ему нужна криптографическая идентичность для подписи обязательств.

Когда включается Уровень 3

Брокер регистрируется в межброкерной сети
Создаёт первую межброкерную заявку (NetworkRequestEntity)
Подписывает зеркальное обязательство (ObligationEntity)
Участвует в арбитраже (спорная транзакция)
Хочет подтвердить репутацию (публичный ключ = ID)

Что НЕ требует Web3

Ежедневные свопы внутри одного обменника
Работа кассира (приём/выдача)
Клиентский портал
Чат с менеджером
Отчёты и аналитика
7 Текущее состояние в коде
Уже есть
✓ WalletEntity с encrypted private_key
✓ OpenAiFactory с настраиваемым BASE_URL
✓ Telegram Login Widget
✓ OneTimeAuthService (magic links)
✓ LoginService (логин/пароль)
Нужно добавить
○ BIP39 генерация мнемоник
○ Keypair derivation (ed25519)
○ Web3 login flow
○ Публичный ключ как identity
○ Пороговая подпись операций
○ UI генерации и бэкапа seed