Μια συναλλαγή εκτελείται μόνο εάν φέρει έγκυρη
υπογραφή από κάθε
απαιτούμενο υπογράφοντα. Κατά την τοπική ανάπτυξη συνήθως διατηρείτε αυτό το κλειδί ως
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) που εκθέτει μία ενιαία
διεπαφή SolanaSigner σε όλα τα backend του παραπάνω πίνακα: Memory,
HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint,
Dfns, Para, Openfort, Utila και Fordefi.
Επειδή η διεπαφή είναι κοινή σε όλα τα backend, μπορείτε να αναπτύσσετε τοπικά με ένα
κλειδί στη μνήμη και να μεταβείτε σε ένα backend παραγωγής μέσω ρυθμίσεων, χωρίς
να ξαναγράψετε τον κώδικα της εφαρμογής (τα backend που κάνουν μετάδοση για εσάς, όπως το 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?