Требуется разработать функциональную часть серверной, клиентской и бэкэнд инфраструктуру для MPC кошелека на блокчейне Solana с использованием технологии Shamir’s Secret Sharing (SSS). Пользователи будут авторизоваться через Telegram Auth, а приватный ключ будет разделен на три части. Для подписания транзакций достаточно двух частей ключа.
Можно взять на себя все работу или работу над отдельными частями архитектуры и сотрудничать с другим backend-разработчиком. Подключением серверной и клиентской частей к веб-интерфейсу будет заниматься frontend-разработчик из нашей команды. В ответе ожидаю от вас приблизительную оценку времени, необходимого на выполнение задачи, а также примеры релевантного опыта, портфолио, резюме или объяснение, почему вы считаете, что эта задача вам подходит.
Краткое ТЗ
1. Архитектура системы
Клиентская часть: • Пользовательская авторизация через Telegram Auth.
• Генерация приватного ключа при первой регистрации.
• Разделение ключа на три части с использованием SSS (Shamir’s Secret Sharing):
• Первая часть сохраняется на устройстве пользователя (или в браузере с максимальной безопасностью).
• Вторая часть зашифрованной формы сохраняется на удаленном сервере.
• Третья часть сохраняется в облачное хранилище (Google Cloud, Apple iCloud).
• Поддержка операций создания транзакций и их подписания.
Серверная часть: • Обработка и хранение зашифрованной части ключа.
• Взаимодействие с клиентом для выполнения операций подписания.
• Безопасное хранение и шифрование данных.
Бэкенд: • Интеграция с RPC/Node Solana для отправки транзакций и получения данных о балансе и истории транзакций.
2. Функциональные требования
Авторизация: • Использование Telegram Auth(Passport) для аутентификации пользователей.
Создание кошелька: • Генерация приватного ключа после авторизации.
• Разделение ключа на три части с использованием SSS. ( tсть опенсорс решения)
Хранение частей ключа: • Первая часть сохраняется на устройстве пользователя.
• Вторая часть сохраняется на сервере.
• Третья часть сохраняется в облаке (Google Cloud/Apple iCloud).
Подпись транзакций: • Механизм сбора необходимых частей ключа для подписи транзакции.
• Возможность подписания транзакций на стороне клиента и/или сервера.
• Перевод средств:
• Возможность перевода средств на другой кошелек Solana.
• Отображение балансов:
• Отображение текущего баланса пользователя.
• История транзакций:
• Отображение истории транзакций пользователя.
• Экспорт приватного ключа:
• Функциональность экспорта приватного ключа (в полном виде) с подтверждением через дополнительную аутентификацию.
3. Безопасность
Клиентская часть: • Шифрование части ключа, хранящейся на устройстве пользователя (например, использование локального хранилища браузера или безопасных контейнеров).
Серверная часть:
• Безопасное хранение зашифрованных данных (использование современных стандартов шифрования, например AES-256).
• Регулярное обновление и управление ключами шифрования.
Облачное хранилище:
• Интеграция с облачными сервисами для безопасного хранения ключей.
• Дополнительные механизмы аутентификации при доступе к данным в облаке.
Операции подписания:
• Подпись транзакций требует двух из трех частей ключа, что позволяет выполнять операцию, даже если одна часть недоступна.
4. Технологический стек
• Frontend: React
• Backend: Node.js с Express или Python с Flask/Django.
• Blockchain Integration: Solana Web3.js или PySolana для взаимодействия с блокчейном Solana.
• Database: PostgreSQL, MariaDB, MongoDB для хранения зашифрованных частей ключей и данных пользователей или keycloak
• Cloud Services: Google Cloud, Apple iCloud API для хранения части ключа.