Κλίμακα συναίνεσης για επιχειρήσεις: Εξηγώντας τον αλγόριθμο IBFT

blog 1ΕιδήσειςΑναπτυσσόμενοιΕξέτασηΕπεξήγηση BlockchainΕκδηλώσεις και ΣυνέδριαΠατήστεΕνημερωτικά δελτία

Εγγραφείτε στο newsletter μας.

Διεύθυνση ηλεκτρονικού ταχυδρομείου

Σεβόμαστε το απόρρητό σας

HomeBlogΕμπλοκή Blockchain

Κλίμακα συναίνεσης για επιχειρήσεις: Εξηγώντας τον αλγόριθμο IBFT

Πώς το Istanbul Byzantine Fault Tolerance (IBFT) βελτιώνει την τελικότητα και αυξάνει την απόδοση σε ιδιωτικά δίκτυα Ethereum. Από ConsenSys 22 Ιουνίου 2018 Δημοσιεύτηκε στις 22 Ιουνίου 2018

Ήρωας Ethereum ConsenSys

Οι αλγόριθμοι συναίνεσης είναι μία από τις βασικές καινοτομίες του blockchain, αλλά και ένας από τους πιο μπερδεμένους. Ο Satoshi Nakamoto δημιούργησε μια έκδοση του Proof of Work (PoW) που υλοποιήθηκε ως μέσο για ταυτόχρονη εξασφάλιση και επικύρωση συναλλαγών Bitcoin. Η κοινότητα blockchain έχει βασιστεί σε αυτό το βασικό όραμα για να δημιουργήσει μια αλφαβητική σούπα Proof of Stake (PoS), Proof of Authority (PoA), PBFT (Practical Byzantine Fault Tolerant) και πολλά άλλα που έχουν σχεδιαστεί για να δημιουργήσουν συναίνεση σε μια κατανεμημένη σύστημα, δημιουργώντας τη μοναδική πηγή αλήθειας που κάνει το blockchain τόσο πολύτιμο.

Το IBFT (Istanbul Byzantine Fault Tolerant) είναι ένας μηχανισμός συναίνεσης ο οποίος αποτελεί εναλλακτική λύση για την απόδειξη της εργασίας σε ένα δίκτυο Ethereum. Όπως και άλλοι αλγόριθμοι, το IBFT εξασφαλίζει μια ενιαία, συμφωνημένη παραγγελία για συναλλαγές στο blockchain και παρέχει πρόσθετα οφέλη για τις επιχειρήσεις, συμπεριλαμβανομένου του οριστικού διακανονισμού. Το IBFT ήταν υλοποιήθηκε για πρώτη φορά στο Geth από την Amis Technologies, και αμέσως μετά την εφαρμογή του στην απαρτία.

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

Ο αλγόριθμος PoW είναι φημισμένος δαπανηρός, τόσο σε υλικό όσο και σε ηλεκτρικό ρεύμα. Αυτό το κόστος είναι σκόπιμο, για να αποτρέψει οποιονδήποτε να αναλάβει εύκολα το δίκτυο και, ως εκ τούτου, το PoW είναι πολύ κατάλληλο για καταστάσεις με πλήρη αποκέντρωση όπου μπορεί να συμμετέχει οποιοσδήποτε (συμπεριλαμβανομένων των επιτιθέμενων). Οι κόμβοι στην κοινοπραξία / ιδιωτικές αλυσίδες που χρησιμοποιούνται από επιχειρήσεις, ωστόσο, είναι εγγενώς πιο αξιόπιστοι από αυτούς σε μια δημόσια αλυσίδα. Ως εκ τούτου, ο μηχανισμός συναίνεσης PoW μπορεί να είναι υπερβολικά επαχθής και άλλοι μηχανισμοί μπορεί να παρέχουν «αρκετή» εμπιστοσύνη για τη λειτουργία ενός κατανεμημένου συστήματος.

Η απόδειξη της συμμετοχής, επίσης, μπορεί να είναι λιγότερο σχετική για τις επιχειρήσεις, επειδή η πληρωμή για φυσικό αέριο είναι λιγότερο σημαντική σε ένα εγκεκριμένο δίκτυο. Δεδομένου ότι οι κόμβοι δεν χρειάζονται (απαραίτητα) για τη διατήρηση του νομίσματος στο δίκτυο, το PoS θα εισήγαγε ξένες απαιτήσεις.

Λαμβάνοντας υπόψη αυτές τις αντισταθμίσεις, το Proof of Authority (PoA) εμφανίζεται ως μια πιθανή καλύτερη λύση, χρησιμοποιώντας ένα σύστημα στο οποίο οι κόμβοι στο δίκτυο έχουν το προνόμιο να παράγουν νέα μπλοκ για την αλυσίδα χρησιμοποιώντας ένα round-robin ή άλλο αυθαίρετο σύστημα.

Το IBFT είναι μία από τις πολλές γεύσεις του PoA και παρέχει τα ακόλουθα οφέλη:

  • Άμεσο οριστικό μπλοκ. Προτείνεται μόνο 1 μπλοκ σε ένα δεδομένο ύψος αλυσίδας. Η μεμονωμένη αλυσίδα αφαιρεί έτσι τη διακλάδωση, τα μπλοκ του θείου και τον κίνδυνο να αναιρεθεί μια συναλλαγή μία φορά στην αλυσίδα αργότερα.
  • Μειωμένος χρόνος μεταξύ μπλοκ. Η προσπάθεια που απαιτείται για την κατασκευή και την επικύρωση των μπλοκ μειώνεται σημαντικά (ιδίως σε σχέση με το PoW), αυξάνοντας σημαντικά την απόδοση της αλυσίδας.
  • Υψηλή ακεραιότητα δεδομένων και ανοχή σφαλμάτων. Το IBFT χρησιμοποιεί μια ομάδα επικυρωτών για να διασφαλίσει την ακεραιότητα κάθε μπλοκ που προτείνεται. Απαιτείται μια υπερ-πλειοψηφία (~ 66%) αυτών των επικυρωτών για την υπογραφή του μπλοκ πριν από την εισαγωγή στην αλυσίδα, καθιστώντας πολύ δύσκολη την πλαστογράφηση μπλοκ. Η «ηγεσία» της ομάδας περιστρέφεται επίσης με την πάροδο του χρόνου – διασφαλίζοντας ότι ένας ελαττωματικός κόμβος δεν μπορεί να ασκήσει μακροπρόθεσμη επιρροή στην αλυσίδα.
  • Λειτουργικά ευέλικτο. Η ομάδα επικυρωτών μπορεί να τροποποιηθεί εγκαίρως, διασφαλίζοντας ότι η ομάδα περιέχει μόνο αξιόπιστους κόμβους.

Εδώ παρέχουμε μια επισκόπηση του IBFT, κυρίως σε μη τεχνικούς όρους. Για ορισμένες από τις αρχικές προτάσεις του IBFT, μπορείτε να ελέγξετε τα EIP στο GitHub:

Για το υπόλοιπο αυτού του άρθρου, θα διερευνήσουμε τις περισσότερες τεχνικές παραμέτρους της IBFT, συζητώντας πολλές από τις έννοιες που βρέθηκαν στα EIP και ότι έχουμε μάθει μέσω της δικής μας έρευνας.


Σημείωση: Ο κωδικός IBFT μπορεί επίσης να βρεθεί σε ένα αίτημα έλξης go-ethereum # 16385.

Λειτουργία

Ο μηχανισμός συναίνεσης IBFT περιλαμβάνει τα ακόλουθα στοιχεία:

  1. ΕΝΑ PBFT εμπνευσμένο μοντέλο συναίνεσης ομάδας.
  2. Μια διαδικασία με την οποία τα μέλη μπορούν να προστεθούν / αφαιρεθούν από την ομάδα επικύρωσης.

Το IBFT απαιτεί το Block Header να επεξεργαστεί (διακριτικά) για να υποστηρίξει όλες τις πτυχές της δυνατότητας.

Μοντέλο συναίνεσης ομάδας

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Το IBFT χρησιμοποιεί ένα σύνολο επικυρωμένων κόμβων (Validators) που λειτουργούν σε ένα δίκτυο Ethereum για να προσδιορίσουν εάν ένα προτεινόμενο μπλοκ είναι κατάλληλο για προσθήκη στην αλυσίδα.

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

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

Ο μηχανισμός συναίνεσης είναι μια μηχανή συγχρονισμένης κατάστασης η οποία είναι υπεύθυνη για τη διασφάλιση ότι όλοι οι επικυρωτές προσαρτούν το ίδιο μπλοκ στην αλυσίδα στο ίδιο ύψος.

Εάν ένα μπλοκ αποτύχει να εισαχθεί, ο Πρόταση αλλάζει και η διαδικασία ξεκινά εκ νέου.

Προκειμένου να διασφαλιστεί ότι μόνο ένα μπλοκ μπορεί να προστεθεί στο μηχάνημα κατάστασης, το IBFT αποτρέπει την αλλαγή του προτεινόμενου μπλοκ όταν μια υπερ-πλειοψηφία των επικυρωτών έχει συμφωνήσει για την εισαγωγή του (αλλά δεν έχει εκτελέσει την εν λόγω εργασία), αυτή η διαδικασία αναφέρεται ως “Block Locking”.

Ο μηχανισμός συναίνεσης IBFT προσφέρει σταθερότητα συστήματος, με την προϋπόθεση ότι λιγότερο από το 1/3 των επικυρωμένων κόμβων συμπεριφέρονται εσφαλμένα (είτε λόγω παραβίασης είτε λόγω ελαττωματικού κώδικα). Δηλαδή για να ανεχθεί F ελαττωματικούς κόμβους η ομάδα επικύρωσης πρέπει να περιέχει τουλάχιστον 3F + 1 κόμβους (περισσότερο από αυτό δεν αυξάνει την ακεραιότητα του συστήματος).

Σημείωση: Στο παρόν F υπονοείται ο αριθμός των ελαττωματικών κόμβων που ανέχονται από το σύστημα.

Κρατική μηχανή

Μηχανή κατάστασης IBFT

Κράτη
  • Αναμονή πρότασης. Ο επικυρωτής περιμένει να παρασχεθεί ένα νέο μπλοκ από τον τρέχοντα προτείνοντα. Εάν ο επικυρωτής είναι ο προτείνων για αυτόν τον γύρο, προετοιμάζουν το προτεινόμενο μπλοκ και το διαβιβάζουν σε ένα μήνυμα προ-προετοιμασίας.
  • Προετοιμασία. Έχει λάβει ένα (έγκυρο) προτεινόμενο μπλοκ και έχει ενημερώσει τους επικυρωτές-ομότιμους. περιμένει τώρα για επικυρωτές-ομότιμους για να ειδοποιήσουν την αποδοχή τους για το μπλοκ.
  • Ετοιμος. Έχει λάβει την αποδοχή του μπλοκ επικυρωτή-ομότιμου και περιμένει να είναι σε παρόμοια θέση. Σε αυτό το στάδιο το προτεινόμενο μπλοκ έχει «κλειδωθεί» και δεν μπορεί να αντικατασταθεί έως ότου διεξαχθεί μια προσπάθεια εισαγωγής.
  • Στρογγυλή αλλαγή. Ο γύρος έληξε πριν επιτευχθεί συναίνεση ή το μπλοκ απέτυχε να εισαχθεί. Περιμένετε να συμφωνήσουν όλοι οι επικυρωτές σχετικά με τον επόμενο αριθμό γύρου.
Μεταβάσεις
  1. ΕΝΑαναμονή Πρότασης → Προετοιμασία. Κατά τη λήψη ενός νέου μπλοκ (Προετοιμασία μηνύματος) από τον προτείνοντα (δηλαδή το μπλοκ ισχύει στο περιεχόμενό του, όπως και το προτεινόμενο σημείο εισαγωγής αλυσίδας).
  2. Αναμονή πρότασης → Στρογγυλή αλλαγή. Η ληφθείσα πρόταση δεν ήταν έγκυρο μπλοκ σύμφωνα με ένα δεδομένο σύνολο κανόνων (π.χ. άκυρος προτείνοντας, λανθασμένη αρίθμηση στρογγυλού αριθμού).
  3. Προετοιμασία → Έτοιμο. Κατά τη λήψη των ειδοποιήσεων 2F + 1 (Προετοιμασία μηνύματος) από επικυρωτές-ομότιμους που δείχνουν ότι το προτεινόμενο μπλοκ είναι κατάλληλο για εισαγωγή.
  4. Έτοιμο → Αναμονή πρότασης. Κατά τη λήψη των ειδοποιήσεων 2F + 1 (μήνυμα Commit) από επικυρωτές-ομότιμους που δείχνουν ότι είναι έτοιμοι να προσθέσουν το μπλοκ στην αλυσίδα. Κατά τη μετάβαση, εκτελείται η διαδικασία προσάρτησης του μπλοκ στην αλυσίδα (επιτυχία).
  5. Έτοιμο → Στρογγυλή αλλαγή. Σύμφωνα με το Ready->Εν αναμονή της πρότασης, ωστόσο, η εισαγωγή μπλοκ απέτυχε.
  6. Αλλαγή γύρου → Αναμονή πρότασης. Οι επικυρωτές 2F + 1 συμφωνούν για τον επόμενο αριθμό γύρου που θα χρησιμοποιηθεί.

Σημείωση: Όλες οι μεταβάσεις στο “RoundChange” έχουν ως αποτέλεσμα το Validator να μεταδώσει ένα μήνυμα “RoundChange” στους επικυρωτές του.

Κλείδωμα μπλοκ

Το IBFT δίνει εντολή ότι δεν θα δημιουργηθούν πιρούνια. Για το σκοπό αυτό, όταν ένα μπλοκ έχει συμφωνηθεί με πλειοψηφία (δηλαδή κατά την είσοδο στην κατάσταση ετοιμότητας) γίνεται «κλειδωμένο».

Αυτό σημαίνει ότι δεν θα ληφθούν υπόψη άλλα μπλοκ έως ότου επιχειρήσετε να προσθέσετε αυτό το μπλοκ στην αλυσίδα. Επομένως είτε το μπλοκ εισάγεται με επιτυχία (μόλις ληφθούν επαρκή μηνύματα δέσμευσης, είτε σε αυτόν είτε στους επόμενους γύρους), είτε το μπλοκ αποτυγχάνει η εισαγωγή, απορρίπτεται και προτείνεται ένα νέο μπλοκ στο τρέχον ύψος της αλυσίδας.

Μέλη επικύρωσης ομάδας

Τα μέλη της ομάδας επικύρωσης μπορούν να αλλάξουν με την πάροδο του χρόνου μέσω ενός μηχανισμού ψηφοφορίας. Τα μέλη μπορούν να προστεθούν ή να αφαιρεθούν με πλειοψηφία (Όροφος (N / 2) + 1) ψήφο. κάθε ψήφος καταγράφεται στο Block Header.

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

Δεδομένου ότι κάθε ψήφος περιλαμβάνεται στην κεφαλίδα του μπλοκ, μόνο ο προτεινόμενος για έναν δεδομένο γύρο μπορεί να ψηφίζει. Επομένως, είναι σημαντικό, εάν οι κόμβοι να προστεθούν / αφαιρεθούν εγκαίρως, ο ρόλος του Προτείνοντος να ενημερώνεται τακτικά.

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

Το IBFT αναγνωρίζει μια Ψηφοφορική Εποχή, η οποία καθορίζει ένα σημείο στο οποίο αφαιρούνται όλες οι ψήφοι που δεν έχουν ακόμη φτάσει στην πλειοψηφία, αναγκάζοντας την επανεκκίνηση του ψηφίσματος. Αυτό συνεπάγεται κατά τον υπολογισμό των ψήφων, οι επικυρωτές πρέπει να ξεκινήσουν μόνο από την πιο πρόσφατη εποχή. Από προεπιλογή, το Voting Epoch εμφανίζεται κάθε 30.000 μπλοκ.

Οι ψήφοι ορίζουν μια αλλαγή κατάστασης (δηλαδή οι υποψήφιοι ψηφίζονται, οι επικυρωτές ψηφίζονται), η μη ψηφοφορία για έναν δεδομένο κόμβο υπονοεί ότι ο επικυρωτής δεν επιθυμεί τον κόμβο να αλλάξει κατάσταση (δεν απαιτείται ρητή ψήφος για τη διατήρηση του status quo).

Αντιδραστήρας κεφαλίδας μπλοκ

Για να υποστηρίξετε το IBFT στο Ethereum, πρέπει να γίνουν ορισμένες αλλαγές στις κεφαλίδες του μπλοκ. Αυτές οι αλλαγές περιλαμβάνουν:

  • δικαιούχος: προσδιορίζει τον κόμβο για τον οποίο ψηφίζεται η ψήφος.
  • nonce: καθορίζει την ψηφοφορία «κατεύθυνση» – AUTH ή DROP.
  • mixHash: επικολλημένος μαγικός αριθμός, προσδιορίζοντας αυτό το μπλοκ ως επικυρωμένο IBFT.
  • ommersHash: πρέπει να είναι το hash ενός κενού σετ, καθώς δεν υπάρχουν μπλοκ ommer όταν λειτουργούν κάτω από IBFT.
  • χρονική σήμανση: πρέπει να είναι τουλάχιστον το χρονικό χρονικό διάστημα + χρονικό σήμα μπλοκ γονικού μπλοκ.
  • δυσκολία: πρέπει να συμπληρωθεί με 0x0000000000000001.
  • extraData: περιέχει συγκεκριμένα δεδομένα IBFT, όπως Λίστα Διευθύνσεων Επικυρωτή, ProposerSeal (προσδιορίζει τον προτείνοντα), CommittingSeals (λίστα των επικυρωτών που ανέφεραν «δέσμευση» σε αυτό το μπλοκ).

Καθώς η λίστα των CommittingSeals για κάθε επικυρωτή είναι (δυνητικά) διαφορετική, είναι σημαντικό το μπλοκ hash να μην περιλαμβάνει αυτές τις πληροφορίες – δηλαδή παρόλο που δύο μπλοκ έχουν διαφορετικά πεδία CommittingSeals, αντιπροσωπεύουν τις ίδιες πληροφορίες (δηλαδή οι συναλλαγές κ.λπ. είναι ίδιες).

συμπέρασμα

Κλείνοντας, το IBFT είναι μια βυζαντινή ανεκτική βλάβη που προσφέρει άμεση ολοκλήρωση συναλλαγής που μειώνει την απαιτούμενη υποδομή που απαιτεί το PoW.

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

Οι διεργασίες που διερευνήθηκαν σε αυτό το άρθρο παρέχουν σιγουριά ότι ένα δίκτυο που χρησιμοποιεί IBFT θα είναι ανεκτικό στους βυζαντινούς κόμβους και μπορεί να ανακτηθεί εάν αυτοί οι κόμβοι θεωρούνται ότι ασκούν έλεγχο στο δίκτυο.

Ενημερωτικό δελτίο Εγγραφείτε στο ενημερωτικό δελτίο μας για τις τελευταίες ειδήσεις Ethereum, εταιρικές λύσεις, πόρους προγραμματιστών και πολλά άλλα. Διεύθυνση ηλεκτρονικού ταχυδρομείου Αποκλειστικό περιεχόμενοΠλήρης οδηγός για επιχειρηματικά δίκτυα BlockchainΟδηγός

Πλήρης οδηγός για επιχειρηματικά δίκτυα Blockchain

Εισαγωγή στο TokenizationΔιαδικτυακό σεμινάριο

Εισαγωγή στο Tokenization

Το μέλλον των ψηφιακών στοιχείων ενεργητικού και του DeFiΔιαδικτυακό σεμινάριο

Το μέλλον των οικονομικών: Ψηφιακά περιουσιακά στοιχεία και DeFi

Τι είναι το Enterprise EthereumΔιαδικτυακό σεμινάριο

Τι είναι το Enterprise Ethereum?

Κεντρικές τράπεζες και το μέλλον του χρήματοςΛευκό χαρτί

Κεντρικές τράπεζες και το μέλλον του χρήματος

Komgo Blockchain για εμπορία εμπορίου εμπορευμάτωνΜελέτη περίπτωσης

Komgo: Blockchain για εμπορία εμπορίου εμπορευμάτων

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map