Транзакція виконується лише за наявності дійсного
підпису від кожного
обов'язкового підписувача. Під час локальної розробки ви зазвичай зберігаєте цей
ключ як Keypair і підписуєте
безпосередньо. У продакшені важливе питання інше: де зберігається приватний
ключ і хто має право авторизувати підпис з його допомогою?
Ніколи не вбудовуйте приватні ключі в клієнтський код, не включайте їх до фронтенду та не додавайте до системи контролю версій. Той, хто отримає ключ, матиме повний контроль над коштами цього акаунту.
Підходи до підписання
| Підхід | Де зберігається ключ | Хто підписує | Найкраще для |
|---|---|---|---|
| Локальний keypair | Файл або змінна середовища на машині | Ваш код, безпосередньо | Локальна розробка, тести, CI |
| Браузерний гаманець | Гаманець кінцевого користувача (напр. Phantom, Solflare) | Кінцевий користувач, для кожної транзакції | Фронтенд-dApps, де користувачі підписують власні транзакції |
| Хмарний KMS / HSM | Сервіс ключів з апаратною підтримкою (AWS KMS, GCP KMS, Vault) | Ваш бекенд запитує підпис у сервісу | Бекенд-сервіси, операції з казначейством, регульовані середовища |
| Керовані / MPC-гаманці | Розподілені або під опікою провайдера | Провайдер спільно підписує відповідно до вашої політики | Вбудовані гаманці, процеси затвердження, інституційне зберігання |
keypair на локальному рівні — єдиний підхід, який розміщує необроблений ключовий матеріал безпосередньо у вашому застосунку. Кожен виробничий підхід зберігає ключ у спеціалізованій інфраструктурі та делегує їй підписання від вашого імені.
Підписання на бекенді
Коли серверу потрібно підписувати транзакції — оплата комісій, надсилання
транзакцій програми або управління казначейством — використовуйте
спеціалізований бекенд для управління ключами замість звичайного keypair. Solana
Foundation підтримує Keychain — уніфіковану бібліотеку
підписання (Rust і TypeScript), яка надає єдиний інтерфейс SolanaSigner для
всіх бекендів із таблиці вище: Memory, HashiCorp Vault, AWS KMS, GCP KMS,
Fireblocks, Privy, Turnkey, CDP, Crossmint, Dfns, Para, Openfort та Utila.
Оскільки інтерфейс є однаковим для всіх бекендів, ви можете розробляти локально
з ключем у пам'яті, а потім перемикатися на виробничий бекенд через конфігурацію
— без переписування коду застосунку. Keychain сумісний з
@solana/kit та
Rust SDK.
Keychain
Уніфіковане підписання для локальних ключів, KMS, HSM та керованих бекендів гаманців.
Вибір бекенду
Порівняйте моделі зберігання та оберіть відповідний бекенд підписання для вашого застосунку.
Повний контрольний список для виробничого середовища — управління ключами, безпека RPC та моніторинг — див. у розділі Production Readiness.
Is this page helpful?