Чтобы понять принцип работы такого устройства, думайте об аппаратных криптокошельках как о внешних физических устройствах для ввода специального PIN-кода, который нужен, чтобы подтвердить, что это вы инициатор транзакции, а не кто-то другой. То есть, если вам нужно осуществить перевод, вы берете аппаратный кошелек, вводите с его помощью PIN-код и продолжаете делать то, что собирались.
Как HSM помогает защитить инфраструктуру открытых ключей (PKI).
Источник.
В криптографии PIN-код называется закрытым ключом (или приватным). Все аппаратные кошельки защищают этот закрытый ключ, храня его внутри себя в специальных микропроцессорах. Подобные микропроцессоры, используемые для хранения закрытых ключей, можно разделить на две категории:
- «обычные», используемые в микроволновых печах, камерах, телефонах;
- «безопасные», используемые в картах, POS-устройствах, паспортах.
Эти «безопасные» микропроцессоры называются Secure Elements, или SE (например, в кошельке Ledger Nano S используется Secure Element ST31H320). Так вот, микропроцессоры, используемые в аппаратных кошельках, обычно значительно сложнее обычных, поскольку они используют зашифрованную память и специальное физическое усиление для предотвращения атак и несанкционированного доступа к закрытым ключам внутри кошелька и, следовательно, монетам пользователя.
Кроме того, микропроцессоры аппаратных кошельков для крипты обычно имеют операционную систему для управления средой обработки, тем самым добавляя еще один уровень защиты за счет дальнейшего шифрования. Некоторые производители идут еще дальше и интегрируют в кошелек собственную операционную систему с повышенным уровнем безопасности. Ledger — один из таких примеров.
Три составляющие аппаратного кошелька
Разработка такого аппаратного кошелька, как Ledger, — это довольно сложный процесс, требующий создания многофункциональной криптовалютной платформы, которая должна включать в себя реализацию трех следующих модулей.
Пользовательский интерфейс
Это фронтенд-составляющая аппаратного кошелька для криптовалюты, которая отвечает за взаимодействие с конечными пользователями. Именно с его помощью пользователи будут авторизоваться, настраивать кошелек, а также покупать, принимать и отправлять криптовалютные активы другим пользователям. Фронтенд-часть кошельков Ledger имеет мобильный, десктопный и веб-интерфейсы, поэтому при запуске своего кошелька вы также должны реализовать аналогичные интерфейсы и приложения.
Как выглядит интерфейс мобильного приложения Ledger Live.
Источник.
Аппаратный модуль безопасности (HSM)
Как мы писали, HSM — это физическое сверхбезопасное устройство постоянной памяти с защитой от несанкционированного доступа, в котором хранится аутентификационная информация (например, закрытые ключи). HSM могут быть локально подключены к вашему компьютеру или смартфону посредством USB или беспроводных протоколов Bluetooth или Wi-Fi. Большинство HSM имеют возможность выполнять встроенное шифрование с использованием закрытых ключей, благодаря чему закрытые ключи никогда не покидают HSM.
Упрощенное описание того, как работают аппаратные модули безопасности.
Источник.
При разработке собственного аппаратного кошелька для криптовалют вам потребуется свой HSM. Его можно разработать с нуля или заказать шаблонный вариант в виде USB-флешки у поставщиков. К примеру, Utimaco, Gemalto, Microsoft, Amazon, Thales и IBM предлагают облачные HSM, которые отлично подходят для создания аппаратных кошельков для криптовалют наподобие Ledger Nano S.
При этом нужно понимать, что вам нужен HSM, который сертифицирован по международным признанным стандартам, таким как Common Criteria или FIPS 140. Такой сертификат подтверждает, что модуль HSM прошел разумный уровень тестов безопасности, проведенных квалифицированными специалистами, и, следовательно, он достаточно надежен и безопасен. Кроме того, так как ваш аппаратный кошелек будет использоваться для обеспечения финансовых платежей, желательно, чтобы HSM проверялся на соответствие требованиям HSM, определенным Советом по стандартам безопасности индустрии платежных карт.
Серверная часть продукта
При разработке архитектуры проекта этой части следует уделять максимум внимания, поскольку Backend обрабатывает, хранит, защищает данные для бесперебойной работы кошелька — это «сердце» вашей системы. Реализовать серверную часть можно на собственных локальных серверах, но лучше для этого использовать облачные решения от Microsoft, Google или Amazon — это значительно проще, быстрее и дешевле.
Ориентировочная архитектура бэкенда криптовалютного кошелька.
Источник.
Основные и расширенные функции платформы
Авторизация. В случае аппаратных кошельков для криптовалют регистрация подразумевает не только создание новой учетной записи и подключение к ней существующих у пользователя криптовалютных счетов, но и первичную настройку кошелька: установку приложения, подключение аппаратного кошелька к компьютеру, придумывание ПИН-кода, запись seed-фразы и прочее. Дальше авторизация будет проходить по более простому сценарию (подключение кошелька + ввод ПИН-кода).
Повышенная безопасность. Следующее, на чем нужно сосредоточиться при разработке своего криптовалютного кошелька наподобие Ledger, — защита данных и денег пользователей. Это очень важно, так как в таких сетях, как Bitcoin или Ethereum, невозможно отменить неправильную или несанкционированную транзакции и очень сложно, из-за чего у пользователей, скорее всего, не будет возможности вернуть свои средства в случае их кражи или платежа по неправильному адресу.
Вот несколько вещей, которые помогут вам защитить деньги клиентов.
- PIN-код. Нужно будет вводить при каждом входе для подтверждения платежей или изменения важных настроек аппаратного кошелька.
- Двухфакторная аутентификация. Подразумевает еще один уровень подтверждения через e-mail, SMS, Google Authenticator или его аналог.
- Seed-фраза, или мнемонический код. Это фраза из 12 или 24 слов, которая генерируется случайным образом при регистрации аккаунта и нужна для восстановления доступа к аккаунту в случае кражи или потери паролей.
- Автоматический выход из системы. Подразумевает реализацию функции управления временем жизни для отслеживания активности пользователя и автоматический выход из учетной записи при простое кошелька в течение 5 или 10 минут. Также можно реализовать автоматический выход из системы, если пользователь совершил нетипичные действия и/или не смог подтвердить транзакцию с помощью специального платежного пароля (если такой есть).
- Проверка IP при важных действиях. Такой механизм защиты кошелька подразумевает, что система записывает IP, с которых пользователь будет входить в кошелек, и сопоставляет их с разрешенным списком. Если вход будет осуществлен с неразрешенного IP, пользователь не сможет авторизоваться, пока не добавит новый IP в перечень разрешенных пользователем адресов.
- Мультиподпись. Такая функция повышает уровень безопасности вашего сервиса, позволяя нескольким пользователям частично подписывать один адрес открытым ключом. Если кто-то хочет потратить токены в кошельке, он должен получить две или более подписей для совершения платежа.
Курс, коэффициент конверсии. Так как с помощью вашего аппаратного кошелька пользователи будут покупать и продавать биткоины, эфириум и другие монеты, они должны знать актуальный курс этих монет. Кроме того, им также нужно будет знать коэффициент конверсии, который будет учитывать все комиссии и сборы.
Управление криптоактивами (баланс). Данный функционал является ядром любого криптовалютного кошелька, поскольку именно он отвечает за покупку и продажу монет. Вот что входит в перечень самого необходимого.
- Просмотр баланса, история транзакций, список контрагентов.
- Покупка и продажа криптоактивов по актуальному рыночному курсу с помощью PayPal, банковских карт и других платежных инструментов.
- Отправка и получение монет другим пользователям.
Панель администратора. Через нее вы или ваши сотрудники будут отслеживать текущее состояние системы, управлять пользователями, подключать или отключать платежные шлюзы, управлять монетизацией, решать возникшие проблемы и т. д.
Дополнительные возможности. Чтобы ваш аппаратный кошелек для криптовалют пользовался популярностью, ему нужно выделиться среди конкурентов. Сделать это можно за счет различных дополнительных функций, например:
- Lightning-транзакции — быстрые и дешевые платежи;
- несколько языков интерфейса — сильно расширит охват аудитории;
- интеграция с e-commerce-сайтами — покупка товаров и услуг за монеты;
- QR-коды для быстрых транзакций — улучшают пользовательский опыт;
- избранные криптовалютные адреса — ускоряют повторяемые транзакции;
- поддержка NFC — один из главных трендов в криптовалютном мире;
- уведомления — будут информировать клиентов о важных вещах.
Архитектура и технологический стек криптокошелька
Архитектура. Ниже показана высокоуровневая системная архитектура аппаратного кошелька для криптовалют, созданная с ориентацией на максимальную безопасность и защиту денег и данных пользователей.
Системная архитектура безопасного аппаратного кошелька.
Источник.
Технологический стек
- Блокчейн: Ethereum, Binance Smart Chain.
- Стандарт токена: ERC721, ERC1155, BEP-721, BEP-1155.
- Смарт-контракты: Ethereum Virtual Machine, BSC Virtual Machine.
- Языки программирования: PHP, JAVA, MEAN Stack, Laravel.
- Разработка веб-сайтов: PHP-Laravel / Codeigniter.
- MEAN: MongoDB, Express JS, Angular js, Node js.
- Для Android: Java, Kotlin, Node JS, ROR, Laravel.
- Для IOS: Swift, Node JS, ROR, Laravel, ткань
- Облако: AWS, Google Cloud Platform, MS Azure.
- Push-уведомления: Twilio, Amazon SNS, MAP.
- Базы данных: MySQL, MongoDB, Redis.
- Другое: RSpec, Phantom JS, PUMA server.
Процесс разработки криптовалютного кошелька
Создать программное обеспечение для аппаратного кошелька наподобие Ledger можно только посредством кастомной разработки. Поскольку только таким образом можно добиться достаточного уровня надежности и безопасности системы. Причем это особенно важно в случае создания софта с открытым исходным кодом (стандарт для криптовалютного рынка), так как если в таком коде будут «дыры» безопасности, то их сможет увидеть любой хакер и использовать для взлома вашего кошелька.
Как найти технического партнера для создания такого программного обеспечения, подробно описано в статье: «Как Выбрать Компанию по Разработке Блокчейна». Вы можете использовать эту инструкцию, чтобы выбрать лучшего разработчика, или же вы может просто обратиться в Merehead. Наша компания с 2015 года разрабатывает блокчейн-, fintech- и DeFi-решения любой сложности. Изучить наше портфолио и узнать условия сотрудничества можно через sales@merehead.com, по номеру телефона +38-093-159-5880 или воспользовавшись формой обратной связи.
После того как вы выберете технического партнера, процесс разработки аппаратного кошелька наподобие Ledger будет проходить по такому сценарию:
- Бизнес- и технический анализ. Перед запуском любого IT-продукта нужно провести анализ деловых и технических аспектов проекта для понимания его бизнес-целей и задач и определения технических и других требований.
- Прототипирование и архитектурный дизайн. После тщательного анализа бизнес-целей и разработки технического задания создается архитектура кошелька, которая покажет взаимоотношения между различными частями системы кошелька и. Разработанная архитектура кошелька согласовывается с клиентом, и если все нормально, то она в дальнейшем будет служить своего рода планом для всех последующих этапов разработки будущего продукта.
- Разработка дизайна интерфейса. Дизайн интерфейса будет показывать, как аппаратный кошелек будет выглядеть для пользователей и как они будут с ним взаимодействовать. При разработке дизайна сначала создается прототип низкой точности, чтобы обрисовать грубую схему UI/UX и показать ее клиенту. Если клиент одобрил схему, создается прототип высокой точности, который максимально приближен к окончательному внешнему виду кошелька.
- Разработка смарт-контрактов. Для разработки аппаратного кошелька для криптовалют наподобие Ledger вам нужно будет реализовать не только серверную и фронтенд-часть кошелька, но и создать несколько смарт-контрактов. Посредством них осуществляется управление криптовалютными активами: покупка, продажа, прием и передача монет, а также восстановление учетной записи и многое другое.
- Разработка серверной части. При необходимости также создаются серверные службы. Они необходимы для взаимодействия между интерфейсом и блокчейном, а также для выполнения любых смарт-контрактов и интеграции с другими сервисами.
- Фронтенд-разработка. Перед развертыванием проекта разрабатывается пользовательский интерфейс аппаратного кошелька, в результате чего создается финальная версия приложения-кошелька. Затем приложение проверяется на наличие багов и ошибок, соответствие техническим спецификациям и т. д.
- Развертывание. Когда программное обеспечение создано и тщательно протестировано, система кошелька развертывается и становится доступной для пользователей. Если кошелек имеет мобильное приложение, его добавляют в сторы.
Стоимость создания аппаратного кошелька