Το Keychain εκθέτει μία βασική διεπαφή SolanaSigner για κάθε backend, επομένως για
τα περισσότερα backends η επιλογή είναι λειτουργική και όχι αρχιτεκτονική: μπορείτε να την αλλάξετε
αργότερα μέσω ρυθμίσεων. Η εξαίρεση είναι η μορφή της συναλλαγής. Τα Crossmint
και Fordefi native auto mode υπογράφουν και μεταδίδουν από την πλευρά του διακομιστή, και το Fordefi native
manual mode ξαναγράφει τη συναλλαγή πριν την υπογράψει, οπότε η μετάβαση προς ή από ένα
από αυτά αλλάζει τον τρόπο με τον οποίο καλείτε τον signer. Γι' αυτό, ξεκινήστε από τις
απαιτήσεις σας, όχι από ένα προϊόν. Δύο ερωτήματα καθορίζουν τα περισσότερα: πού
βρίσκεται το ιδιωτικό κλειδί και ποιος επιτρέπεται να εγκρίνει μια υπογραφή με αυτό;
Κάθε backend εκτός από το Ledger διατίθεται και στις τέσσερις γλώσσες (Rust, TypeScript,
Python και Go). Το Ledger είναι μόνο για Rust, πίσω από το προαιρετικό χαρακτηριστικό ledger.
Δεν υπάρχει ένα μοναδικό καλύτερο backend. Το καθένα ταιριάζει καλύτερα σε ένα συγκεκριμένο σύνολο περιορισμών: το cloud στο οποίο ήδη τρέχετε, το αν θέλετε να διαχειρίζεστε υποδομή κλειδιών και ποιους ελέγχους κατάσχεσης (custody) και έγκρισης είστε υποχρεωμένοι να έχετε. Η ροή παρακάτω αντιστοιχίζει αυτούς τους περιορισμούς σε ένα backend.
Αυτός ο οδηγός καλύπτει την υπογραφή από το backend (πλευρά διακομιστή). Όταν οι τελικοί χρήστες σας υπογράφουν τις δικές τους συναλλαγές σε πρόγραμμα περιήγησης, χρησιμοποιήστε ένα πορτοφόλι μέσω του Wallet Standard. Δείτε Υπογραφή στην παραγωγή.
Ροή απόφασης
Η τοπική ανάπτυξη και οι δοκιμές δεν χρειάζονται τίποτα από αυτά: χρησιμοποιήστε το backend Memory για πρωτοτυπία και έπειτα μεταβείτε σε ένα από τα backends παραγωγής παραπάνω μέσω ρυθμίσεων.
Εξέταση των ερωτημάτων
Υπογράφετε για τη δική σας εφαρμογή ή για τους τελικούς χρήστες σας;
Αν παρέχετε πορτοφόλια που ανήκουν και λειτουργούν από τελικούς χρήστες (εφαρμογές για καταναλωτές, ροές onboarding), χρησιμοποιήστε ένα backend ενσωματωμένου / διαχειριζόμενου πορτοφολιού: Privy, Turnkey, CDP, Crossmint ή Openfort. Αυτά διαχειρίζονται πορτοφόλια ανά χρήστη και τον έλεγχο ταυτότητας εκ μέρους σας.
Αν υπογράφετε ως η ίδια η εφαρμογή σας (fee payer, treasury, αυτοματισμός backend), συνεχίστε παρακάτω.
Χρειάζεστε έγκριση από πολλούς συμμετέχοντες, θεσμική κατάσχεση (custody) ή ρυθμιστικούς ελέγχους;
Αν οι υπογραφές πρέπει να περάσουν από πολιτική έγκρισης, όριο δαπανών ή ροή συμμόρφωσης πριν παραχθούν, ή χρειάζεστε έναν ρυθμιζόμενο θεματοφύλακα που να κατέχει τα κλειδιά, χρησιμοποιήστε ένα backend MPC / θεσμικής κατάσχεσης: Fireblocks, Dfns, Para, Utila ή Fordefi. Αυτά διαχωρίζουν ή φυλάσσουν το κλειδί και συνυπογράφουν σύμφωνα με την πολιτική σας.
Αν χρειάζεστε μόνο ένα κλειδί που υπογράφει κατόπιν αιτήματος, συνεχίστε παρακάτω.
Θέλετε να κρατάτε εσείς το κλειδί ή να το κρατά ένας πάροχος;
Αν ένας πάροχος cloud πρέπει να κρατά το κλειδί σε υποδομή με υποστήριξη υλικού (hardware-backed) και η πολιτική IAM σας ελέγχει ποιος μπορεί να υπογράφει, χρησιμοποιήστε το KMS αυτού του cloud:
- Αν τρέχετε στο AWS → AWS KMS
- Αν τρέχετε στο GCP → GCP KMS
Αν θέλετε να διαχειρίζεστε μόνοι σας την υποδομή κλειδιών, ή είστε multi-cloud ή on-prem, χρησιμοποιήστε το HashiCorp Vault. Το εκτελείτε και το ελέγχετε εσείς· το κλειδί παραμένει μέσα στη μηχανή Transit και υπογράφει κατόπιν αιτήματος.
Μοντέλα φύλαξης
Τα backends ομαδοποιούνται σε έξι μοντέλα κατάσχεσης (custody). Η παραπάνω ροή σας οδηγεί σε ένα από αυτά.
- Αυτοκατάσχεση (εντός διεργασίας): η εφαρμογή σας κατέχει το ακατέργαστο ιδιωτικό κλειδί. Βολικό για ανάπτυξη, αλλά ακατάλληλο για παραγωγή. Backend: Memory.
- Αυτοκατάσχεση (πορτοφόλι υλικού): το κλειδί δεν εγκαταλείπει ποτέ τη συσκευή Ledger και ένα άτομο επιβεβαιώνει κάθε υπογραφή στην οθόνη της. Ταιριάζει σε διαδραστική υπογραφή από χειριστή, όχι σε υπηρεσίες χωρίς επίβλεψη. Μόνο για Rust, προαιρετικό και μη καλυπτόμενο από τον έλεγχο (audit). Backend: Ledger.
- Αυτοδιαχειριζόμενη διαχείριση κλειδιών: εσείς λειτουργείτε την υποδομή κλειδιών· το κλειδί παραμένει μέσα σε αυτήν και υπογράφει κατόπιν αιτήματος. Backend: HashiCorp Vault.
- Cloud KMS / HSM: ένας πάροχος cloud αποθηκεύει το κλειδί σε υποδομή με υποστήριξη υλικού· το κλειδί δεν εγκαταλείπει ποτέ την υπηρεσία και η πολιτική IAM σας ελέγχει ποιος μπορεί να υπογράφει. Backends: AWS KMS, GCP KMS.
- MPC και θεσμική κατάσχεση: το κλειδί διαχωρίζεται ή φυλάσσεται μέσω ενός παρόχου, ο οποίος συνυπογράφει σύμφωνα με την πολιτική σας (εγκρίσεις, όρια). Backends: Fireblocks, Dfns, Para, Utila, Fordefi.
- Ενσωματωμένα και διαχειριζόμενα πορτοφόλια: ένας πάροχος διαχειρίζεται πορτοφόλια εκ μέρους σας, συχνά για το onboarding τελικών χρηστών. Backends: Privy, Turnkey, CDP, Crossmint, Openfort.
Σύγκριση backend
| Backend | Μοντέλο φύλαξης | Ιδανικό για | Σημειώσεις |
|---|---|---|---|
| Memory | Αυτο-φύλαξη (εντός διεργασίας) | Τοπική ανάπτυξη, δοκιμές, CI | Ακατέργαστο κλειδί στη διεργασία· μην το χρησιμοποιείτε σε παραγωγή |
| Ledger | Αυτοκατάσχεση (πορτοφόλι υλικού) | Διαδραστική υπογραφή από χειριστή μέσω εργαλείων Rust | Μόνο Rust, προαιρετικό χαρακτηριστικό ledger, χωρίς audit· κάθε υπογραφή επιβεβαιώνεται στη συσκευή |
| HashiCorp Vault | Αυτο-φιλοξενούμενη διαχείριση κλειδιών | Ομάδες που διαχειρίζονται τη δική τους υποδομή κλειδιών | Μηχανή Transit· εσείς τη λειτουργείτε και την ελέγχετε |
| AWS KMS | Cloud KMS / HSM | Backends που εκτελούνται στο AWS | Το κλειδί δεν εγκαταλείπει ποτέ το KMS· το IAM ελέγχει την υπογραφή |
| GCP KMS | Cloud KMS / HSM | Backends που εκτελούνται στο GCP | Το κλειδί δεν εγκαταλείπει ποτέ το KMS· το IAM ελέγχει την υπογραφή |
| Fireblocks | MPC / θεσμική φύλαξη | Ταμεία, ανταλλακτήρια, ρυθμιζόμενη φύλαξη | Μηχανή πολιτικών και ροές έγκρισης |
| Dfns | Υποδομή πορτοφολιών MPC | Προγραμματικά πορτοφόλια με έλεγχο πολιτικών | Υπογραφή Ed25519 |
| Para | Πορτοφόλια MPC | Εφαρμογές που επιθυμούν πορτοφόλια υποστηριγμένα από MPC | API key + wallet ID |
| Utila | MPC φύλαξη + συν-υπογράφων | Υπάρχοντα πορτοφόλια Solana διαχειριζόμενα από Utila | signMessage μη υποστηριζόμενο· εσείς μεταδίδετε την tx |
| Fordefi | MPC / θεσμική φύλαξη | Θεσμική θεματοφυλακή με ελέγχους πολιτικής | Black box: εσείς στέλνετε. Native auto: το Fordefi ξαναγράφει και στέλνει. Native manual: το Fordefi ξαναγράφει, εσείς στέλνετε το αποτέλεσμα |
| Privy | Ενσωματωμένα πορτοφόλια | Εφαρμογές καταναλωτών που εντάσσουν χρήστες σε πορτοφόλια | Ενσωματωμένα πορτοφόλια διαχειριζόμενα από την εφαρμογή |
| Turnkey | Μη-θεματοφυλακική διαχείριση κλειδιών | Προγραμματική, υπογραφή με έλεγχο πολιτικών | Μη-θεματοφυλακική διαχείριση κλειδιών |
| CDP | Διαχειριζόμενο πορτοφόλι (Coinbase) | Εφαρμογές στην Πλατφόρμα Coinbase Developer | signMessage δέχεται μόνο payloads UTF-8 |
| Crossmint | Διαχειριζόμενα πορτοφόλια | Αγορές και εφαρμογές με διαχειριζόμενα πορτοφόλια | Μόνο αποστολή: μεταδίδει από την πλευρά του διακομιστή, μπορεί να ξαναγράψει για χορηγία gas· το signMessage δεν υποστηρίζεται |
| Openfort | Ενσωματωμένα backend πορτοφόλια | Πορτοφόλια από την πλευρά του διακομιστή | Κλειδιά αποθηκευμένα σε TEE |
Μορφή δυνατοτήτων
Πέρα από την κατάσχεση (custody), κάθε backend έχει μία μορφή συναλλαγής, και αυτή καθορίζει πώς καλείτε τον signer:
- Υπογραφή: ο πάροχος υπογράφει τα bytes που δημιουργήσατε και εσείς τα μεταδίδετε. Τα περισσότερα backends, συμπεριλαμβανομένων του Ledger και του Fordefi black box mode.
- Αναδιατύπωση και υπογραφή: ο πάροχος ξαναγράφει τη συναλλαγή και έπειτα την υπογράφει χωρίς να τη μεταδώσει. Συνεχίστε από τη συναλλαγή που επιστρέφει. Fordefi native manual mode.
- Υπογραφή και μετάδοση: ο πάροχος υπογράφει και μεταδίδει από την πλευρά του διακομιστή, οπότε μια αποτυχία δεν σημαίνει ότι δεν καταχωρίστηκε τίποτα. Crossmint και Fordefi native auto mode.
Ο πίνακας δυνατοτήτων signer στο README κάθε γλώσσας απαριθμεί τη μορφή κάθε backend· το μοντέλο ασφαλείας εξηγεί τι εγγυάται κάθε μορφή.
Σενάρια επιχειρηματικής κλίμακας
Μία εφαρμογή συχνά χρειάζεται περισσότερα από ένα από αυτά ταυτόχρονα. Επειδή η διεπαφή είναι κοινή, μπορείτε να εκτελείτε διαφορετικό backend ανά ρόλο χωρίς να αλλάξετε τα σημεία κλήσης, εφόσον τα backends έχουν κοινή μορφή δυνατοτήτων.
- Λειτουργίες Treasury — διαχωρισμός ενός λειτουργικού «hot» υπογράφοντος από έναν «cold» υπογράφοντα treasury. Υποστηρίξτε το treasury με MPC custody ή cloud HSM και απαιτήστε πολιτικές έγκρισης πριν από υπογραφές υψηλής αξίας.
- Ροές εργασίας έγκρισης — τα backends MPC και custody (π.χ. Fireblocks) επιβάλλουν έγκριση πολλαπλών μερών πριν παραχθεί μια υπογραφή.
- Συμμόρφωση και έλεγχος — τα cloud KMS (AWS/GCP) και Vault εκπέμπουν αρχεία καταγραφής ελέγχου υπογραφών· οι θεσμικοί θεματοφύλακες προσθέτουν επιβολή πολιτικής και αναφορές.
- Ρυθμιζόμενα περιβάλλοντα — διατηρήστε το υλικό κλειδιών σε HSM, KMS ή θεσμικό θεματοφύλακα, ώστε τα ακατέργαστα κλειδιά να μην αγγίζουν ποτέ την εφαρμογή σας.
Δείτε τις Βέλτιστες πρακτικές παραγωγής για την ασφαλή λειτουργία αυτών των backends.
Is this page helpful?