Обзор системы
Spatium SDK & Cloud представлен набором расширяемых программных модулей и сервисов, формируя гибкую и легко конфигурируемую систему, поддерживающую широкий спектр сценариев использования. Модульная архитектура системы также открывает разработчикам возможности по созданию уникальных сценариев использования, однако ряд наиболее распространенных из них система поддерживает из коробки в виде дополнительных модулей и сервисов.
Терминология
В рамках SMPC системы с распределенным хранением криптографических данных здесь и далее вводится понятие "секрет" - уникальный набор бинарных данных, не являющийся приватным ключом сам по себе, но выступающий источником энтропии для фрагментов приватного ключа в рамках SMPC вычислений. Каждый участник SMPC процедур однозначно идентифицируется своим секретом и должен обеспечивать безопасность хранения этого секрета и ограничения доступа к нему извне.
Базовые модули
В своем основании Spatium SDK & Cloud имеет следующие элементарные компоненты:
Как можно заметить, SDK и Cloud не взаимодействуют напрямую, что позволяет существенным образом увеличить количество возможных вариантов интеграции.
Компоненты Spatium SDK:
- Spatium Protocol - основной элемент Spatium SDK, реализующий программный интерфейс распределенной подписи (ECDSA и EDDSA алгоритмы). Опирается на Crypto Driver для выполнения SMPC криптографии и на Transport Driver для взаимодействия с другими инстансами Spatium SDK;
- Crypto Driver - интерфейс подключения имплементации SMPC криптографии. Конкретная имплементация криптографии зависит от окружения, например, программная имплементация опирается на Storage Driver для хранения информации и выполняет вычисления в оперативной памяти, тогда как HSM/TEE имплементация будет использовать защищенные хранилища и память соответственно;
- Spatium Crypto - программная имплементация криптографии, использующая конфигурируемый Storage Driver для хранения постоянных и временных данных;
- Transport Driver - интерфейс подключения имплементации передачи данных между инстансами Spatium SDK. Конкретная имплементация зависит от архитектуры решения и условий эксплуатации. Для имплементации наиболее хорошо подходит любая вариация сокет-подобного транспорта, однако возможны и другие методы взаимодействия;
- Storage Driver - интерфейс подключения имплементации хранения данных в рамках конкретной SMPC процедуры (временное хранилище) и в долгосрочной перспективе (постоянное хранилище). Как правило, Storage Driver является единственным источником состояния в SDK.
Компоненты Spatium Cloud:
- Auth Service - сервис многофакторной аутентификации в рамках Spatium Cloud. Регулирует доступ к остальным сервисам и отвечает за управление аккаунтами пользователей системы;
- Address Info Service - сервис, агрегирующий информацию от различных провайдеров данных об адресе в блокчейне и позволяющий по запросу получать подробную статистику о текущих активах на указанном адресе и истории операций с ними;
- Asset Info Service - сервис, управляющий метаданными всех обнаруженных ассетов и позволяющий по запросу получать списки поддерживаемых ассетов вместе с их метаданными;
- Rate Info Service - сервис, агрегирующий информацию о текущем и историческом курсе всех поддерживаемых ассетов относительно мировых фиатных валют;
- Blockchain Connector Service - сервис, предоставляющий блокчейн-специфичные алгоритмы для формирования транзакций и отправки их в блокчейн.
Специфические модули
Для упрощенной поддержки распространенных сценариев использования Spatium также поддерживает ряд специфических модулей и сервисов.
Spatium Signer Service
В сценариях, где предпочтительно использование стороннего хранилища секрета или есть возможность использования общей базы существующих пользователей, Spatium SDK & Cloud предлагает Spatium Signer Sevice, отвечающий за хранение второго секрета в схеме 2-из-2 с централизованным сервисом подписи. Для ограничения доступа к секрету и обеспечения соблюдения политик формирования транзакций данный сервис использует существующие элементы инфраструктуры Spatium Cloud.
Spatium Signer Client
В сценариях, где предпочтительно использование стороннего хранилища секрета или есть возможность использования общей базы существующих пользователей, Spatium SDK & Cloud предлагает Spatium Signer Client для взаимодействия со Spatium Signer Sevice. Таким образом, для начала использования SMPC подписи в конечном продукте достаточно предоставить механизм надежного хранения постоянных данных в виде имплементации интерфейса Storage Driver.
SSE+HTTP(S) Транспорт
Специфический модуль SSE+HTTP(S) транспорта предназначен для упрощенного взаимодействия Spatium Signer Client со Spatium Signer Service.