Transakcja zostaje wykonana tylko wtedy, gdy zawiera prawidłowy
podpis od każdego
wymaganego podpisującego. Podczas lokalnego tworzenia zazwyczaj przechowujesz ten klucz jako
Keypair i podpisujesz bezpośrednio. W środowisku produkcyjnym kluczowe pytanie jest inne: gdzie przechowywany jest klucz prywatny
i kto jest uprawniony do autoryzowania podpisu?
Nigdy nie umieszczaj kluczy prywatnych w kodzie po stronie klienta, nie dołączaj ich do frontendu ani nie przechowuj 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 |
|---|---|---|---|
| Lokalna para kluczy | Plik lub zmienna środowiskowa na maszynie | Twój kod, bezpośrednio | Lokalne tworzenie, 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 |
| Cloud KMS / HSM | Sprzętowa usługa zarządzania kluczami (AWS KMS, GCP KMS, Vault) | Twój backend żąda podpisu od usługi | Usługi backendowe, operacje skarbcowe, środowiska regulowane |
| Portfele zarządzane / MPC | Podzielone lub przechowywane w infrastrukturze dostawcy | Dostawca współpodpisuje zgodnie z Twoją polityką | Wbudowane portfele, przepływy zatwierdzania, instytucjonalna opieka nad aktywami |
Lokalna para kluczy to jedyna metoda, która umieszcza surowy materiał klucza bezpośrednio w Twojej 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ć transakcje (opłacanie opłat, wysyłanie transakcji programów lub
zarządzanie skarbcem), użyj dedykowanego backendu do zarządzania kluczami zamiast surowego
keypair. Solana Foundation utrzymuje Keychain,
ujednoliconą bibliotekę podpisywania (Rust, TypeScript, Python i Go), która udostępnia jeden interfejs
SolanaSigner dla każdego backendu z powyższej tabeli: Memory,
HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint,
Dfns, Para, Openfort, Utila i Fordefi.
Ponieważ interfejs jest wspólny dla wszystkich backendów, możesz rozwijać aplikację lokalnie z kluczem
przechowywanym w pamięci, a następnie przełączyć się na backend produkcyjny za pomocą konfiguracji, bez
przepisywania kodu aplikacji (backendy, które same rozgłaszają transakcje, takie jak Crossmint,
są wywoływane za pomocą ścieżki „podpisz i wyślij”). Keychain jest zgodny z
@solana/kit,
Rust SDK, solders (Python) i solana-go v2
(Go).
Keychain
Ujednolicone podpisywanie dla kluczy lokalnych, KMS, HSM i zarządzanych backendów portfelowych.
Wybór backendu
Porównaj modele przechowywania kluczy i wybierz odpowiedni backend podpisujący dla swojej aplikacji.
Pełną listę kontrolną dla środowiska produkcyjnego — zarządzanie kluczami, bezpieczeństwo RPC i monitorowanie — znajdziesz w Production Readiness.
Is this page helpful?