Крипто-кошелек, основа экосистемы OLO.money

Безопасный некастодиальный мобильный кошелек
Задача
Наш клиент OLO.money – это компания, вокруг которой сложилось сообщество крипто- и финтех-энтузиастов. Клиент планирует развивать экосистему различных сервисов и видит большой потенциал в блокчейн-технологиях, которые позволяют выстроить систему голосования для сообщества, создать финтех-приложения и распределять прибыль.

Чтобы члены сообщества могли использовать все преимущества экосистемы, OLO.money планируют выпустить токены на блокчейн платформе Polygon. Предварительно проведена краудфандинговая кампания: участники могли зарезервировать токены до их выпуска через веб-платформу. В кампании приняли участие более 30 тысяч пользователей.

Перед нами была поставлена задача создать мобильную платформу для членов сообщества, через которую будет предоставлен доступ к криптовалютным кошелькам для зачисления токенов, а затем и к сервисам строящейся экосистемы.
Продуктовый консалтинг и разработка
Мы разбили нашу задачу на следующие составляющие:
  1. Создать мобильное приложение с возможностью привязки кошелька для хранения криптовалюты OLOB и проведения транзакций с ней. То есть, необходим был кошелек, который впоследствии будет дополнен другими сервисами.
  2. Обеспечить миграцию пользователей из существующего веб-сервиса в мобильное приложение с крипто-кошельком для обеспечения возможности зачисления купленных токенов OLOB в сети Polygon.

Крипто-кошелек
Из соображений безопасности клиент не стал использовать готовые решения, а заказал разработку мобильного кошелька с нуля. В архитектуре решения заложено несколько уровней защиты активов пользователей.
  1. Некастодиальный кошелек, то есть посредник не имеет доступ к средствам владельца кошелька. Сервер приложения не хранит мнемоническую фразу и приватный ключ от кошелька клиента. Конечно, это накладывает на клиента дополнительную ответственность, так как он не сможет запросить восстановление доступа к кошельку, если забудет мнемоническую фразу. Поэтому при создании нового кошелька предусмотрен этап, на котором пользователь должен собрать мнемоническую фразу из перемешанных в произвольном порядке слов. Таким образом можно убедиться, что пользователь записал фразу и имеет доступ к вновь созданному кошельку.
  2. Используется платежный пароль для проведения транзакций с целью обеспечения дополнительного слоя защиты и аутентификации пользователя при проведении платежных транзакций. Ключ кошелька хранится в зашифрованном виде на мобильном устройстве пользователя. Для того чтобы подписать транзакцию, необходимо ввести установленный пароль для расшифровки ключа.
  3. Приложение имеет доступ к серверу, который реализует другие возможности экосистемы, например связывает учетные данные и адрес кошелька пользователя. Авторизация запросов к серверу осуществляется с помощью авторизационных ключей, которые также хранятся на мобильном устройстве в зашифрованном виде. Ключи генерируется на основе мнемонической фразы по негласному детерминированному алгоритму.

Таким образом, в настоящий момент нет необходимости проходить этап аутентификации, открывая приложение. Авторизация запросов к серверу проходит прозрачно, без непосредственного участия пользователя, посредством подписи запросов к API. Однако в будущем приложение может быть дополнено системой аутентификации, нативной для мобильных платформ – по PIN-коду, отпечатку пальца или Face ID.
Миграция сообщества в мобильное приложение
В ходе пресейла пользователи уже создали себе аккаунты на веб-платформе и зарезервировали определенное количество токенов. Необходимо осуществить удобный для них переход на мобильную платформу и начислить токены в крипто-кошельки, привязанные к приложению. Для этого реализован специальный сценарий, который с точки зрения пользователя будет выглядеть следующим образом.

  1. Пользователь загружает приложение из магазина и запускает его. Чат бот спрашивает, зарегистрирован ли он в OLO.money и предлагает ввести емейл, указанный при регистрации. На указанный адрес сервер приложения отправляет электронное сообщение с кодом подтверждения.
  2. После подтверждения Email-адреса, пользователю предлагается выбрать один из двух вариантов – создать или импортировать кошелек. Если выбрать создание кошелька, то мнемоническая фраза будет сгенерирована автоматически. Далее пользователю предлагается ознакомиться и принять лицензионное соглашение. В момент регистрации мобильное приложение посылает запрос со следующими параметрами: Email-адрес, адрес кошелька и публичный ключ авторизации в приложении.

Таким образом в реестре зарегистрированных пользователей добавляется связь Email-адреса, аккаунта в OLO.money и кошелька в блокчейне. Затем на этот адрес будут зачислены токены проекта.
Веб-сервисы
Мобильные приложения
Golang, Vue JS, Docker, Nginx, MySQL, Elasticsearch, Camunda BPM
Технологии
Product Owner
Project manager
UI / UX Designers
Analysts
Developers
QA
3 520
6 месяцев
Длительность
Часы
Участники
Ценность продукта
Ценность текущий версии продукта заключается в нескольких его характеристиках.

Во-первых, это безопасный некастодиальный крипто-кошелек, который выполняет возложенные на него функции.

Во-вторых, это легко трансформируемая база для новых продуктов. Благодаря клиент-серверной архитектуре, приложение может совмещать возможности блокчейн- и традиционных мобильных технологий.

В-третьих, переход сообщества на мобильную платформу реализован максимально удобно для пользователей и для администраторов проекта.
Начнем работу над вашим IT-проектом через 24 часа
Следующий кейс
Все кейсы
03.2017 - 08.2017
Мониторинг Плюс
Разработали клиентское и серверное ПО для управления автомобильным парком предприятий
Веб-сервисы
Аутстафинг
Наши клиенты обращаются к нам за разработкой продуктов и за помощью в реализации их проектов, когда нужно взять на себя отдельный процесс
Услуги и цены
Партнерские отношения с клиентами — наша цель.
Часто наши клиенты приходят к нам с идеей, и мы помогаем ее развить, проводим исследования и предлагаем решение
О компании