Una transazione viene eseguita solo se contiene una
firma valida da
parte di ogni firmatario richiesto. Durante lo sviluppo locale di solito si
detiene quella chiave come
Keypair e si firma
direttamente. In produzione la domanda importante è diversa: dove risiede la
chiave privata e chi è autorizzato a utilizzarla per firmare?
Non incorporare mai chiavi private nel codice lato client, non includerle in un frontend né salvarle 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 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 | Suddivisi 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 della tua applicazione. Ogni approccio di produzione mantiene la chiave in un'infrastruttura dedicata e delega a tale infrastruttura la firma per tuo conto.
Firma lato backend
Quando un server deve firmare — pagare commissioni, inviare transazioni di
programma o gestire un treasury — utilizza un backend dedicato alla gestione
delle chiavi anziché un keypair grezzo. La Solana Foundation mantiene
Keychain, una libreria di firma unificata (Rust e
TypeScript) che espone un'unica interfaccia SolanaSigner su tutti i backend
nella tabella sopra: Memory, HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks,
Privy, Turnkey, CDP, Crossmint, Dfns, Para, Openfort e Utila.
Poiché l'interfaccia è identica su tutti 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. Keychain è
compatibile con @solana/kit e con
l'SDK Rust.
Keychain
Firma unificata tra chiavi locali, KMS, HSM e backend di wallet gestiti.
Scelta del backend
Confronta i modelli di custodia e scegli il backend di firma più adatto alla tua applicazione.
Per la checklist completa per la produzione — gestione delle chiavi, sicurezza degli RPC e monitoraggio — consulta Production Readiness.
Is this page helpful?