
Σειρά: Zcash από πρώτες αρχές . Άρθρο 0 . Η άγκυρα Κοινό: εντελώς αρχάριοι. Δεν απαιτούνται γνώσεις κρυπτογραφίας, blockchain ή μαθηματικών. Τι θα μάθεις: ένα σωστό νοητικό μοντέλο για το πώς το Zcash κρύβει ποιος πλήρωσε ποιον και πόσο, ενώ επιτρέπει σε ολόκληρο τον κόσμο να επαληθεύει ότι δεν πλαστογραφήθηκαν χρήματα ούτε δαπανήθηκαν δύο φορές.
Κάθε επόμενο άρθρο αυτής της σειράς εστιάζει σε ένα κομμάτι της μηχανής που πρόκειται να γνωρίσεις. Επομένως, αν μια λέξη εδώ σου φαίνεται αόριστη, καλό. Είναι υπόσχεση ότι θα επιστρέψουμε και θα την εξηγήσουμε σωστά.
Φαντάσου ότι το τραπεζικό σου αντίγραφο ήταν καρφωμένο σε έναν τοίχο στην πλατεία της πόλης. Για πάντα. Οποιοσδήποτε (ο ιδιοκτήτης του σπιτιού σου, ο εργοδότης σου, ένας άγνωστος, ένας μελλοντικός εργοδότης, μια κυβέρνηση) θα μπορούσε να διαβάσει κάθε πληρωμή ενοικίου, κάθε ιατρικό λογαριασμό, κάθε δωρεά, κάθε καφέ και να εντοπίσει ακριβώς σε ποιον έστειλες χρήματα και ποιος έστειλε χρήματα σε εσένα.
Αυτό δεν είναι ένα δυστοπικό υποθετικό σενάριο. Έτσι λειτουργεί περίπου το Bitcoin.
Το Bitcoin συχνά αποκαλείται «ανώνυμο», αλλά δεν είναι. Είναι ψευδωνυμικό: το όνομά σου δεν βρίσκεται στο καθολικό, όμως κάθε συναλλαγή, ποσό και σύνδεση μεταξύ διευθύνσεων είναι δημόσια και μόνιμη. Ολόκληρος ο τομέας της «ανάλυσης αλυσίδας» υπάρχει για να αφαιρεί αυτό το λεπτό ψευδώνυμο και να συνδέει διευθύνσεις με πραγματικούς ανθρώπους. Μόλις μία από τις διευθύνσεις σου συνδεθεί με εσένα, το οικονομικό ιστορικό σου ξετυλίγεται.
Το Zcash δημιουργήθηκε για να απαντήσει σε μια παραπλανητικά δύσκολη ερώτηση:
Μπορούμε να έχουμε χρήματα που είναι απολύτως ιδιωτικά, κρύβοντας τον αποστολέα, τον παραλήπτη και το ποσό, ενώ εξακολουθούμε να επιτρέπουμε σε οποιονδήποτε να επαληθεύει ότι ακολουθήθηκαν οι κανόνες;
Αυτοί οι δύο στόχοι συγκρούονται μεταξύ τους. Ένα δημόσιο καθολικό είναι επαληθεύσιμο επειδή όλοι μπορούν να το δουν. Ιδιωτικότητα σημαίνει ότι κανείς δεν μπορεί να το δει. Πώς λοιπόν μπορεί το κοινό να επαληθεύσει κάτι που δεν επιτρέπεται να εξετάσει;
Η επίλυση αυτού του παραδόξου είναι ολόκληρη η ιστορία αυτής της σειράς. Ας αρχίσουμε.
Πριν από οτιδήποτε άλλο, ας ξεκαθαρίσουμε μια κοινή παρανόηση: Το Zcash δεν είναι «το ιδιωτικό νόμισμα». Είναι ένα νόμισμα που προσφέρει την ιδιωτικότητα ως επιλογή. Στην πραγματικότητα ξεκίνησε ως fork του Bitcoin και φέρει δύο παράλληλα συστήματα στο ίδιο blockchain.
| Διαφανής κόσμος | Θωρακισμένος κόσμος | |
|---|---|---|
| Ιδιωτικότητα | Δημόσια, όπως ακριβώς στο Bitcoin | Ιδιωτική |
| Οι διευθύνσεις αρχίζουν με | t... | z... ή u... |
| Αποστολέας / παραλήπτης / ποσό | Ορατά σε όλους | Κρυφά από όλους |
| Υποκείμενη τεχνολογία | Δημόσιο καθολικό τύπου Bitcoin | Κρυπτογραφικά commitments + αποδείξεις μηδενικής γνώσης |
Τα χρήματα μπορούν ακόμη και να διασχίσουν τα σύνορα μεταξύ τους: η μεταφορά κεφαλαίων στον θωρακισμένο κόσμο ονομάζεται shielding και η μεταφορά τους πάλι έξω ονομάζεται deshielding.
Ο διαφανής κόσμος είναι «το Bitcoin που ήδη καταλαβαίνεις σε γενικές γραμμές». Είναι ο θωρακισμένος κόσμος που περιέχει όλη την όμορφη κρυπτογραφία, και είναι ο μόνος κόσμος που ενδιαφέρει αυτή τη σειρά.

Αυτή είναι η μοναδική νοητική εικόνα που πρέπει να κρατήσεις για το υπόλοιπο άρθρο. Θα επιστρέφουμε σε αυτήν συνεχώς.
Φαντάσου έναν τεράστιο δημόσιο πίνακα ανακοινώσεων που όλοι στη Γη μπορούν να βλέπουν ανά πάσα στιγμή.
Η λήψη χρημάτων σημαίνει ότι κάποιος καρφιτσώνει έναν σφραγισμένο, αδιαφανή φάκελο στον πίνακα. Μέσα στον φάκελο βρίσκεται πόσα χρήματα περιέχει και ένα μυστικό που μόνο ο παραλήπτης μπορεί να διαβάσει, επειδή ο φάκελος είναι κλειδωμένος με το προσωπικό κλειδί αυτού του παραλήπτη. Ολόκληρος ο κόσμος βλέπει ότι εμφανίστηκε ένας φάκελος. Κανείς εκτός από τον ιδιοκτήτη δεν μπορεί να δει τι περιέχει.
Ο πίνακας μόνο μεγαλώνει. Οι φάκελοι δεν αφαιρούνται ούτε σβήνονται ποτέ. Νέοι φάκελοι καρφιτσώνονται επάνω του, για πάντα.
Η δαπάνη χρημάτων σημαίνει ότι πηγαίνεις πίσω από μια κουρτίνα, αποδεικνύεις «κατέχω έναν από τους αδαπάνητους φακέλους σε αυτόν τον πίνακα και επιτρέπεται να τον ανοίξω», έπειτα ρίχνεις ένα μοναδικό token ακύρωσης σε έναν δημόσιο κάδο «δαπανημένων» και καρφιτσώνεις νέους φακέλους για όποιον πληρώνεις.
Αυτή η μικρή τελετουργία (καρφίτσωσε ένα token ακύρωσης, καρφίτσωσε νέους φακέλους, όλα πίσω από μια κουρτίνα) είναι μια πληρωμή Zcash. Όλα τα υπόλοιπα είναι λεπτομέρειες.
Τώρα ας δώσουμε σε αυτά τα αντικείμενα τα πραγματικά τους ονόματα.
Αυτοί οι πέντε όροι είναι ολόκληρο το λεξιλόγιο των θωρακισμένων συναλλαγών Zcash. Μάθε τους ως μια ιστορία, όχι ως γλωσσάρι, και θα τους θυμάσαι.
| Στην ιστορία | Πραγματικός όρος Zcash | Τι είναι στην πραγματικότητα |
|---|---|---|
| Τα περιεχόμενα του φακέλου (ποσό + ιδιοκτήτης + ένα μυστικό) | Note | Το ιδιωτικό «νόμισμα»: ένα τμήμα αξίας που ανήκει σε κάποιον |
| Ο σφραγισμένος, αδιαφανής φάκελος στον πίνακα | Note commitment | Μια κρυπτογραφική σφραγίδα που αποδεικνύει ότι υπάρχει ένας φάκελος ενώ κρύβει το περιεχόμενό του |
| Ο ίδιος ο πίνακας ανακοινώσεων | Note commitment tree | Ένα αρχείο μόνο προσθήκης για κάθε note που δημιουργήθηκε ποτέ |
| Το token ακύρωσης στον κάδο «δαπανημένων» | Nullifier | Ένας μοναδικός δείκτης που σημαίνει «αυτό το note έχει πλέον δαπανηθεί» |
| Η μαγεία «πίσω από την κουρτίνα» | Απόδειξη μηδενικής γνώσης | Μια απόδειξη ότι ολόκληρη η δαπάνη είναι έγκυρη, χωρίς να αποκαλύπτει τίποτα από αυτήν |
Αν δεν θυμάσαι τίποτα άλλο από αυτό το άρθρο, θυμήσου αυτόν τον πίνακα. Όσα ακολουθούν είναι απλώς το γιατί κάθε κομμάτι πρέπει να έχει το συγκεκριμένο σχήμα.
Αυτό είναι το μέρος που οι περισσότερες επεξηγήσεις παραλείπουν, και είναι ακριβώς το μέρος που ξεχωρίζει το «απομνημόνευσα μερικές λέξεις» από το «καταλαβαίνω τον σχεδιασμό». Κάθε ένα από τα πέντε κομμάτια υπάρχει για να λύσει ένα συγκεκριμένο πρόβλημα.
Ένας συνηθισμένος φάκελος μπορεί να ανοιχτεί με ατμό. Ένα κρυπτογραφικό note commitment δεν μπορεί. Σκέψου το ως έναν μαγικά σφραγισμένο, πλήρως αδιαφανή φάκελο με δύο υπερδυνάμεις:
Πώς μπορεί μια σφραγίδα να κάνει και τα δύο ταυτόχρονα; Αυτή είναι μια πραγματική ερώτηση με απάντηση. Είναι το θέμα του Άρθρου 3 (commitments). Προς το παρόν, δέξου τον φάκελο ως μαγικό και συνέχισε.
Όταν δαπανάς ένα note, δημοσιεύεις το nullifier του, το «token ακύρωσης». Αυτό το token υπολογίζεται από το ίδιο το note και το μυστικό κλειδί σου. Αυτή η συνταγή εξασφαλίζει ταυτόχρονα τρεις ιδιότητες και καθεμία έχει σημασία:
Αυτή η τρίτη ιδιότητα είναι η καρδιά της ιδιωτικότητας του Zcash, και αξίζει τη δική της ενότητα παρακάτω.
Όλα συμβαίνουν πίσω από μια κουρτίνα και αυτό που δίνεις στον κόσμο μετά είναι μια απόδειξη μηδενικής γνώσης, ένα είδος μη πλαστογραφήσιμου πιστοποιητικού. Επιβεβαιώνει σιωπηρά όλα τα ακόλουθα ταυτόχρονα:
Το θαύμα είναι ότι η απόδειξη αποκαλύπτει κανένα από αυτά τα στοιχεία. Ούτε το ποσό, ούτε τις διευθύνσεις, ούτε ποιος φάκελος είναι. Σε πείθει μόνο ότι κάθε παραπάνω δήλωση είναι αληθινή. Το πώς είναι αυτό δυνατό αποτελεί το Άρθρο 5 (αποδείξεις μηδενικής γνώσης), την κορύφωση της σειράς.
Ένα note γεννιέται, ζει στον πίνακα και τελικά πεθαίνει, και το κρίσιμο είναι ότι η γέννηση και ο θάνατός του φαίνονται άσχετα σε οποιονδήποτε παρακολουθεί.

Ας παρακολουθήσουμε την Alice να πληρώνει τον Bob, με κάθε δημόσιο και ιδιωτικό βήμα επισημασμένο.

Παρατήρησε την ασυμμετρία που κάνει την ιδιωτικότητα να λειτουργεί:
Πώς γνωρίζει ο Bob ότι πληρώθηκε; Το note του είναι κρυπτογραφημένο για το κλειδί του. Σαρώνει συνεχώς τον πίνακα και μόνο οι δικοί του φάκελοι ανοίγουν για εκείνον, σαν να έχει το μοναδικό κλειδί που ταιριάζει σε ένα συγκεκριμένο σύνολο κλειδαριών. Ο μηχανισμός πίσω από αυτό είναι τα viewing keys, ένα επόμενο θέμα.
| Γεγονός σχετικά με την πληρωμή | Ορατό στο κοινό; |
|---|---|
| Ότι συνέβη μια θωρακισμένη συναλλαγή | Ναι |
| Ότι τήρησε όλους τους κανόνες (καμία πλαστογράφηση, καμία διπλή δαπάνη) | Ναι (μέσω της απόδειξης) |
| Ποιος έστειλε τα χρήματα | Κρυφό |
| Ποιος τα έλαβε | Κρυφό |
| Πόσα στάλθηκαν | Κρυφό |
| Ποιο προηγούμενο note δαπανήθηκε | Κρυφό |
Αυτή είναι η λύση του παραδόξου από την Ενότητα 1. Το κοινό επαληθεύει τους κανόνες, όχι τα περιεχόμενα. Η επαλήθευση και η ιδιωτικότητα σταματούν να συγκρούονται, επειδή η απόδειξη μηδενικής γνώσης σου επιτρέπει να ελέγξεις το πρώτο χωρίς να αγγίξεις το δεύτερο.
Αν κατανοείς αυτή τη μία ιδέα, κατανοείς γιατί το Zcash είναι ιδιωτικό. Διάβασέ το αργά.
Επομένως, ένας εξωτερικός παρατηρητής βλέπει μια ροή φακέλων να εμφανίζεται και μια ροή από tokens ακύρωσης να εμφανίζεται, αλλά δεν μπορεί να τα αντιστοιχίσει. Δεν μπορεί να πει «το token ακύρωσης που ρίχτηκε σήμερα αντιστοιχεί στον φάκελο που καρφιτσώθηκε τον περασμένο Μάρτιο». Η σύνδεση υπάρχει μόνο στη μυστική γνώση του ιδιοκτήτη του note και η απόδειξη μηδενικής γνώσης επιβεβαιώνει ότι η σύνδεση είναι έγκυρη χωρίς να την αποκαλύπτει.
Αυτή η σπασμένη σύνδεση είναι το στοιχείο με το οποίο τρέφονται οι εταιρείες ανάλυσης αλυσίδας στο Bitcoin και το στοιχείο που το Zcash αποκόπτει σκόπιμα.
Δοκίμασε τη διαίσθησή σου: Αν τα nullifiers υπολογίζονταν αντί μόνο από το note (χωρίς τη συμμετοχή μυστικού κλειδιού), ποια από τις τρεις ιδιότητες στην Ενότητα 5 θα χαλούσε και γιατί αυτό θα κατέστρεφε αθόρυβα την ιδιωτικότητα; (Η απάντηση στο τέλος.)
Αυτό είναι ένα νοητικό μοντέλο, όχι η προδιαγραφή. Για να παραμείνουμε φιλικοί προς τους αρχάριους, απλοποιήσαμε αθόρυβα αρκετά πραγματικά πράγματα: το Zcash είχε πολλαπλούς θωρακισμένους σχεδιασμούς (Sprout, έπειτα Sapling, τώρα Orchard)· οι πραγματικές συναλλαγές μπορούν να δαπανούν και να δημιουργούν πολλά notes ταυτόχρονα· ο «πίνακας» είναι τεχνικά ένα συγκεκριμένο είδος δέντρου, όχι ένας κυριολεκτικός πίνακας με καρφίτσες· και η ισορροπία αξίας επιβάλλεται με κάποια πρόσθετη κρυπτογραφική λογιστική. Καμία από αυτές τις λεπτομέρειες δεν αλλάζει την ιστορία που μόλις έμαθες· την εξειδικεύουν. Θα προσθέτουμε την ακρίβεια ξανά, ένα άρθρο τη φορά, και θα το επισημαίνουμε ξεκάθαρα κάθε φορά που το κάνουμε.
Το καλό εκπαιδευτικό περιεχόμενο κερδίζει εμπιστοσύνη λέγοντας τι άφησε έξω. Αυτή η ενότητα είναι αυτή η υπόσχεση.
Κάθε «θα επιστρέψουμε σε αυτό» παραπάνω είναι ένα νήμα. Εδώ θα ολοκληρωθεί το καθένα:

| Ανοιχτό θέμα από αυτό το άρθρο | Πού επιλύεται |
|---|---|
| Πώς μπορεί ένας σφραγισμένος φάκελος να κρύβει και να μην πλαστογραφείται; | Άρθρο 3: commitments |
| Από πού προέρχονται τα κλειδιά και οι μυστικές συνταγές; | Άρθρα 1 & 2: πεδία και καμπύλες |
| Τι είναι ακριβώς «ο πίνακας»; | Άρθρο 4: δέντρα Merkle |
| Πώς μπορείς να αποδείξεις κάτι χωρίς να αποκαλύψεις τίποτα; | Άρθρο 5: αποδείξεις μηδενικής γνώσης |
| Πώς συνδέονται και τα πέντε κομμάτια στο πραγματικό Zcash; | Άρθρο 6: το θωρακισμένο πρωτόκολλο |
Τώρα κρατάς τον χάρτη. Η υπόλοιπη σειρά τον συμπληρώνει.
| Όρος | Σημασία σε απλά ελληνικά |
|---|---|
| Note | Μια ιδιωτική μονάδα αξίας, το αντίστοιχο του Zcash για ένα νόμισμα ή χαρτονόμισμα |
| Note commitment | Μια κρυπτογραφική σφραγίδα που αποδεικνύει ότι υπάρχει ένα note χωρίς να το αποκαλύπτει |
| Note commitment tree | Το δημόσιο αρχείο μόνο προσθήκης όλων των note commitments |
| Nullifier | Ένας μοναδικός δείκτης «δαπανημένου» που δημοσιεύεται όταν χρησιμοποιείται ένα note, αποτρέποντας τις διπλές δαπάνες |
| Zero-knowledge proof | Μια απόδειξη ότι μια δήλωση είναι αληθινή χωρίς να αποκαλύπτει τίποτα πέρα από την αλήθεια της |
| Shielding / deshielding | Μεταφορά κεφαλαίων στον / έξω από τον ιδιωτικό θωρακισμένο κόσμο |
| Viewing Key | Το κλειδί που επιτρέπει στον ιδιοκτήτη να εντοπίζει και να διαβάζει notes που απευθύνονται σε αυτόν |
Είναι το Zcash πάντα ιδιωτικό;
Όχι. Η ιδιωτικότητα ισχύει για τον θωρακισμένο κόσμο (διευθύνσεις z.../u...). Οι διαφανείς (t...) συναλλαγές είναι δημόσιες, όπως στο Bitcoin.
Αν όλα είναι κρυφά, τι εμποδίζει κάποιον να τυπώσει δωρεάν χρήματα; Η απόδειξη μηδενικής γνώσης. Επιβάλλει μαθηματικά κάθε έξοδος μιας συναλλαγής να υποστηρίζεται από πραγματικές, αδαπάνητες εισόδους, ενώ διατηρεί τα ποσά μυστικά.
Μπορεί το ίδιο note να δαπανηθεί δύο φορές; Όχι. Η δαπάνη ενός note δημοσιεύει το nullifier του· μια δεύτερη προσπάθεια θα δημοσίευε το ίδιο nullifier, το οποίο βρίσκεται ήδη στον κάδο «δαπανημένων», επομένως το δίκτυο την απορρίπτει.
Μπορούν εξωτερικοί παρατηρητές να συνδέσουν έναν αποστολέα με έναν παραλήπτη; Όχι. Το commitment (η γέννηση του note) και το nullifier (ο θάνατος του note) δεν μπορούν να αντιστοιχιστούν από κανέναν χωρίς τη μυστική γνώση του ιδιοκτήτη.
Αν το nullifier υπολογιζόταν μόνο από το note, χωρίς μυστικό κλειδί, τότε οποιοσδήποτε θα μπορούσε να το υπολογίσει, παραβιάζοντας την ιδιότητα #1 (μόνο ο ιδιοκτήτης μπορεί να δαπανήσει). Ακόμη χειρότερα, το nullifier θα μπορούσε πλέον να εξαχθεί απευθείας από δημόσιες πληροφορίες σχετικά με το note, κάτι που θα επέτρεπε στους παρατηρητές να συνδέσουν το nullifier με το commitment του, παραβιάζοντας την ιδιότητα #3 και καταστρέφοντας αθόρυβα την ιδιωτικότητα ολόκληρου του συστήματος. Το μυστικό κλειδί είναι αυτό που κάνει το token ακύρωσης και αποκλειστικά δικό σου και μη συσχετίσιμο.
Άρθρο 1 . Πεπερασμένα πεδία: το παράξενο, όμορφο σύστημα αριθμών όπου η αριθμητική «περιστρέφεται» και ο λόγος για τον οποίο κάθε κομμάτι κρυπτογραφίας αυτής της σειράς υπάρχει εκεί. Θα αρχίσουμε, όπως πάντα, με τη διαίσθηση, χωρίς τύπους μέχρι να τους αξίζουμε.
Μέρος της σειράς Zcash από πρώτες αρχές για ZecHub. Με άδεια CC BY-SA 4.0.