Μια συναλλαγή εκτελείται μόνο εάν φέρει έγκυρη
υπογραφή από κάθε
απαιτούμενο υπογράφοντα. Κατά την τοπική ανάπτυξη συνήθως διατηρείτε αυτό το κλειδί ως
Keypair και υπογράφετε απευθείας. Στην
παραγωγή το σημαντικό ερώτημα είναι διαφορετικό: πού βρίσκεται το ιδιωτικό κλειδί
και ποιος έχει δικαίωμα να εξουσιοδοτήσει μια υπογραφή με αυτό;
Μην ενσωματώνετε ποτέ ιδιωτικά κλειδιά σε κώδικα πλευράς πελάτη, μην τα συμπεριλαμβάνετε σε frontend bundle, ούτε να τα δεσμεύετε στον έλεγχο πηγαίου κώδικα. Όποιος αποκτήσει ένα κλειδί αποκτά πλήρη έλεγχο των κεφαλαίων αυτού του λογαριασμού.
Προσεγγίσεις υπογραφής
| Προσέγγιση | Πού βρίσκεται το κλειδί | Ποιος υπογράφει | Ιδανικό για |
|---|---|---|---|
| Τοπικό keypair | Ένα αρχείο ή μεταβλητή περιβάλλοντος στο μηχάνημα | Ο κώδικάς σας, άμεσα | Τοπική ανάπτυξη, δοκιμές, CI |
| Πορτοφόλι περιηγητή | Το πορτοφόλι του τελικού χρήστη (π.χ. Phantom, Solflare) | Ο τελικός χρήστης, ανά συναλλαγή | Frontend dApps όπου οι χρήστες υπογράφουν τις δικές τους συναλλαγές |
| Cloud KMS / HSM | Μια υπηρεσία κλειδιών με υλικό υποστήριξη (AWS KMS, GCP KMS, Vault) | Το backend σας ζητά υπογραφή από την υπηρεσία | Υπηρεσίες backend, λειτουργίες ταμείου, ρυθμιζόμενα περιβάλλοντα |
| Διαχειριζόμενα / MPC πορτοφόλια | Κατανεμημένα ή σε θεματοφυλακή στις υποδομές ενός παρόχου | Ο πάροχος συνυπογράφει σύμφωνα με την πολιτική σας | Ενσωματωμένα πορτοφόλια, ροές εγκρίσεων, θεσμική θεματοφυλακή |
Το τοπικό keypair είναι η μόνη προσέγγιση που τοποθετεί ακατέργαστο υλικό κλειδιού μέσα στην εφαρμογή σας. Κάθε προσέγγιση παραγωγής διατηρεί το κλειδί σε αποκλειστική υποδομή και ζητά από αυτή την υποδομή να υπογράφει εκ μέρους σας.
Υπογραφή Backend
Όταν ένας διακομιστής χρειάζεται να υπογράψει (πληρωμή τελών, αποστολή συναλλαγών προγράμματος ή
διαχείριση ταμείου), χρησιμοποιήστε ένα αποκλειστικό backend διαχείρισης κλειδιών αντί για ένα ακατέργαστο
keypair. Το Solana Foundation συντηρεί το Keychain, μια
ενιαία βιβλιοθήκη υπογραφής (Rust, TypeScript, Python και Go) που εκθέτει ένα
interface SolanaSigner σε κάθε backend του παραπάνω πίνακα: Memory,
HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint,
Dfns, Para, Openfort, Utila και Fordefi.
Επειδή το interface είναι κοινό σε όλα τα backends, μπορείτε να αναπτύσσετε τοπικά με ένα
κλειδί στη μνήμη και να μεταβαίνετε σε backend παραγωγής μέσω διαμόρφωσης, χωρίς
να ξαναγράφετε κώδικα εφαρμογής (τα backends που κάνουν μετάδοση για εσάς, όπως το Crossmint,
καλούνται μέσω διαδρομής υπογραφής και αποστολής). Το Keychain είναι συμβατό με
το @solana/kit, το
Rust SDK, το solders (Python) και το solana-go v2
(Go).
Keychain
Ενιαία υπογραφή σε τοπικά κλειδιά, KMS, HSM και διαχειριζόμενα backends πορτοφολιών.
Επιλογή backend
Συγκρίνετε μοντέλα θεματοφυλακής και επιλέξτε το κατάλληλο backend υπογραφής για την εφαρμογή σας.
Για την πλήρη λίστα ελέγχου παραγωγής — διαχείριση κλειδιών, ασφάλεια RPC και παρακολούθηση — δείτε Production Readiness.
Is this page helpful?