Transakcja zostaje wykonana tylko wtedy, gdy zawiera prawidłowy
podpis od każdego
wymaganego podpisującego. Podczas lokalnego tworzenia aplikacji zazwyczaj
przechowujesz ten klucz jako
Keypair i podpisujesz
bezpośrednio. W środowisku produkcyjnym kluczowe pytanie brzmi inaczej: gdzie
przechowywany jest klucz prywatny i kto jest uprawniony do autoryzowania podpisu
nim?
Nigdy nie osadzaj kluczy prywatnych w kodzie po stronie klienta, nie dołączaj ich do frontendu ani nie umieszczaj w kontroli wersji. Każdy, kto uzyska dostęp do klucza, przejmuje pełną kontrolę nad środkami na tym koncie.
Metody podpisywania
| Metoda | Gdzie przechowywany jest klucz | Kto podpisuje | Najlepsze zastosowanie |
|---|---|---|---|
| Lokalny keypair | Plik lub zmienna środowiskowa na maszynie | Twój kod, bezpośrednio | Lokalne tworzenie aplikacji, testy, CI |
| Portfel przeglądarkowy | Portfel użytkownika końcowego (np. Phantom, Solflare) | Użytkownik końcowy, per transakcja | Frontendowe dApps, gdzie użytkownicy podpisują własne transakcje |
| Chmurowy KMS / HSM | Sprzętowo wspierana usługa kluczy (AWS KMS, GCP KMS, Vault) | Twój backend żąda podpisu od usługi | Usługi backendowe, operacje skarbowe, środowiska regulowane |
| Zarządzane portfele / MPC | Podzielone lub powierzone infrastrukturze dostawcy | Dostawca współpodpisuje zgodnie z Twoją polityką | Wbudowane portfele, przepływy zatwierdzania, instytucjonalna opieka |
Lokalne keypair to jedyne podejście, które umieszcza surowy materiał klucza bezpośrednio w aplikacji. Każde podejście produkcyjne przechowuje klucz w dedykowanej infrastrukturze i zleca tej infrastrukturze podpisywanie w Twoim imieniu.
Podpisywanie po stronie backendu
Gdy serwer musi podpisywać — opłacać transakcje, wysyłać transakcje programów
lub zarządzać skarbcem — używaj dedykowanego backendu do zarządzania kluczami
zamiast surowego keypair. Solana Foundation utrzymuje
Keychain, zunifikowaną bibliotekę do podpisywania (Rust
i TypeScript), która udostępnia jeden interfejs SolanaSigner dla każdego
backendu wymienionego w powyższej tabeli: Memory, HashiCorp Vault, AWS KMS, GCP
KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint, Dfns, Para, Openfort i Utila.
Ponieważ interfejs jest identyczny dla wszystkich backendów, możesz rozwijać
aplikację lokalnie z kluczem w pamięci, a następnie przełączyć się na backend
produkcyjny poprzez konfigurację — bez przepisywania kodu aplikacji. Keychain
jest kompatybilny z @solana/kit oraz
Rust SDK.
Keychain
Zunifikowane podpisywanie dla lokalnych kluczy, KMS, HSM i zarządzanych backendów portfeli.
Wybór backendu
Porównaj modele przechowywania kluczy i wybierz odpowiedni backend do podpisywania dla swojej aplikacji.
Pełną listę kontrolną dla środowiska produkcyjnego — zarządzanie kluczami, bezpieczeństwo RPC i monitorowanie — znajdziesz w sekcji Production Readiness.
Is this page helpful?