Разработка мобильных криптовалютных кошельков

Криптовалютные кошельки бывают двух типов: кастодиальные и некастодиальные. Кастодиальный — сервис или приложение, в котором за хранение ключей и резервное копирование отвечает разработчик. Виды кастодиальных кошельков:

  • Биржевые. Выдаются криптобиржей для каждой вводимой криптовалюты. Адреса генерируются на серверах криптобиржи, как и приватные ключи, которые хранятся там же или в других местах, но не на клиентских устройствах.
  • Программные (отдельные виды). Некоторые десктопные приложения тоже хранят ключи на серверах разработчика, но такое встречается всё реже.

Некастодиальный — приложение или устройство, которое хранит приватные ключи. При регистрации в таком кошельке пользователь указывает мнемоническую фразу. С её помощью можно вернуть доступ к криптовалюте, если утеряны ключи. Виды некастодиальных кошельков:

  • Десктопный — программа для ПК, через которую получают доступ к блокчейну. Бывает полным (содержит весь блокчейн размером сотни ГБ) или тонким (синхронизируется с блокчейном только частично).
  • Мобильный — приложение для смартфона и планшета. Удобен для частых транзакций, оплаты покупок и услуг там, где принимают криптовалюту.
  • Веб-кошелёк — сервис финтех-стартапа, иногда крупной криптобиржи. Используется теми, кто не хочет устанавливать приложение в смартфон или компьютер.
  • Аппаратный — физический гаджет для хранения ключей. Такие устройства популярны среди долгосрочных инвесторов и «китов».
  • Бумажный — распечатанный документ, на котором указываются ключи обоих типов, seed-фраза, QR-код, а также другие данные в зашифрованном виде.

Как работает мобильный криптокошелек

Принцип работы мобильного криптокошелька

Приложение устанавливается на смартфон/планшет через Apple App Store или Google Play. Поскольку мало какой популярный блокчейн поместится в памяти мобильного устройства, такие кошельки делаются тонкими, чтобы не скачивать весь блокчейн. После регистрации или авторизации пользователь сможет отправлять и получать криптовалюту от других людей, а чтобы транзакции проходили через сеть, кошелёк будет синхронизироваться с блокчейном частично.

В действительности монеты не перемещаются по сети или блокчейну. Изначально они появляются, когда майнер сгенерировал блок и добавил его к цепи, там же и остаются навсегда. Операции по «отправке» и «получению» — на самом деле транзакции информации, а не монет. Один участник сети передаёт другому права на определённые монеты (или дробные части), подтверждая это приватным ключом. При синхронизации все участники сети получают информацию о передаче прав на те монеты от одного адреса к другому.

У каждого мобильного криптокошелька есть два типа ключей:

  1. Публичный (открытый) ключ, который состоит из длинного ряда букв и цифр. Его ещё называют адресом и используют для получения монет. Можно перед каждой предстоящей транзакцией генерировать новый адрес, а уже потом сообщать его тому, кто пришлёт монеты туда.
  2. Приватный (закрытый) ключ, который генерируется случайным образом. Это шестнадцатеричный код из 256 бит, или 32 байтов, используемый для подписи переводов. Подписанная с его помощью транзакция поступает в сеть, майнеры подтверждают её в порядке очереди, тогда монеты сменяют владельца.

Как разработать мобильный криптокошелек

Этапы разработки мобильного криптокошелька

Заказчик изначально должен понимать, каким видит мобильный криптокошелёк для своего проекта. Это надо оформить как техническое задание (ТЗ). При отсутствии готового ТЗ мы с клиентом заполняем бриф, а затем всё равно составляем ТЗ. Только после этого приступаем к разработке.

Цикл разработки мобильного криптовалютного кошелька состоит из 7 этапов. Опишем вкратце каждый этап.

Оценка и планирование

Проект-менеджер изучает бриф и пожелания заказчика, обсуждает, кого из команды привлечь к новому проекту, рассчитывает сроки и стоимость разработки. Итог его работы — расписанная по целям и шагам концепция проекта.

Аналитика

Тим-лид определяет технические требования к мобильному приложению. Он составляет спецификации приложения, детальнее расписывает план разработки и задачи программистам. Аналитику может также проводить проект-менеджер или архитектор ПО.

Проектирование дизайна

При отсутствии у заказчика эскизов или прототипа пользовательского интерфейса, UI/UX-дизайнер проектирует его с нуля. Сначала создаётся вайрфрейм с основными деталями будущего приложения, затем прототипы. Конечный дизайн разрабатывается после утверждения интерфейса и необходимых функций заказчиком.

Программирование

Разработчики приступают к написанию программного кода с учётом ТЗ, брифа и имеющихся прототипов. При разработке для iOS они используют языки Swift или Objective-C. А при разработке для Android — C++, C#, Java, Kotlin или Python.

После готовности кода и работоспособности приложения UI/UX-дизайнер проверяет его интерфейс. Итог этапа — альфа-версия криптокошелька, готовая к тестированию.

Тестирование и исправление багов

Когда разработчики сдадут альфа-версию, тестировщики и QA-инженеры начнут тестировать криптокошелёк. У нас тестирование проходит с учётом всех вариантов использования приложения. Если обнаружим баги или недоработки, то сразу исправим их. Релиз бета-версии состоится только после того, как все участники команды убедятся в качестве выпускаемого приложения.

Релиз

После того как команда завершила тестирование и исправила возможные недостатки, проект-менеджер публикует мобильный криптокошелёк в Apple App Store и/или Google Play. Либо заказчик сам размещает приложение на платформах цифровой дистрибуции.

Техподдержка и дальнейшее развитие

После релиза опытные пользователи могут столкнуться с багами, не обнаруженными в ходе тестирования. Их должны устранять разработчики. В первые 2-3 месяца пользователи также будут просить улучшить какие-то функции или внедрить новые. Эту обратную связь надо принимать во внимание и заниматься дальнейшим развитием мобильного криптокошелька.

Какие функции нужны криптокошельку

Главные функции криптовалютного кошелька

У большинства мобильных криптокошельков функции почти такие же, как у приложений мобильного банкинга или платёжных систем (PayPal, Stripe). Они позволяют проводить транзакции через QR-коды, переводить криптовалюту другим пользователям, оплачивать покупки. Основные функции следующие:

  • Регистрация и авторизация. Реализуется через имейл, аккаунты в соцсетях или номер телефона.
  • Генерация криптовалютных адресов (публичных ключей) в пиринговой платёжной системе.
  • Привязка счёта, криптовалютного адреса. Если у пользователя уже есть аккаунты в других платёжных системах, нужна возможность добавить их в приложение.
  • QR-сканер. Для считывания чужого криптовалютного адреса фотокамерой смартфона/планшета.
  • Повышенная безопасность. Приложение должно поддерживать двухфакторную и аппаратную аутентификацию, автоматически выходить из аккаунта при бездействии. Пользователи также часто заинтересованы в совместимости со сканером отпечатков пальцев (Touch ID) и сканером лица (Face ID).
  • Управление активами. Отображение текущего баланса, входящих/исходящих транзакций за выбранный период, слежение за состоянием портфеля и т. п.
  • Push-уведомления. Сообщения о завершении транзакции, поступлении монет и прочих сведениях.

В некастодиальных мобильных кошельках для криптобирж нужны дополнительные, по-своему важные, функции. Они могут быть больше связаны с рыночными ценами, конвертацией и обменом одной криптовалюты на другие. В качестве примера вот такой криптовалютный кошелек мы разработали для платформы Polyx. Версию для Android выпустили в октябре 2021, а для iOS — в феврале 2022.

Polyx Crypto Wallet

Ваше сообщение было успешно отправлено. Мы скоро с Вами свяжемся!