Σύνδεση με Zcash
Ενδιάμεσο - 7 λεπτά
Με λίγα λόγια
- Συνδέσου αποδεικνύοντας ότι ελέγχεις μια διεύθυνση Zcash, αντί να χρησιμοποιείς κωδικό πρόσβασης
- Χρησιμοποιούνται δύο σχεδιάσεις: η υπογραφή μιας πρόκλησης ή η αποστολή μιας θωρακισμένης πληρωμής με έναν κωδικό στο σημείωμα
- Επειδή οι θωρακισμένες διευθύνσεις αποκρύπτουν το υπόλοιπο και το ιστορικό, η απόδειξη ελέγχου δεν εκθέτει τα οικονομικά σου
- Το μοτίβο βρίσκεται σε πρώιμο στάδιο. Δεν υπάρχει ακόμη επικυρωμένο πρότυπο και οι υλοποιήσεις δεν είναι διαλειτουργικές
Για ποιον είναι αυτό;
- Προγραμματιστές που θέλουν σύνδεση χωρίς κωδικό πρόσβασης χωρίς να συλλέγουν προσωπικά δεδομένα
- Χρήστες που προτιμούν να μη δίνουν μια διεύθυνση email σε κάθε ιστότοπο
- Όποιος θέλει να συνδέεται χωρίς να συνδέει το οικονομικό του ιστορικό με έναν λογαριασμό
Το πρόβλημα
Οι περισσότερες επιλογές σύνδεσης διαρρέουν κάτι:
- Οι κωδικοί πρόσβασης και το email δημιουργούν έναν λογαριασμό συνδεδεμένο με την ταυτότητά σου και αμφότερα καταλήγουν σε διαρροές δεδομένων
- Η σύνδεση μέσω κοινωνικών δικτύων ενημερώνει τον πάροχο ταυτότητας για κάθε μέρος όπου συνδέεσαι και πότε
- Η σύνδεση με πορτοφόλι σε διαφανείς αλυσίδες είναι χειρότερη από όσο φαίνεται. Η σύνδεση ενός πορτοφολιού μπορεί να δώσει στον ιστότοπο ολόκληρο το υπόλοιπο και το ιστορικό συναλλαγών σου, μόνιμα
Συνήθως επιλέγεις ανάμεσα στην ευκολία και την αποκάλυψη.
Γιατί Zcash;
Το Zcash διαχωρίζει την απόδειξη ελέγχου από την αποκάλυψη οικονομικών στοιχείων:
- Οι θωρακισμένες διευθύνσεις διατηρούν ιδιωτικά τα υπόλοιπα και το ιστορικό συναλλαγών, επομένως η απόδειξη ότι κατέχεις μία δεν αποκαλύπτει τίποτα για όσα κατέχεις
- Τα κρυπτογραφημένα σημειώματα μπορούν να μεταφέρουν ιδιωτικά έναν κωδικό σύνδεσης μίας χρήσης μέσα σε μια συναλλαγή
- Τα viewing keys επιτρέπουν την επιλεκτική αποκάλυψη, ώστε μια εφαρμογή να λαμβάνει πρόσβαση ανάγνωσης μόνο σε ό,τι χρειάζεται και σε τίποτα περισσότερο
Πώς λειτουργεί
Έχουν προκύψει δύο προσεγγίσεις. Και οι δύο καταλήγουν με την εφαρμογή να διατηρεί ένα σταθερό αναγνωριστικό για εσένα και χωρίς κωδικό πρόσβασης.
Προσέγγιση 1: Υπόγραψε μια πρόκληση
- Η εφαρμογή δημιουργεί μια τυχαία πρόκληση μίας χρήσης
- Το πορτοφόλι σου υπογράφει αυτή την πρόκληση με το κλειδί πίσω από τη διεύθυνσή σου
- Η εφαρμογή επαληθεύει την υπογραφή και σε συνδέει
Δεν μεταδίδεται τίποτα, επομένως δεν υπάρχουν τέλη και δεν χρειάζεται να περιμένεις ένα μπλοκ. Η σχετική προδιαγραφή είναι το ZIP 304, Υπογραφές διευθύνσεων Sapling, το οποίο παραμένει προσχέδιο, επομένως η υποστήριξη των πορτοφολιών για υπογραφή μηνυμάτων ποικίλλει.
Προσέγγιση 2: Απόδειξέ το με μια θωρακισμένη πληρωμή
- Η εφαρμογή δημιουργεί έναν κωδικό μίας χρήσης και εμφανίζει ένα αίτημα πληρωμής
- Στέλνεις μια μικρή θωρακισμένη συναλλαγή με αυτόν τον κωδικό στο σημείωμα
- Η εφαρμογή παρακολουθεί για το σημείωμα, αντιστοιχίζει τον κωδικό και σε συνδέει
Αυτό λειτουργεί με πορτοφόλια που ήδη υποστηρίζουν σημειώματα σήμερα, δηλαδή τα περισσότερα από αυτά. Το αντάλλαγμα είναι ότι κοστίζει τέλη δικτύου και περιμένεις επιβεβαίωση.
Διατήρησε τη διεύθυνση ιδιωτική
Μια εφαρμογή δεν χρειάζεται να αποθηκεύει τη διεύθυνσή σου για να σε αναγνωρίζει. Ορισμένες υλοποιήσεις τη δημιουργούν hash μαζί με μια τιμή ειδική για την εφαρμογή, ώστε κάθε ιστότοπος να βλέπει ένα διαφορετικό, σταθερό αναγνωριστικό για τον ίδιο χρήστη. Αυτό εμποδίζει τους ιστότοπους να συγκρίνουν πληροφορίες για να συνδέσουν τους λογαριασμούς σου.
Ανταλλάγματα
Αξίζει να τα κατανοήσεις πριν αναπτύξεις κάτι πάνω σε αυτό ή βασιστείς σε αυτό.
| Υπογεγραμμένη πρόκληση | Θωρακισμένη πληρωμή |
|---|
| Κόστος | Δωρεάν | Τέλη δικτύου ανά σύνδεση |
| Ταχύτητα | Άμεση | Περιμένει επιβεβαίωση |
| Υποστήριξη πορτοφολιού | Περιορισμένη, το ZIP 304 είναι προσχέδιο | Ευρεία, χρειάζεται μόνο σημειώματα |
| Αφήνει εγγραφή στην αλυσίδα | Όχι | Ναι, υπάρχει μια συναλλαγή |
Κοινοί περιορισμοί:
- Δεν υπάρχει ανάκτηση λογαριασμού από προεπιλογή. Η απώλεια του κλειδιού σημαίνει απώλεια του λογαριασμού, εκτός αν η εφαρμογή σχεδιάσει μια διαδρομή ανάκτησης
- Η επαναχρησιμοποίηση διεύθυνσης μπορεί να σε συνδέσει. Η χρήση της ίδιας διεύθυνσης σε πολλούς ιστότοπους αναδημιουργεί το πρόβλημα παρακολούθησης, γι’ αυτό έχουν σημασία τα αναγνωριστικά ειδικά για την εφαρμογή
- Δεν υπάρχει επικυρωμένο πρότυπο. Κάθε έργο έχει το δικό του σχήμα, επομένως μια σύνδεση που έχει δημιουργηθεί για ένα δεν λειτουργεί με ένα άλλο
- Δεν είναι ανωνυμία από μόνη της. Αποκρύπτει τα οικονομικά σου από την εφαρμογή, αλλά η εφαρμογή μπορεί ακόμη να δημιουργεί προφίλ για όσα κάνεις μόλις βρεθείς μέσα
Συνηθισμένα λάθη που πρέπει να αποφύγεις
- Μην επαναχρησιμοποιείς έναν κωδικό πρόκλησης. Κάθε κωδικός πρέπει να είναι μίας χρήσης και να λήγει γρήγορα, αλλιώς κάποιος που έχει υποκλαπεί μπορεί να χρησιμοποιηθεί ξανά
- Μην ζητάς από τους χρήστες να στέλνουν σημαντικό ποσό για να συνδεθούν. Η πληρωμή είναι μια απόδειξη, επομένως το ποσό πρέπει να είναι ασήμαντο
- Μην αποθηκεύεις την ακατέργαστη διεύθυνση όταν ένα αναγνωριστικό ειδικό για την εφαρμογή θα έκανε την ίδια δουλειά
- Μην υποθέτεις ότι η υπογραφή μηνυμάτων λειτουργεί παντού. Έλεγξε τα πορτοφόλια που έχουν πραγματικά οι χρήστες σου
- Μη θεωρείς ένα σημείωμα μυστικό εκ των υστέρων. Αποδεικνύει ότι ο αποστολέας ενήργησε, δεν είναι κωδικός πρόσβασης
Έργα που το εξερευνούν
Αυτά δημιουργήθηκαν για την κατηγορία Zcash Login του ZecHub Hackathon 3.0. Είναι πειράματα και όχι ολοκληρωμένα προϊόντα, και δείχνουν πόσο διαφορετικά μπορεί να υλοποιηθεί η ίδια ιδέα.
- ZecAuth - ένα πρωτόκολλο σύνδεσης πορτοφολιού για το Zcash, στο πνεύμα αυτού που κάνει το WalletConnect αλλού. Η εφαρμογή εμφανίζει έναν κωδικό QR ή έναν σύνδεσμο
zecauth:// που μεταφέρει μια πρόκληση μαζί με τις δυνατότητες που ζητά, όπως σύνδεση, αιτήματα πληρωμής ή πρόσβαση προβολής. Καμία συναλλαγή, κανένα τέλη, καμία αλληλεπίδραση με την αλυσίδα. Παρέχει μια γραπτή προδιαγραφή πρωτοκόλλου μαζί με τον κώδικα
- ZShield - μετατρέπει μια θωρακισμένη διεύθυνση σε W3C DID και ταυτότητα OpenID Connect. Ο browser δημιουργεί ένα ζεύγος κλειδιών, ο διακομιστής εκδίδει ένα nonce μέσω μιας διεπαφής τύπου ZIP 304, το πορτοφόλι το υπογράφει και ο διακομιστής επιστρέφει ένα JWT. Επειδή το αποτέλεσμα είναι συμβατό με OIDC, οι υπάρχουσες εφαρμογές μπορούν να το χρησιμοποιήσουν χωρίς ειδική ενσωμάτωση
- ZecPass - αποδεικνύει την ιδιοκτησία μέσω ενός υπογεγραμμένου σημειώματος και έχει δημιουργηθεί έτσι ώστε η εφαρμογή να μη μαθαίνει ποτέ καθόλου τη διεύθυνση του χρήστη. Παράγει ένα hash περιορισμένο στο πεδίο της εφαρμογής για χρήση ως σταθερό αναγνωριστικό, διατηρεί τις προκλήσεις μίας χρήσης και χρονικά περιορισμένες και παρέχει ένα έτοιμο κουμπί React με μια βιβλιοθήκη επαλήθευσης Node
- Portal - σύνδεση στέλνοντας μια θωρακισμένη συναλλαγή με έναν κωδικό μίας χρήσης στο σημείωμα, που εκτελείται στο mainnet. Η ίδια ροή επαναχρησιμοποιείται για το ξεκλείδωμα πληρωμένου περιεχομένου και για την αποστολή ή λήψη χρημάτων από έναν σύνδεσμο
- ZcashMe - χρησιμοποιεί μια θωρακισμένη πληρωμή ως την απόδειξη ταυτότητας και εστιάζει στο χάσμα από desktop σε mobile, ώστε η σύνδεση σε ένα laptop να μη χρειάζεται browser extension
- ZBooks - ένα εργαλείο λογιστικής και πληρωμών που αντιμετωπίζει τη σύνδεση με Zcash ως ένα επαναχρησιμοποιήσιμο auth primitive αντί ως το ίδιο το προϊόν και διαβάζει δεδομένα ταμείου μέσω μιας Unified Full Viewing Key
Σχετικές σελίδες