Una transazione viene eseguita solo se contiene una
firma valida da parte di ogni
firmatario richiesto. Durante lo sviluppo locale di solito si gestisce la chiave come
Keypair e si firma direttamente. In
produzione la domanda importante è diversa: dove risiede la chiave privata
e chi è autorizzato a firmare con essa?
Non incorporare mai chiavi private nel codice lato client, non includerle in un frontend né eseguirne il commit nel controllo del codice sorgente. Chiunque ottenga una chiave acquisisce il pieno controllo dei fondi di quell'account.
Approcci alla firma
| Approccio | Dove risiede la chiave | Chi firma | Ideale per |
|---|---|---|---|
| keypair locale | Un file o una variabile d'ambiente sulla macchina | Il tuo codice, direttamente | Sviluppo locale, test, CI |
| Wallet browser | Il wallet dell'utente finale (es. Phantom, Solflare) | L'utente finale, per ogni transazione | dApp frontend in cui gli utenti firmano le proprie transazioni |
| Cloud KMS / HSM | Un servizio di chiavi con supporto hardware (AWS KMS, GCP KMS, Vault) | Il tuo backend richiede una firma al servizio | Servizi backend, operazioni di tesoreria, ambienti regolamentati |
| Wallet gestiti / MPC | Suddivisa o in custodia nell'infrastruttura di un provider | Il provider co-firma in base alla tua policy | Wallet integrati, flussi di approvazione, custodia istituzionale |
Il keypair locale è l'unico approccio che inserisce il materiale grezzo della chiave all'interno dell'applicazione. Ogni approccio in produzione mantiene la chiave in un'infrastruttura dedicata e affida a quest'ultima la firma per conto dell'applicazione.
Firma lato backend
Quando un server deve firmare (pagando le commissioni, inviando transazioni di programma oppure
gestendo una tesoreria), utilizza un backend dedicato di gestione delle chiavi anziché un
keypair non protetto. La Solana Foundation mantiene Keychain, una
libreria di firma unificata (Rust, TypeScript, Python e Go) che espone un'unica
interfaccia SolanaSigner per tutti i backend della tabella qui sopra: Memory,
HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint,
Dfns, Para, Openfort, Utila e Fordefi.
Poiché l'interfaccia è condivisa tra i backend, puoi sviluppare in locale con una
chiave in memoria e passare a un backend di produzione tramite configurazione, senza
riscrivere il codice dell'applicazione (i backend che eseguono il broadcast per te, come Crossmint,
vengono invece chiamati tramite un percorso di firma e invio). Keychain è compatibile con
@solana/kit, con l'SDK Rust, con solders (Python) e con solana-go v2
(Go).
Keychain
Firma unificata tra chiavi locali, KMS, HSM e backend di wallet gestiti.
Scegliere un backend
Confronta i modelli di custodia e scegli il backend di firma più adatto alla tua applicazione.
Per la checklist completa della produzione — gestione delle chiavi, sicurezza RPC e monitoraggio — consulta Production Readiness.
Is this page helpful?