Σχέδια υπογραφής ομάδων με κατανεμημένη ιχνηλασιμότητα (ή πώς να ανοίξει μια υπογραφή δίκαια)

Εικόνα από την Anne-Laure Delva

Σε αυτή τη θέση θέλω να συζητήσω τα σχέδια υπογραφής ομάδων και ειδικά να ομαδοποιήσω υπογραφές με κατανεμημένη ιχνηλασιμότητα και να δείξω γιατί αυτό είναι ένα ενδιαφέρον κρυπτογραφικό εργαλείο για κατανεμημένα συστήματα, χρησιμοποιώντας το πρωτόκολλο συναίνεσης Helix ως παράδειγμα για τον τρόπο με τον οποίο μπορούν να χρησιμοποιηθούν αυτές οι υπογραφές.

Οι υπογραφές ομάδων, που εισήχθησαν από τους Chaum και Van Heyst, επιτρέπουν σε ένα μέλος μιας ομάδας να υπογράψει ανώνυμα εξ ονόματος της ομάδας, προσφέροντας παράλληλα τη δυνατότητα εντοπισμού της ταυτότητας του υπογράφοντος σε ειδικές περιπτώσεις. Δηλαδή, οι συμμετέχοντες στην ομάδα μπορούν να ελέγξουν, χρησιμοποιώντας τα κλειδιά επαλήθευσης, ότι μια υπογραφή δημιουργήθηκε πράγματι από κάποιον στην ομάδα, αλλά δεν μπορούν να πει από ποιον. Σε περίπτωση διαφωνιών ή κακής συμπεριφοράς, μια αρχή εντοπισμού χρησιμοποιεί το κλειδί εντοπισμού για να εντοπίσει τον υπογράφοντα.

Για ορισμένες περιπτώσεις χρήσης που έχουν μια ενιαία εντοπιστική αρχή λειτουργεί. Ωστόσο, σε πολλές άλλες περιπτώσεις, δεν υπάρχει ενιαία αρχή που όλοι εμπιστεύονται την ανάκληση της ανωνυμίας και επομένως είναι πιο λογικό να διαιρείται η ευθύνη μεταξύ διαφόρων αρχών. Αυτή η ιδέα οδηγεί τους Benjumea et al. να σχεδιάσει "δίκαιες ανιχνεύσιμες υπογραφές πολλαπλών ομάδων". Στο πλαίσιο του σχεδίου τους, η υπογραφή είναι δυνατή εάν συνεργαστούν πολλές αρχές δικαιοσύνης. Οι αρχές δικαιοσύνης μπορούν επίσης να συνεργαστούν για να αποκαλύψουν ένα κλειδί εντοπισμού ενός χρήστη που έχει υποψία. Αυτό το κλειδί μπορεί να χρησιμοποιηθεί για να ελέγξει εάν ένα μήνυμα υπογράφηκε από έναν συγκεκριμένο χρήστη χωρίς να ανακληθεί η ανωνυμία των άλλων χρηστών.

Μέχρι σήμερα, υπάρχουν διάφορα συστήματα υπογραφής με κατανεμημένη ιχνηλασιμότητα που διαφέρουν ελαφρώς σε σχέση με τη λειτουργικότητα που προσφέρουν, όπως οι "υπογραφές δημογραφικών ομάδων με ιχνηλασιμότητα κατωφλίου" από τους Zheng et al., Και "Short Signatures with Distributed Traceability" από Blomer et al., για την οποία θα επεξεργαστώ περαιτέρω.

Ομαδικές υπογραφές με κατανεμημένη ιχνηλασιμότητα στο Helix

Στην Orbs, αναπτύσσουμε το Helix, το πρωτότυπο πρωτόκολλο συναίνεσής μας, το οποίο είναι ειδικά σχεδιασμένο για να διασφαλίζει ότι οι συναλλαγές παραγγέλλονται με δίκαιο τρόπο. Η βασική ιδέα στην Helix είναι ότι οι κόμβοι του δικτύου δεν μπορούν να χειριστούν τις συναλλαγές που περιλαμβάνονται σε ένα νέο μπλοκ ή την παραγγελία τους. Συγκεκριμένα, δεν μπορούν να λογοκρίνουν συγκεκριμένους κόμβους ή χρήστες και δεν μπορούν να ευνοούν τις συναλλαγές τους με ουσιαστικό τρόπο. Μπορείτε να διαβάσετε περισσότερα για τον Helix σε αυτήν την ανάρτηση ιστολογίου.

Ένας σημαντικός συνεισφέρων για τη δικαιοσύνη στο Helix έχει να κάνει τους χρήστες να κρυπτογραφούν τις συναλλαγές τους και στη συνέχεια να αποκρυπτογραφούν τις αρχικές συναλλαγές μόνο αφού προσαρτηθούν στο blockchain. Η κρυπτογράφηση των συναλλαγών έρχεται σε τιμή, και ιδίως αυξάνει την ανάγκη να τιμωρούνται οι χρήστες και οι κόμβοι που στέλνουν σκουπίδια στο δίκτυο αντί έγκυρων συναλλαγών. Για το λόγο αυτό χρειαζόμαστε έναν μηχανισμό για να αποκαλύψουμε ποιοι κόμβοι δικτύου είναι υπεύθυνοι για προβληματικές συναλλαγές προκειμένου να μειώσουν τη φήμη τους.

Μπορούμε να το κάνουμε αυτό χρησιμοποιώντας υπογραφές ομάδων με κατανεμημένη ανιχνευσιμότητα, έχοντας κάθε κόμβο δικτύου να λειτουργεί ως δικαιοσύνη και απαιτεί έναν αριθμό κατωφλίων αρχών να ανοίξει και να ανιχνεύσει υπογραφές.

Τώρα περιγράφω τη ροή που κάνει μια συναλλαγή στο Helix και πώς μπορούν να χρησιμοποιηθούν οι υπογραφές ομάδων με κατανεμημένη ιχνηλασιμότητα. Αν ενδιαφέρεστε λιγότερο για αυτή τη συγκεκριμένη ροή, μπορείτε να προχωρήσετε και να διαβάσετε σχετικά με το σχέδιο υπογραφής υποψηφίου. Η ροή αρχίζει όταν ένας χρήστης δημιουργεί μια συναλλαγή, την κρυπτογραφεί και την αποστέλλει σε έναν κόμβο δικτύου στον οποίο είναι συνδεδεμένος. Ο κόμβος δικτύου τότε υπογράφει τη συναλλαγή χρησιμοποιώντας ένα εύχρηστο σύστημα υπογραφής υπογραφής ομάδας και μεταδίδει τη συναλλαγή στο δίκτυο. Πριν από τη συμπερίληψη της συναλλαγής σε ένα μπλοκ, ο δημιουργός μπλοκ ελέγχει ότι η συναλλαγή έχει έγκυρη υπογραφή ομάδας. Μετά την προσάρτηση του μπλοκ στην μπλοκ αλυσίδα, ξεκινάμε μια διαδικασία (η οποία απαιτεί έναν αριθμό κατωφλίου κόμβων) για την αποκρυπτογράφηση των συναλλαγών στο μπλοκ. Εάν απαιτείται (για παράδειγμα, η αποκρυπτογραφηθείσα συναλλαγή αποδειχθεί άκυρη), ένας αριθμός κατωφλίων κόμβων συνεργάζεται και ανοίγει την υπογραφή προκειμένου να αποκαλυφθεί ποιος κόμβος υπέγραψε αυτή τη συναλλαγή.

Μια άλλη πιθανή επιλογή για τη ροή είναι να ανοίξετε τις υπογραφές από προεπιλογή παράλληλα με τη διαδικασία αποκρυπτογράφησης. Το πλεονέκτημα του ανοίγματος της υπογραφής από προεπιλογή είναι ότι έτσι δεν χρειάζεται να ξεκινήσουμε ένα ειδικό πρωτόκολλο για ελαττωματικές συναλλαγές και αντίθετα να εκτελέσουμε αυτή τη διαδικασία ως μέρος της κανονικής ροής. Μια άλλη επιλογή είναι να ενσωματωθεί η διαδικασία αποκάλυψης ενός κλειδιού εντοπισμού (που χρησιμοποιείται για την ανίχνευση ενός συγκεκριμένου κόμβου κακής συμπεριφοράς). Σημειώνουμε επίσης ότι ορισμένα προγράμματα υπογραφής ομάδων έχουν επίσης λειτουργικότητα αξιώσεων, στην οποία οι υπογράφοντες μπορούν να διεκδικήσουν την υπογραφή ως μέλη τους, κάτι που δεν χρησιμοποιήσαμε στην παραπάνω ροή.

Από τη ροή μας συνάγουμε τις απαιτήσεις ασφαλείας που επιδιώκουμε:

  • Ανωνυμία: Μια ομαδική υπογραφή δεν αποκαλύπτει την ταυτότητα του μέλους που το παρήγαγε, εκτός εάν συνεργάζονται περισσότεροι από ένα ελάχιστο αριθμό αρχών δικαιοσύνης.
  • Η ανιχνευσιμότητα διατηρεί την ανωνυμία: Εάν ένας κόμβος ισχυρίζεται ότι είναι ο δημιουργός μιας υπογραφής ή η ταυτότητά του αποκαλύφθηκε ως μέρος του αλγορίθμου ιχνηλάτησης, αυτό δεν περιλαμβάνει το απόρρητο των υπολοίπων προηγούμενων ή μελλοντικών ομάδων που εκδίδει.
  • Αδιαπραγμάτευση: Είναι αδύνατο να αναφέρονται δύο ή περισσότερες υπογραφές που παράγονται από τον ίδιο υπογράφοντα χωρίς τη συνεργασία ενός αριθμού κατωφλίων αρχών.
  • Μη εγκιβωτισμός: Ακόμη και αν η ομάδα και οι υπεύθυνοι ιχνηλάτησης συνεννοούνται με την υπόλοιπη ομάδα, δεν μπορούν να πλαισιώσουν ένα τίμιο μέλος της ομάδας. Ένας χρήστης μπορεί να πλαισιώνεται με δύο διαφορετικούς τρόπους: οι αρχές και οι άλλοι χρήστες μπορούν να δημιουργήσουν μια υπογραφή που ανοίγει ή ανιχνεύει έναν αθώο χρήστη (η απαίτηση αυτή ονομάζεται επίσης ισχυρή εξωσυμβατότητα) ή μπορεί να διεκδικήσει υπογραφή που δημιουργήθηκε από το χρήστη ως τα δικά τους.

Άλλες σημαντικές απαιτήσεις είναι: η υποστήριξη της δυναμικής αλλαγής των υπογραφόντων και των ιχνηθετών, χωρίς να απαιτείται αξιόπιστη ρύθμιση.

Υποψήφιο Σχέδιο Υπογραφής

Ένα από τα πιο αποτελεσματικά συστήματα υπογραφής που σήμερα είναι γνωστά είναι τα Boneh, Boyen και Shacham (BBS), τα οποία εισήγαγαν στο άρθρο τους "Σύντομες υπογραφές ομάδων". Το σχέδιο υπογραφής τους στερείται μερικές ιδιότητες που απαιτούνται για τη χρήση μας. Πρώτον, το σύστημα υπογραφής ομάδων τους δεν παρέχει κατανεμημένη ιχνηλασιμότητα, αλλά απαιτεί μια κεντρική εντοπιστική αρχή. Επιπλέον, το σχέδιό τους δεν ικανοποιεί την ιδιότητα "ανιχνευσιμότητας διατηρεί την ανωνυμία" (επειδή δεν παρέχει CCA-ανωνυμία, εξηγείται αργότερα), το οποίο είναι κρίσιμο για το περιβάλλον μας. Επιπλέον, η διαδικασία δημιουργίας κλειδιών απαιτεί έναν έμπιστο έμπορο. Ευτυχώς, υπάρχουν έγγραφα παρακολούθησης που ασχολούνται με τα δύο πρώτα θέματα. Οι ιδέες μπορούν να συνδυαστούν για να επιτευχθεί ένα CCA-ανώνυμο σχέδιο υπογραφής που προσφέρει κατανεμημένη ιχνηλασιμότητα. Η απαλλαγή από τον έμπιστο έμπορο είναι ένα ζήτημα που πρέπει να αντιμετωπιστεί αν επιλέξουμε αυτό το σχέδιο.

Σε ένα έγγραφο από τους Blomer et. al, "Σύντομες υπογραφές ομάδων με κατανεμημένη ιχνηλασιμότητα", το σχήμα του BBS επεκτείνεται για να υποστηρίξει την κατανεμημένη ιχνηλασιμότητα. Αυτό επιτυγχάνεται με τον ακόλουθο τρόπο. Στο σύστημα BBS, μέρος της υπογραφής είναι κρυπτογράφηση (μυστικό) του μυστικού κλειδιού και το άνοιγμα ισοδυναμεί με την αποκρυπτογράφηση αυτού του κρυπτογράφου. Στο χαρτί από το Blomer αλλάζουν την κρυπτογράφηση σε κρυπτογράφηση κατωφλίου. Το άνοιγμα μιας υπογραφής αποτελείται από δύο διαδικασίες, το πρώτο παράγει ένα ανοιχτό μερίδιο από την υπογραφή και το δεύτερο συνδυάζει έναν αριθμό κατωφλίου μετοχών για να αποκρυπτογραφήσει το κλειδί του υπογράφοντος. Μια άλλη τροποποίηση που κάνουν είναι η προσθήκη ενός επιπλέον στοιχείου στο μυστικό κλειδί, το οποίο είναι γνωστό μόνο στον χρήστη και όχι στις αρχές δικαιοσύνης. Αυτό εγγυάται ότι οι αρχές δικαιοσύνης δεν μπορούν να υπογράψουν εξ ονόματος άλλων μελών.

Το σύστημα από την BBS παρέχει ανωνυμία CPA. Κατά προσέγγιση, αυτό σημαίνει ότι οι υπογραφές είναι ανώνυμες, με την προϋπόθεση ότι ο αντίπαλος δεν θα ερωτά το πρωτόκολλο των υπογραφών ιχνών. Ωστόσο, αυτή η υπόθεση δεν δικαιολογείται από τη δική μας ρύθμιση, αφού ένας αντίπαλος μπορεί να παράγει υπογεγραμμένα μηνύματα και να τα στείλει στο blockchain, και στη συνέχεια θα εντοπιστούν ως μέρος της κανονικής μας ροής. Ως εκ τούτου, απαιτούμε το σύστημα υπογραφής να είναι ανώνυμο CCA, πράγμα που σημαίνει ότι ακόμη και ένας αντίπαλος που έχει πρόσβαση στο ανοιχτό πρωτόκολλο εντοπισμού, δεν μπορεί να εντοπίσει την υπογραφή χωρίς να συνεργαστεί με ένα ελάχιστο αριθμό αρχών δικαιοσύνης. Στην εργασία του, "Αποτελεσματικές επικοινωνίες μη αλληλεπιδραστικές αποδείξεις γνώσης με ηλεκτρονικούς εκτοξευτές", ο Fischlin εισάγει μια μέθοδο για τη μετατροπή του σχεδίου υπογραφής από την BBS ώστε να είναι ασφαλής για την CCA. Αυτό λειτουργεί προσθέτοντας ένα στοιχείο στην υπογραφή που δημιουργεί μια μη διαδραστική απόδειξη γνώσης μηδενικής γνώσης για τις τυχαίες τιμές που χρησιμοποιούνται κατά την κρυπτογράφηση. Αυτόματα, αυτό εξασφαλίζει ότι ο αντίπαλος δεν κερδίζει πολύ από την αλληλεπίδραση με το πρωτόκολλο ιχνηλάτησης, αφού για να υπογράψει ένα έγκυρο μήνυμα έπρεπε να γνωρίζει τις τυχαίες τιμές που χρησιμοποιήθηκαν για την παραγωγή της κρυπτογράφησης.

Μέγεθος της υπογραφής

Το μήκος του σχεδίου υπογραφής ομάδας BBS κάτω από τις παραμέτρους που προτείνουν οι συγγραφείς είναι 1.533 bit. Αυτό είναι συγκρίσιμο με το μέγεθος της υπογραφής RSA, η οποία είναι 1.024 ή 2.048 bits για υπογραφές με παρόμοια ασφάλεια. Η προσθήκη κατανεμημένης ανιχνευσιμότητας δεν καθιστά την υπογραφή μεγαλύτερη, αλλά η πολυπλοκότητα απαιτεί τον υπολογισμό της παρεμβολής πολυωνύμου lagrange προκειμένου να συνδυαστούν οι μετοχές.

Όσο για τη μηδενική γνώση της γνώσης, αυτή είναι σχετικά μεγάλη σε μέγεθος και είναι δαπανηρή για τον υπολογισμό. Για τις παραμέτρους που προτείνονται στο χαρτί, το μήκος είναι 3.520 bits, το οποίο αντιστοιχεί σε μήκος υπογραφής των 5.053 bits συνολικά.

Το μέγεθος των μετοχών της υπογραφής είναι 340 bits ανά μετοχή.

Θα ήθελα να ευχαριστήσω τον Steven Goldfeder για χρήσιμες συζητήσεις επί του θέματος.

* Διαβάστε τις Λευκές Βίβλους Orbs: https://www.orbs.com/white-papers

Συμμετοχή στην κοινότητα Orbs:

  • Τηλεγράφημα: https://t.me/orbs_network
  • Twitter: https://twitter.com/orbs_network
  • Reddit: https://www.reddit.com/r/ORBS_Network/
  • GitHub: https://github.com/orbs-network