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ć — opłacać transakcje, wysyłać transakcje programowe lub
obsługiwać skarbiec — użyj dedykowanego backendu do zarządzania kluczami zamiast surowej
pary kluczy. Solana Foundation utrzymuje Keychain, ujednoliconą bibliotekę podpisującą (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
oraz Utila.
Ponieważ interfejs jest identyczny dla wszystkich backendów, możesz tworzyć lokalnie z
kluczem w pamięci i przejść na backend produkcyjny poprzez konfigurację,
bez przepisywania kodu aplikacji. Keychain jest kompatybilny z
@solana/kit oraz
Rust SDK.
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?