Backend dev для Solana MPC Wallet
Можно взять на себя все работу или работу над отдельными частями архитектуры и сотрудничать с другим 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 для хранения части ключа.