Εξερχόμενα viewing keys (OVKs)
Ένα εξερχόμενο viewing key (OVK) είναι μια τιμή 32 byte που χρησιμοποιείται μόνο για την κρυπτογράφηση του εξερχόμενου κρυπτοκειμένου μιας θωρακισμένης εξόδου. Επιτρέπει σε ένα μέρος να ανακτήσει το απλό κείμενο του note που στάλθηκε (διεύθυνση παραλήπτη, αξία και σημείωμα) χωρίς τη δυνατότητα να δαπανήσει κεφάλαια ή να δει εισερχόμενα notes.
Ο παραλήπτης αποκρυπτογραφεί πάντα το εισερχόμενο note με το δικό του incoming viewing key. Η επιλογή του OVK δεν αλλάζει αυτό που βλέπει ο παραλήπτης. Δεν υπάρχει τυπική κωδικοποίηση για ένα ακατέργαστο OVK· είναι απλώς 32 byte.
Με λίγα λόγια
- Ένα OVK ελέγχει μόνο ποιος μπορεί να ανακτήσει το εξερχόμενο απλό κείμενο μιας θωρακισμένης πληρωμής.
- Τα πορτοφόλια επιλέγουν ανάμεσα σε τρεις πολιτικές: Αποστολέας (κανονική ανάκτηση με το UFVK του λογαριασμού), Προσαρμοσμένο (ανάκτηση με ένα κλειδί που παρέχεις) ή Discard (κανείς δεν μπορεί να ανακτήσει το εξερχόμενο απλό κείμενο από την αλυσίδα).
- Ακόμη και με Discard ή ένα προσαρμοσμένο OVK, ο κάτοχος ενός UFVK εξακολουθεί να βλέπει ποια notes δαπανήθηκαν και μπορεί να υπολογίσει το καθαρό ποσό που έφυγε από τον λογαριασμό.
- Ο μόνος αξιόπιστος τρόπος να διατηρήσεις ένα ποσό αόρατο σε ένα συγκεκριμένο UFVK είναι να διασφαλίσεις ότι τα notes δεν ανήκαν ποτέ σε αυτόν τον λογαριασμό (ξεχωριστός λογαριασμός ή ξεχωριστό πορτοφόλι).
- Οι τρεις πολιτικές υπάρχουν ήδη στο
zcash_client_backend· σχεδόν κάθε πορτοφόλι σήμερα χρησιμοποιεί μόνο την προεπιλεγμένη πολιτική Αποστολέα.
Οι τρεις πολιτικές
Τα πορτοφόλια που βασίζονται στο zcash_client_backend επιλέγουν ένα OvkPolicy όταν δημιουργούν μια συναλλαγή:
| Πολιτική | Εξερχόμενα κρυπτοκείμενα | Ποιος μπορεί αργότερα να ανακτήσει το εξερχόμενο απλό κείμενο |
|---|
| Αποστολέας (προεπιλογή) | Κρυπτογραφημένα στο κανονικό OVK του λογαριασμού | Το Unified Full Viewing Key του λογαριασμού αποστολής |
| Προσαρμοσμένο | Κρυπτογραφημένα στο ή στα κλειδιά που παρέχεις | Όποιος κατέχει το ή τα παρεχόμενα κλειδιά |
| Discard | Δεν χρησιμοποιείται OVK (ovk = ⊥) | Κανείς (ούτε καν ο αποστολέας) |
Ένας constructor ευκολίας δημιουργεί μια πολιτική Custom από μία μόνο τιμή 32 byte, ώστε τόσο το εξωτερικό όσο και το εσωτερικό OVK να είναι το ίδιο κλειδί.

Δες την τεκμηρίωση του OvkPolicy και το ZIP 310.
Σε τι χρησιμεύει κάθε πολιτική
Η πολιτική Αποστολέας είναι η συνήθης συμπεριφορά πορτοφολιού. Αφού γίνει εξόρυξη της συναλλαγής, οποιοσδήποτε κατέχει το UFVK του λογαριασμού μπορεί να αποκρυπτογραφήσει τα εξερχόμενα κρυπτοκείμενα και να ανακτήσει τις διευθύνσεις παραληπτών, τα ποσά και τα σημειώματα.
Η πολιτική Προσαρμοσμένο σου επιτρέπει να δώσεις σε ένα τρίτο μέρος (ελεγκτή, επεξεργαστή πληρωμών, σύστημα αποδείξεων ή ξεχωριστή συσκευή) τη δυνατότητα να αποκρυπτογραφεί συγκεκριμένες εξερχόμενες πληρωμές χωρίς να του δώσεις το πλήρες viewing key. Μπορείς επίσης να χρησιμοποιήσεις ένα εφήμερο κλειδί που απορρίπτεις μετά τη συναλλαγή ή να χρησιμοποιήσεις διαφορετικά κλειδιά για διαφορετικούς αντισυμβαλλομένους, ώστε κανένα μεμονωμένο κλειδί να μη βλέπει κάθε εξερχόμενη πληρωμή.
Το Discard σημαίνει ότι το πορτοφόλι αποστολής δεν μπορεί να ανακτήσει το εξερχόμενο απλό κείμενο από την αλυσίδα. Αυτό είναι χρήσιμο όταν θέλεις να ελαχιστοποιήσεις όσα μπορούν να ανακτηθούν αν το UFVK παραβιαστεί αργότερα ή όταν σκόπιμα δεν θέλεις ένα on-chain αρχείο που μπορεί να ανοίξει το OVK του λογαριασμού.
Τι εξακολουθεί να βλέπει ο κάτοχος ενός UFVK
Ακόμη και όταν χρησιμοποιείται το Discard ή ένα προσαρμοσμένο OVK, ο κάτοχος του UFVK του λογαριασμού μπορεί ακόμη να:
- Εντοπίζει ποια από τα notes του λογαριασμού δαπανήθηκαν (μέσω nullifiers).
- Γνωρίζει τις αξίες αυτών των εισερχόμενων notes.
- Ανακτά τυχόν notes ρέστων (είναι κρυπτογραφημένα στο εσωτερικό incoming viewing key, όχι σε ένα OVK).
- Υπολογίζει, επομένως, το καθαρό ποσό που έφυγε από τον λογαριασμό.
Αυτό που δεν είναι ορατό είναι οι μεμονωμένες διευθύνσεις παραληπτών, ο επιμερισμός του ποσού και τα σημειώματα. Η τεκμηρίωση του WalletWrite προειδοποιεί ότι τα δεδομένα για συναλλαγές που δημιουργήθηκαν με το Discard (ή ένα τυχαίο προσαρμοσμένο OVK) δεν μπορούν να ανακτηθούν από δεδομένα της αλυσίδας, αν χαθεί το τοπικό αρχείο.
Διατήρηση ποσών εκτός ενός συγκεκριμένου UFVK
Το OvkPolicy ελέγχει μόνο την ανάκτηση του εξερχόμενου απλού κειμένου. Δεν αποκρύπτει δαπάνες ή καθαρά ποσά από το UFVK του ίδιου του λογαριασμού.
Ο μόνος αξιόπιστος τρόπος να διατηρήσεις ένα ποσό αόρατο σε ένα συγκεκριμένο UFVK είναι να διασφαλίσεις ότι τα notes που μετέφεραν αυτό το ποσό δεν ανήκαν ποτέ στον λογαριασμό που ελέγχει αυτό το UFVK:
- Ξεχωριστοί λογαριασμοί ZIP-32 (ίδιο seed) — Δημιούργησε έναν νέο δείκτη λογαριασμού, μετέφερε κεφάλαια σε αυτόν και μην εξαγάγεις ποτέ το UFVK αυτού του λογαριασμού. Το UFVK του αρχικού λογαριασμού βλέπει μόνο τη μεταφορά στον νέο λογαριασμό.
- Εντελώς ξεχωριστό πορτοφόλι (διαφορετικό seed) — Χρηματοδότησε ένα νέο πορτοφόλι, δαπάνησε από αυτό και απόρριψε το seed ή το UFVK. Το αρχικό πορτοφόλι καταγράφει μόνο τη μεταφορά χρηματοδότησης.
- Εφήμερα πορτοφόλια μίας χρήσης — Όπως παραπάνω, αλλά αντιμετώπισε το πορτοφόλι δαπάνης ως αναλώσιμο.
Ένα UFVK είναι ανά λογαριασμό. Notes που δεν υπήρξαν ποτέ σε αυτόν τον λογαριασμό δεν εμφανίζονται ποτέ στο υπόλοιπο ή στα σύνολα εκροών του.
Πώς χρησιμοποιούν τα πορτοφόλια τις πολιτικές σήμερα
Σχεδόν κάθε πορτοφόλι παραγωγής χρησιμοποιεί μόνο την προεπιλεγμένη πολιτική Αποστολέας, επομένως το πλήρες εξερχόμενο ιστορικό είναι ανακτήσιμο από το UFVK. Οι άλλες δύο πολιτικές υπάρχουν στη βιβλιοθήκη, αλλά σπάνια εκτίθενται σε διεπαφές χρήστη.
Πιθανές μελλοντικές επιλογές περιλαμβάνουν:
- Μια σημαία ανά συναλλαγή που επιτρέπει στον χρήστη να επιλέγει Προσαρμοσμένο ή Discard για μία μεμονωμένη πληρωμή.
- Μια μόνιμη λειτουργία Discard (η επαναφορά seed θα εμφάνιζε τότε μόνο καθαρές εκροές).
- Προσαρμοσμένα OVK για επιλεκτική αποκάλυψη μεμονωμένων πληρωμών (ελαφρύτερη λύση από μια πλήρη αποκάλυψη πληρωμής ZIP 311).
- Συνεχή χρήση διαχωρισμού λογαριασμών ή πορτοφολιών για ισχυρότερη απομόνωση.
Πόροι
Σχετικές σελίδες