Απόδειξη Αρχής [Proof-of-authority (PoA)]
Τελευταία επεξεργασία: @0xmike7(opens in a new tab), 3 Ιουλίου 2024
Η Απόδειξη Αρχής [Proof-of-authority (PoA)] είναι ένας αλγόριθμος συναίνεσης που βασίζεται στη υπόληψη και είναι μια τροποποιημένη έκδοση της Απόδειξης Συμμετοχής (PoS). Χρησιμοποιείται κυρίως από ιδιωτικές αλυσίδες, δοκιμαστικά δίκτυα και τοπικά δίκτυα ανάπτυξης. Το PoA είναι ένας αλγόριθμος συναίνεσης που βασίζεται στη φήμη και απαιτεί την εμπιστοσύνη ενός συνόλου εξουσιοδοτημένων υπογραφόντων για την παραγωγή μπλοκ, αντί ενός μηχανισμού που βασίζεται στη δέσμευση κεφαλαίου στην PoS.
Προαπαιτούμενα
Για να κατανοήσετε καλύτερα αυτή τη σελίδα, σας προτείνουμε πρώτα να διαβάσετε σχετικά με τις συναλλαγές, τα μπλοκ, και τους μηχανισμούς συναίνεσης.
Τι είναι Απόδειξη Αρχής (PoA);
Η Απόδειξη Αρχής είναι μια τροποποιημένη έκδοση της Απόδειξης Συμμετοχής (PoS) που είναι ένας αλγόριθμος συναίνεσης που βασίζεται στη φήμη σε αντίθεση με τον μηχανισμό δέσμευσης κεφαλαίου στην PoS. Ο όρος εισήχθη για πρώτη φορά το 2017 από τον Gavin Wood. Αυτός ο αλγόριθμος συναίνεσης έχει χρησιμοποιηθεί ως επί το πλείστον από ιδιωτικές αλυσίδες, δοκιμαστικά δίκτυα και τοπικά δίκτυα ανάπτυξης, καθώς ξεπερνά την ανάγκη για υψηλής ποιότητας πόρους, σε αντίθεση με την απόδειξη εργασίας (PoW), και τα προβλήματα επεκτασιμότητας που αντιμετωπίζει η PoS χάρη στο μικρό υποσύνολο κόμβων που αποθηκεύουν το blockchain και παράγουν μπλοκ.
Η Απόδειξη Αρχής απαιτεί την εμπιστοσύνη ενός συνόλου εξουσιοδοτημένων υπογραφόντων που έχουν οριστεί στο . Στις περισσότερες τρέχουσες υλοποιήσεις, όλοι οι εξουσιοδοτημένοι υπογράφοντες διατηρούν ισοδύναμη ισχύ και προνόμια κατά τον καθορισμό της συναίνεσης της αλυσίδας. Η ιδέα πίσω από την αποθήκευση κεφαλαίου βάσει φήμης είναι ότι κάθε εξουσιοδοτημένος επικυρωτής είναι γνωστός σε όλους μέσω υπηρεσιών όπως «know your customer» (KYC) ή επειδή έχει έναν γνωστό οργανισμό ως μοναδικό επικυρωτή. Με αυτόν τον τρόπο, εάν ένας επικυρωτής κάνει κάτι λάθος, η ταυτότητά του είναι γνωστή.
Υπάρχουν πολλές υλοποιήσεις του PoA, αλλά η τυπική υλοποίηση του Ethereum είναι το clique, η οποία υλοποιεί το EIP-225(opens in a new tab). Το Clique είναι ένα φιλικό προς τους προγραμματιστές και εύκολο στην εφαρμογή πρότυπο, που υποστηρίζει όλους τους τύπους συγχρονισμού πελατών. Άλλες υλοποιήσεις περιλαμβάνουν το IBFT 2.0(opens in a new tab) και το Aura(opens in a new tab).
Πώς λειτουργεί
Στο PoA, επιλέγεται ένα σύνολο εξουσιοδοτημένων υπογραφόντων για τη δημιουργία νέων μπλοκ. Οι υπογράφοντες επιλέγονται με βάση τη φήμη τους και είναι οι μόνοι που επιτρέπεται να δημιουργήσουν νέα μπλοκ. Επιλέγονται εκ περιτροπής και σε κάθε υπογράφοντα επιτρέπεται να δημιουργήσει ένα μπλοκ σε ένα συγκεκριμένο χρονικό πλαίσιο. Ο χρόνος δημιουργίας μπλοκ είναι προκαθορισμένος και οι υπογράφοντες πρέπει να δημιουργήσουν ένα μπλοκ εντός αυτού του χρονικού πλαισίου.
Η φήμη σε αυτό το πλαίσιο δεν είναι κάτι ποσοτικοποιημένο — είναι η φήμη γνωστών εταιρειών όπως η Microsoft και η Google. Επομένως, ο τρόπος επιλογής των αξιόπιστων υπογραφόντων δεν είναι αλγοριθμικός. Είναι η συνηθισμένη ανθρώπινη πράξη εμπιστοσύνης όπου μια οντότητα, ας πούμε, για παράδειγμα, η Microsoft, δημιουργεί ένα ιδιωτικό δίκτυο PoA μεταξύ εκατοντάδων ή χιλιάδων νεοσύστατων επιχειρήσεων και ο ίδιος ο ρόλος του μοναδικού αξιόπιστου υπογράφοντα με τη δυνατότητα προσθήκης άλλων γνωστών υπογραφόντων όπως η Google στο μέλλον, θα έκανε τις νεοσύστατες εταιρείες, χωρίς αμφιβολία, να εμπιστεύονται ότι η Microsoft θα ενεργεί με ειλικρινή τρόπο όλες τις φορές και να χρησιμοποιούν το δίκτυο. Αυτό δίνει λύση στην ανάγκη δέσμευσης κεφαλαίου σε διαφορετικά μικρά/ιδιωτικά δίκτυα που κατασκευάστηκαν για διαφορετικούς σκοπούς, ώστε να διατηρηθούν αποκεντρωμένα και λειτουργικά, καθώς και στην ανάγκη για εξορύκτες, που καταναλώνει πολλή ενέργεια και πόρους. Ορισμένα ιδιωτικά δίκτυα χρησιμοποιούν το πρότυπο PoA ως έχει, όπως το VeChain, και ορισμένα το τροποποιούν, όπως το Binance που χρησιμοποιεί το PoSA(opens in a new tab) που είναι μια προσαρμοσμένη τροποποιημένη έκδοση του PoA και του PoS.
Η διαδικασία ψηφοφορίας γίνεται από τους ίδιους τους υπογράφοντες. Κάθε υπογράφων ψηφίζει για την προσθήκη ή την αφαίρεση ενός υπογράφοντα στο μπλοκ τους όταν δημιουργούν ένα νέο μπλοκ. Οι ψήφοι καταμετρώνται από τους κόμβους και οι υπογράφοντες προστίθενται ή αφαιρούνται με βάση τις ψήφους που φτάνουν σε ένα συγκεκριμένο όριο SIGNER_LIMIT
.
Μπορεί να υπάρχει μια κατάσταση όπου εμφανίζονται μικρές διακλαδώσεις, αλλά η δυσκολία ενός μπλοκ εξαρτάται από το αν το μπλοκ υπογράφηκε στη σειρά του ή εκτός σειράς. Τα μπλοκ που υπογράφονται «στη σειρά τους» έχουν δυσκολία 2, και τα μπλοκ «εκτός σειράς» έχουν δυσκολία 1. Στην περίπτωση των μικρών διακλαδώσεων, η αλυσίδα με τους περισσότερους από τους υπογράφοντες να σφραγίζουν το μπλοκ «στη σειρά τους», θα συγκεντρώσει τη μεγαλύτερη δυσκολία και θα κερδίσει.
Φορείς επίθεσης
Κακόβουλοι υπογράφοντες
Θα μπορούσε να προστεθεί στη λίστα των υπογραφόντων ένας κακόβουλος χρήστης ή να παραβιαστεί ένα κλειδί / μια μηχανή υπογραφής. Σε ένα τέτοιο σενάριο, το πρωτόκολλο πρέπει να μπορεί να αμύνεται έναντι αναδιοργανώσεων και spamming. Η προτεινόμενη λύση είναι η εξής: από μια λίστα με Ν εξουσιοδοτημένους υπογράφοντες, οποιοσδήποτε υπογράφων μπορεί να δημιουργήσει μόνο 1 μπλοκ από κάθε K. Αυτό διασφαλίζει ότι η ζημιά είναι περιορισμένη και οι υπόλοιποι επικυρωτές μπορούν να εξοστρακίσουν με την ψήφο τους τον κακόβουλο χρήστη.
Λογοκρισία
Ένας άλλος ενδιαφέρων φορέας επίθεσης είναι η περίπτωση που ένας υπογράφων (ή ομάδα υπογραφόντων) επιχειρεί να λογοκρίνει μπλοκ που ψηφίζουν για την κατάργησή τους από τη λίστα εξουσιοδότησης. Για να αντιμετωπιστεί αυτό, η επιτρεπόμενη συχνότητα δημιουργίας των υπογραφόντων περιορίζεται σε 1 από N/2. Αυτό διασφαλίζει ότι οι κακόβουλοι υπογράφοντες πρέπει να ελέγχουν τουλάχιστον το 51% των λογαριασμών υπογραφής, οπότε θα γίνουν ουσιαστικά η νέα πηγή αλήθειας για την αλυσίδα.
Spam
Ένας άλλος μικρός φορέας επίθεσης είναι κακόβουλοι υπογράφοντες που εισάγουν νέες προτάσεις ψήφου μέσα σε κάθε μπλοκ που δημιουργούν. Δεδομένου ότι οι κόμβοι πρέπει να συγκεντρώνουν όλες τις ψήφους για να δημιουργήσουν την πραγματική λίστα των εξουσιοδοτημένων υπογραφόντων, πρέπει να καταγράψουν όλες τις ψήφους σε βάθος χρόνου. Αν δεν τεθεί όριο στο παράθυρο ψηφοφορίας, αυτό θα μπορούσε να αναπτυχθεί αργά, αλλά χωρίς περιορισμούς. Η λύση είναι να τοποθετηθεί ένα κινούμενο παράθυρο αποτελούμενο από W μπλοκ μετά το οποίο οι ψήφοι θεωρούνται παρωχημένες. Ένα εύλογο παράθυρο μπορεί να αποτελείται από 1-2 εποχές.
Ταυτόχρονη δημιουργία μπλοκ
Σε ένα δίκτυο PoA, όταν υπάρχουν N εξουσιοδοτημένοι υπογράφοντες, κάθε ένας επιτρέπεται να δημιουργήσει 1 μπλοκ από τους K, πράγμα που σημαίνει ότι N-K+1 επικυρωτές επιτρέπεται να δημιουργούν σε οποιαδήποτε δεδομένη χρονική στιγμή. Για να αποτρέψετε αυτούς τους επικυρωτές από το να συναγωνίζονται για τα μπλοκ, κάθε υπογράφων θα πρέπει να προσθέσει ένα μικρό τυχαίο «αντιστάθμισμα» στη στιγμή που απελευθερώνει ένα νέο μπλοκ. Παρόλο που αυτή η διαδικασία διασφαλίζει ότι οι μικρές διακλαδώσεις είναι σπάνιες, η εμφάνιση περιστασιακών διακλαδώσεων εξακολουθεί να είναι πιθανή, όπως το Κεντρικό Δίκτυο. Εάν διαπιστωθεί ότι ένας υπογράφων κάνει κατάχρηση της εξουσίας του και προκαλεί χάος, οι άλλοι υπογράφοντες μπορούν να τον εξοστρακίσουν μέσω ψηφοφορίας.
Εάν, για παράδειγμα, υπάρχουν 10 εξουσιοδοτημένοι υπογράφοντες και κάθε υπογράφων επιτρέπεται να δημιουργήσει 1 μπλοκ στα 20, τότε ανά πάσα στιγμή, 11 επικυρωτές μπορούν να δημιουργήσουν μπλοκ. Για να τους αποτρέψει από το να συναγωνιστούν για τη δημιουργία μπλοκ, κάθε υπογράφων προσθέτει ένα μικρό τυχαίο «αντιστάθμισμα» τη στιγμή που ελευθερώνει ένα νέο μπλοκ. Αυτό μειώνει την εμφάνιση μικρών διακλαδώσεων, αλλά εξακολουθεί να επιτρέπει περιστασιακές διακλαδώσεις, όπως φαίνεται στο Κεντρικό Δίκτυο του Ethereum. Εάν ένας υπογράφων κάνει κατάχρηση της εξουσίας του και προκαλεί διαταραχές, μπορεί να ψηφιστεί η έξοδός του από το δίκτυο.
Πλεονεκτήματα και μειονεκτήματα
Πλεονεκτήματα | Μειονεκτήματα |
---|---|
Κλιμακώνεται περισσότερο από άλλους δημοφιλείς μηχανισμούς όπως το PoS και το PoW, καθώς βασίζεται σε περιορισμένο αριθμό υπογραφόντων μπλοκ | Τα δίκτυα PoA έχουν συνήθως έναν σχετικά μικρό αριθμό κόμβων επικύρωσης. Αυτό συνεπάγεται την πιο κεντρική διαχείριση ενός δικτύου PoA. |
Η λειτουργία και συντήρηση των blockchain PoA είναι απίστευτα φθηνή | Είναι σχεδόν ανέφικτο για έναν συνηθισμένο χρήστη να γίνει εξουσιοδοτημένος υπογράφων, επειδή το blockchain απαιτεί οντότητες με καθιερωμένη φήμη. |
Οι συναλλαγές επιβεβαιώνονται πολύ γρήγορα, καθώς θα μπορούσαν να επιτευχθούν σε λιγότερο από 1 δευτερόλεπτο, επειδή απαιτείται μόνο περιορισμένος αριθμός υπογραφόντων για την επικύρωση νέων μπλοκ | Οι κακόβουλοι υπογράφοντες θα μπορούσαν να αναδιοργανώσουν, να διπλασιάσουν τις δαπάνες, να λογοκρίνουν συναλλαγές στο δίκτυο. Αυτές οι επιθέσεις μετριάζονται, αλλά εξακολουθούν να είναι πιθανές |
Περαιτέρω υλικό για διάβασμα
- EIP-225(opens in a new tab) _Πρότυπο Clique
- Μελέτη Απόδειξης Αρχής(opens in a new tab) Cryptoeconomics
- Τι είναι η Απόδειξη Αρχής(opens in a new tab) OpenZeppelin
- Εξήγηση Απόδειξης Αρχής(opens in a new tab) binance
- PoA σε blockchain(opens in a new tab)
- Εξήγηση Clique(opens in a new tab)
- Καταργημένο PoA, προδιαγραφή Aura(opens in a new tab)
- IBFT 2.0, άλλη μια υλοποίηση PoA(opens in a new tab)
Περισσότερα από έναν εικονικό μαθητή;
Παρακολουθήστε μια οπτική επεξήγηση της απόδειξης αρχής: