Выбор бэкенда

Keychain предоставляет единый интерфейс SolanaSigner для всех бэкендов, поэтому выбор носит операционный, а не архитектурный характер — его можно изменить позже через конфигурацию. Именно поэтому начните с ваших требований, а не с продукта. Два вопроса решают большинство задач: где хранится приватный ключ и кому разрешено авторизовать подпись с его помощью?

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

Это руководство охватывает подпись на стороне сервера (бэкенд). Когда конечные пользователи подписывают собственные транзакции в браузере, используйте кошелёк через Wallet Standard — см. Подпись в продакшене.

Схема принятия решений

Choosing a Keychain backend

Для локальной разработки и тестов всё это не нужно — используйте бэкенд Memory для прототипирования, а затем переключитесь на один из перечисленных выше производственных бэкендов через конфигурацию.

Разбор вопросов

Вы подписываете транзакции для собственного приложения или для ваших конечных пользователей?

Если вы предоставляете кошельки, которыми конечные пользователи владеют и управляют (потребительские приложения, потоки онбординга), используйте бэкенд встроенного / управляемого кошелька — Privy, Turnkey, CDP, Crossmint или Openfort. Они управляют кошельками отдельных пользователей и аутентификацией от вашего имени.

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

Требуется ли вам многостороннее согласование, институциональное хранение или регуляторный контроль?

Если подписи должны проходить через политику согласования, лимиты расходов или комплаенс-процессы перед их созданием — либо вам необходим регулируемый кастодиан для хранения ключей — используйте бэкенд MPC / институционального хранения: Fireblocks, Dfns, Para или Utila. Они разделяют ключ или берут его под хранение и совместно подписывают транзакции в соответствии с вашей политикой.

Если вам нужен только ключ, подписывающий по запросу, продолжайте ниже.

Вы хотите хранить ключ самостоятельно или доверить его провайдеру?

Если ключ должен храниться у облачного провайдера в аппаратно защищённой инфраструктуре, а политика IAM определяет, кто может подписывать, используйте KMS этого облака:

  • Работаете на AWS → AWS KMS
  • Работаете на GCP → GCP KMS

Если вы хотите самостоятельно управлять ключевой инфраструктурой — или используете мультиоблачную среду либо on-prem — используйте HashiCorp Vault. Вы самостоятельно запускаете и аудируете его; ключ остаётся внутри движка Transit и подписывает по запросу.

Модели хранения

Бэкенды делятся на пять моделей хранения. Приведённая выше схема приведёт вас к одной из них.

  • Самостоятельное хранение (в процессе) — ваше приложение хранит приватный ключ напрямую. Удобно для разработки, но не подходит для продакшена. Бэкенд: Memory.
  • Самостоятельное управление ключами — вы управляете ключевой инфраструктурой; ключ остаётся внутри неё и подписывает по запросу. Бэкенд: HashiCorp Vault.
  • Cloud KMS / HSM — облачный провайдер хранит ключ в аппаратно защищённой инфраструктуре; ключ никогда не покидает сервис, а политика IAM определяет, кто может подписывать. Бэкенды: AWS KMS, GCP KMS.
  • MPC и институциональное хранение — ключ разделён или передан под хранение провайдеру, который совместно подписывает транзакции согласно вашей политике (согласования, лимиты). Бэкенды: Fireblocks, Dfns, Para, Utila.
  • Встроенные и управляемые кошельки — провайдер управляет кошельками от вашего имени, как правило для подключения конечных пользователей. Бэкенды: Privy, Turnkey, CDP, Crossmint, Openfort.

Сравнение бэкендов

БэкендМодель храненияЛучше всего подходит дляПримечания
MemoryСамостоятельное хранение (в процессе)Локальная разработка, тесты, CIСырой ключ в процессе — не использовать в продакшене
HashiCorp VaultСамостоятельное управление ключамиКоманды, использующие собственную инфраструктуру ключейTransit engine; вы сами управляете и проводите аудит
AWS KMSОблачный KMS / HSMБэкенды, работающие на AWSКлюч никогда не покидает KMS; IAM управляет подписью
GCP KMSОблачный KMS / HSMБэкенды, работающие на GCPКлюч никогда не покидает KMS; IAM управляет подписью
FireblocksMPC / институциональное хранениеКазначейства, биржи, регулируемое хранениеДвижок политик и процессы согласования
DfnsMPC-инфраструктура кошельковПрограммные кошельки с контролем политикПодпись Ed25519
ParaMPC-кошелькиПриложения с кошельками на базе MPCAPI-ключ + ID кошелька
UtilaMPC-хранение + со-подписантСуществующие кошельки Solana под управлением UtilasignMessage не поддерживается; транзакцию транслируете вы
PrivyВстроенные кошелькиПотребительские приложения для подключения пользователей к кошелькамВстроенные кошельки под управлением приложения
TurnkeyНекастодиальное управление ключамиПрограммная подпись с контролем политикНекастодиальное управление ключами
CDPУправляемый кошелёк (Coinbase)Приложения на платформе Coinbase Developer PlatformsignMessage принимает только UTF-8
CrossmintУправляемые кошелькиМаркетплейсы и приложения с управляемыми кошелькамиКошельки smart и mpc; signMessage не поддерживается
OpenfortВстроенные бэкенд-кошелькиСерверные кошелькиКлючи хранятся в TEE

Корпоративные сценарии

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

  • Операции с казначейством — разделите операционный «горячий» подписант и «холодный» казначейский. Подкрепите казначейство MPC-хранилищем или облачным HSM и требуйте политики подтверждения перед подписанием крупных транзакций.
  • Рабочие процессы согласования — бэкенды MPC и хранилища (например, Fireblocks) обеспечивают многостороннее согласование перед формированием подписи.
  • Соответствие требованиям и аудит — облачные KMS (AWS/GCP) и Vault ведут журналы аудита подписания; институциональные кастодианы добавляют применение политик и отчётность.
  • Регулируемые среды — храните ключевой материал в HSM, KMS или у институционального кастодиана, чтобы исходные ключи никогда не попадали в ваше приложение.

Ознакомьтесь с рекомендациями для production-среды по безопасной эксплуатации этих бэкендов.

Is this page helpful?