Перейти к содержанию

Обзор системы

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

Signer Service

В сценариях, где предпочтительно использование стороннего хранилища секрета или есть возможность использования общей базы существующих пользователей, Spatium SDK & Cloud предлагает Spatium Signer Sevice, отвечающий за хранение второго секрета в схеме 2-из-2 с централизованным сервисом подписи. Для ограничения доступа к секрету и обеспечения соблюдения политик формирования транзакций данный сервис использует существующие элементы инфраструктуры Spatium Cloud.

Spatium Signer Client

Signer Client

В сценариях, где предпочтительно использование стороннего хранилища секрета или есть возможность использования общей базы существующих пользователей, Spatium SDK & Cloud предлагает Spatium Signer Client для взаимодействия со Spatium Signer Sevice. Таким образом, для начала использования SMPC подписи в конечном продукте достаточно предоставить механизм надежного хранения постоянных данных в виде имплементации интерфейса Storage Driver.

SSE+HTTP(S) Транспорт

Web Transport

Специфический модуль SSE+HTTP(S) транспорта предназначен для упрощенного взаимодействия Spatium Signer Client со Spatium Signer Service.