Το Keychain εκθέτει ένα βασικό περιβάλλον SolanaSigner σε κάθε backend, οπότε
για τα περισσότερα backends η επιλογή είναι λειτουργική, όχι αρχιτεκτονική: μπορείτε να την αλλάξετε
αργότερα μέσω ρύθμισης παραμέτρων. Η εξαίρεση είναι η μορφή της συναλλαγής. Η Crossmint
και η λειτουργία native auto του Fordefi υπογράφουν και μεταδίδουν από την πλευρά του διακομιστή, ενώ η λειτουργία native
manual του Fordefi αναδιατυπώνει τη συναλλαγή πριν την υπογράψει, οπότε η μετάβαση προς ή από
κάποια από αυτές αλλάζει τον τρόπο με τον οποίο καλείτε τον υπογράφοντα. Γι' αυτό, ξεκινήστε από τις
απαιτήσεις σας, όχι από ένα προϊόν. Δύο ερωτήματα αποφασίζουν το μεγαλύτερο μέρος: πού
βρίσκεται το ιδιωτικό κλειδί και ποιος επιτρέπεται να εγκρίνει μια υπογραφή με αυτό;
Κάθε backend εκτός από το Ledger διατίθεται και στις τέσσερις γλώσσες (Rust, TypeScript,
Python και Go). Το Ledger υποστηρίζεται μόνο σε Rust, μέσω του προαιρετικού χαρακτηριστικού ledger.
Δεν υπάρχει ένα μοναδικό καλύτερο backend. Κάθε ένα ταιριάζει καλύτερα σε ένα συγκεκριμένο σύνολο περιορισμών: το cloud στο οποίο ήδη εκτελείτε τις υπηρεσίες σας, το αν θέλετε να διαχειρίζεστε υποδομή κλειδιών και ποιους ελέγχους φύλαξης και έγκρισης απαιτείται να διαθέτετε. Το διάγραμμα ροής παρακάτω αντιστοιχίζει αυτούς τους περιορισμούς σε ένα backend.
Αυτός ο οδηγός καλύπτει την υπογραφή από την πλευρά του backend (διακομιστή). Όταν οι τελικοί χρήστες σας υπογράφουν τις δικές τους συναλλαγές σε πρόγραμμα περιήγησης, χρησιμοποιήστε αντί γι' αυτό ένα πορτοφόλι μέσω του Wallet Standard. Δείτε Υπογραφή σε παραγωγή.
Ροή απόφασης
Η τοπική ανάπτυξη και οι δοκιμές δεν χρειάζονται τίποτα από αυτά: χρησιμοποιήστε το backend Memory για πρωτότυπα και στη συνέχεια μεταβείτε σε ένα από τα backends παραγωγής παραπάνω μέσω ρύθμισης παραμέτρων.
Εξέταση των ερωτημάτων
Υπογράφετε για τη δική σας εφαρμογή ή για τους τελικούς χρήστες σας;
Αν παρέχετε πορτοφόλια που οι τελικοί χρήστες κατέχουν και διαχειρίζονται (εφαρμογές καταναλωτών, ροές εισαγωγής χρηστών), χρησιμοποιήστε ένα backend ενσωματωμένου / διαχειριζόμενου πορτοφολιού: Privy, Turnkey, CDP, Crossmint ή Openfort. Αυτά διαχειρίζονται πορτοφόλια και έλεγχο ταυτότητας ανά χρήστη εκ μέρους σας.
Αν υπογράφετε ως η δική σας εφαρμογή (πληρωτής τελών, ταμείο, αυτοματισμός backend), συνεχίστε παρακάτω.
Χρειάζεστε έγκριση από πολλαπλά μέρη, θεσμική φύλαξη ή ρυθμιστικούς ελέγχους;
Αν οι υπογραφές πρέπει να περάσουν από πολιτική έγκρισης, όριο δαπανών ή ροή συμμόρφωσης πριν δημιουργηθούν, ή χρειάζεστε έναν ρυθμιζόμενο θεματοφύλακα που να κατέχει τα κλειδιά, χρησιμοποιήστε ένα backend MPC / θεσμικής φύλαξης: Fireblocks, Dfns, Para, Utila ή Fordefi. Αυτά διαχωρίζουν ή φυλάσσουν το κλειδί και συνυπογράφουν σύμφωνα με την πολιτική σας.
Αν χρειάζεστε απλώς ένα κλειδί που υπογράφει κατόπιν αιτήματος, συνεχίστε παρακάτω.
Θέλετε να κρατάτε εσείς το κλειδί ή να το κρατά ένας πάροχος;
Αν ένας πάροχος cloud πρέπει να κρατά το κλειδί σε υποδομή με υποστήριξη υλικού και η πολιτική IAM σας ελέγχει ποιος μπορεί να υπογράφει, χρησιμοποιήστε το KMS αυτού του cloud:
- Εκτέλεση στο AWS → AWS KMS
- Εκτέλεση στο GCP → GCP KMS
Αν θέλετε να διαχειρίζεστε μόνοι σας την υποδομή κλειδιών, ή χρησιμοποιείτε πολλαπλά cloud ή εγκαταστάσεις on-prem, χρησιμοποιήστε το HashiCorp Vault. Το εκτελείτε και το ελέγχετε εσείς· το κλειδί παραμένει μέσα στη μηχανή Transit και υπογράφει κατόπιν αιτήματος.
Μοντέλα φύλαξης
Τα backends ομαδοποιούνται σε έξι μοντέλα φύλαξης. Η ροή παραπάνω σας οδηγεί σε ένα από αυτά.
- Αυτο-φύλαξη (εντός διεργασίας): η εφαρμογή σας κατέχει το ακατέργαστο ιδιωτικό κλειδί. Βολική για ανάπτυξη, αλλά ακατάλληλη για παραγωγή. Backend: Memory.
- Αυτο-φύλαξη (πορτοφόλι υλικού): το κλειδί δεν εγκαταλείπει ποτέ τη συσκευή Ledger και ένα πρόσωπο επιβεβαιώνει κάθε υπογραφή στην οθόνη της. Ενδείκνυται για διαδραστική υπογραφή από χειριστή, όχι για υπηρεσίες χωρίς επίβλεψη. Μόνο Rust, προαιρετική και εκτός του πεδίου του ελέγχου ασφαλείας. Backend: Ledger.
- Αυτο-φιλοξενούμενη διαχείριση κλειδιών: εσείς διαχειρίζεστε την υποδομή κλειδιών· το κλειδί παραμένει μέσα σε αυτήν και υπογράφει κατόπιν αιτήματος. Backend: HashiCorp Vault.
- Cloud KMS / HSM: ένας πάροχος cloud αποθηκεύει το κλειδί σε υποδομή με υποστήριξη υλικού· το κλειδί δεν εγκαταλείπει ποτέ την υπηρεσία και η πολιτική IAM σας ελέγχει ποιος μπορεί να υπογράφει. Backends: AWS KMS, GCP KMS.
- MPC και θεσμική φύλαξη: το κλειδί διαχωρίζεται ή φυλάσσεται από έναν πάροχο, ο οποίος συνυπογράφει σύμφωνα με την πολιτική σας (εγκρίσεις, όρια). Backends: Fireblocks, Dfns, Para, Utila, Fordefi.
- Ενσωματωμένα και διαχειριζόμενα πορτοφόλια: ένας πάροχος διαχειρίζεται πορτοφόλια εκ μέρους σας, συχνά για την ένταξη τελικών χρηστών. Backends: Privy, Turnkey, CDP, Crossmint, Openfort.
Σύγκριση backend
| Backend | Μοντέλο φύλαξης | Ιδανικό για | Σημειώσεις |
|---|---|---|---|
| Memory | Αυτο-φύλαξη (εντός διεργασίας) | Τοπική ανάπτυξη, δοκιμές, CI | Ακατέργαστο κλειδί στη διεργασία· μην το χρησιμοποιείτε σε παραγωγή |
| Ledger | Αυτο-φύλαξη (πορτοφόλι υλικού) | Διαδραστική υπογραφή από χειριστή μέσω εργαλείων Rust | Μόνο Rust, προαιρετικό χαρακτηριστικό ledger, χωρίς έλεγχο ασφαλείας· κάθε υπογραφή επιβεβαιώνεται στη συσκευή |
| 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 |
Μορφή δυνατοτήτων
Πέρα από τη φύλαξη, κάθε backend έχει μία μορφή συναλλαγής, η οποία καθορίζει τον τρόπο με τον οποίο καλείτε τον υπογράφοντα:
- Υπογραφή: ο πάροχος υπογράφει τα byte που δημιουργήσατε και εσείς τα μεταδίδετε. Τα περισσότερα backends, συμπεριλαμβανομένων του Ledger και της λειτουργίας black box του Fordefi.
- Αναδιατύπωση και υπογραφή: ο πάροχος αναδιατυπώνει τη συναλλαγή και στη συνέχεια την υπογράφει χωρίς να τη μεταδώσει. Συνεχίστε από τη συναλλαγή που επιστρέφει. Η λειτουργία native manual του Fordefi.
- Υπογραφή και μετάδοση: ο πάροχος υπογράφει και μεταδίδει από την πλευρά του διακομιστή, οπότε μια αποτυχία δεν σημαίνει ότι δεν καταχωρίστηκε τίποτα. Η Crossmint και η λειτουργία native auto του Fordefi.
Ο πίνακας δυνατοτήτων υπογραφόντων στο 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?