Backend dev для Solana MPC Wallet

200 000 руб. за проект
27 августа 2024, 17:06 • 23 отклика • 95 просмотров
Требуется разработать функциональную часть серверной, клиентской и бэкэнд инфраструктуру для 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 для хранения части ключа.