Από τη δημιουργία του Bitcoin το 2008, ως ένα ηλεκτρονικό σύστημα μετρητών ομότιμης σύνδεσης, δημιουργήθηκαν πολλά άλλα κρυπτονομίσματα, το καθένα με έναν ιδιαίτερο μηχανισμό. Αλλά ένα πράγμα που σχεδόν όλα τα κρυπτονομίσματα έχουν κοινό είναι το blockchain, ως το βασικό στοιχείο της αρχιτεκτονικής τους.
Με λίγες εξαιρέσεις, τα blockchain έχουν σκοπίμως σχεδιαστεί για να είναι αποκεντρωμένα, λειτουργώντας ως ψηφιακό καθολικό που διατηρείται από ένα κατανεμημένο δίκτυο κόμβων υπολογιστών. Για τον λόγο αυτό, η τεχνολογία blockchain επέτρεψε τη δημιουργία μη εμπιστεύσιμων οικονομικών συστημάτων, όπου οι διαφανείς και αξιόπιστες χρηματοοικονομικές συναλλαγές θα μπορούσαν να εκτελούνται χωρίς την ανάγκη για μεσάζοντες. Τα κρυπτονομίσματα υιοθετούνται ως βιώσιμη εναλλακτική λύση στα παραδοσιακά συστήματα τραπεζών και πληρωμών, τα οποία εξαρτώνται σε μεγάλο βαθμό από την εμπιστοσύνη.
Ακριβώς όπως τα περισσότερα κατανεμημένα υπολογιστικά συστήματα, οι συμμετέχοντες σε ένα δίκτυο κρυπτονομισμάτων πρέπει να συμφωνούν τακτικά για την τρέχουσα κατάσταση του blockchain κι αυτό είναι αυτό που ονομάζουμε ομοφωνία. Ωστόσο, η επίτευξη ομοφωνίας στα κατανεμημένα δίκτυα, με ασφαλή και αποτελεσματικό τρόπο, δεν είναι εύκολη υπόθεση.
Πώς μπορεί ένα κατανεμημένο δίκτυο κόμβων υπολογιστών να συμφωνήσει για μια απόφαση εάν ορισμένοι από τους κόμβους είναι πιθανό να αποτύχουν ή να ενεργήσουν ανέντιμα; Αυτό είναι το θεμελιώδες ερώτημα του λεγόμενου Προβλήματος των βυζαντινών στρατηγών, που γέννησε την έννοια του Byzantine fault tolerance.
Τι είναι το Πρόβλημα των βυζαντινών στρατηγών;
Με λίγα λόγια, το Πρόβλημα των βυζαντινών στρατηγών επινοήθηκε το 1982 ως ένα λογικό δίλημμα που δείχνει πώς μια ομάδα βυζαντινών στρατηγών μπορεί να έχει προβλήματα επικοινωνίας όταν προσπαθεί να συμφωνήσει για την επόμενη κίνησή της.
Το δίλημμα προϋποθέτει ότι κάθε στρατηγός έχει τον δικό του στρατό και ότι κάθε ομάδα βρίσκεται σε διαφορετικές τοποθεσίες γύρω από την πόλη στην οποία σκοπεύουν να επιτεθούν. Οι στρατηγοί πρέπει να συμφωνήσουν είτε να επιτεθούν είτε να αποχωρήσουν. Δεν έχει σημασία αν θα επιτεθούν ή θα υποχωρήσουν, αρκεί όλοι οι στρατηγοί να συμφωνήσουν σε μια κοινή απόφαση, προκειμένου να την εκτελέσουν συντονισμένα.
Επομένως, μπορούμε να σκεφτούμε τις εξής απαιτήσεις:
Κάθε στρατηγός πρέπει να αποφασίσει: επίθεση ή υποχώρηση (ναι ή όχι)
Αφού η απόφαση ληφθεί, δεν μπορεί να αλλάξει
Όλοι οι στρατηγοί πρέπει να συμφωνήσουν για την ίδια απόφαση και να την εκτελέσουν με συγχρονισμένο τρόπο.
Τα προαναφερθέντα προβλήματα επικοινωνίας σχετίζονται με το γεγονός ότι ένας στρατηγός μπορεί να επικοινωνήσει με έναν άλλο μόνο μέσω μηνυμάτων, τα οποία παραδίδονται από έναν αγγελιοφόρο. Κατά συνέπεια, η κεντρική πρόκληση του Προβλήματος των βυζαντινών στρατηγών είναι ότι ενδέχεται τα μηνύματα με κάποιο τρόπο να καθυστερήσουν, να καταστραφούν ή να χαθούν.
Επιπλέον, ακόμη και αν ένα μήνυμα παραδοθεί με επιτυχία, ένας ή περισσότεροι στρατηγοί μπορούν να επιλέξουν (για οποιονδήποτε λόγο) να ενεργήσουν κακόβουλα και να στείλουν ένα δόλιο μήνυμα, ώστε να μπερδέψουν τους άλλους στρατηγούς, οδηγώντας σε πλήρη αποτυχία.
Εάν εφαρμόσουμε το δίλημμα στο πλαίσιο των blockchain, κάθε στρατηγός αντιπροσωπεύει έναν κόμβο δικτύου και οι κόμβοι πρέπει να επιτύχουν ομοφωνία όσον αφορά την τρέχουσα κατάσταση του συστήματος. Με άλλα λόγια, η πλειοψηφία των συμμετεχόντων σε ένα κατανεμημένο δίκτυο πρέπει να συμφωνήσει και να εκτελέσει την ίδια ενέργεια για να αποφευχθεί η πλήρης αποτυχία.
Επομένως, ο μόνος τρόπος για να επιτευχθεί ομοφωνία σε αυτούς τους τύπους κατανεμημένων συστημάτων είναι τουλάχιστον ⅔ ή περισσότεροι από τους κόμβους του δικτύου να είναι οι αξιόπιστοι και ειλικρινείς. Αυτό σημαίνει ότι εάν η πλειοψηφία του δικτύου αποφασίσει να ενεργήσει κακόβουλα, το σύστημα είναι επιρρεπές σε αστοχίες και επιθέσεις (όπως η επίθεση 51%).
Byzantine fault tolerance (BFT)
Με λίγα λόγια, το Byzantine fault tolerance (BFT) είναι η ιδιότητα ενός συστήματος να μπορεί να αντισταθεί στην κατηγορία των αστοχιών που προέρχονται από το Πρόβλημα των βυζαντινών στρατηγών. Αυτό σημαίνει ότι ένα σύστημα BFT μπορεί να συνεχίσει να λειτουργεί ακόμα κι αν κάποιοι από τους κόμβους αποτύχουν ή ενεργήσουν κακόβουλα.
Υπάρχουν περισσότερες από μία πιθανές λύσεις στο Πρόβλημα των βυζαντινών στρατηγών και, ως εκ τούτου, πολλαπλοί τρόποι οικοδόμησης ενός συστήματος BFT. Ομοίως, υπάρχουν διαφορετικές προσεγγίσεις για να επιτύχει ένα blockchain το Byzantine fault tolerance και αυτό μας οδηγεί στους λεγόμενους αλγόριθμους συναίνεσης.
Αλγόριθμοι συναίνεσης του blockchain
Μπορούμε να ορίσουμε έναν αλγόριθμο συναίνεσης ως τον μηχανισμό μέσω του οποίου ένα δίκτυο blockchain επιτυγχάνει ομοφωνία. Οι πιο συνηθισμένες εφαρμογές του είναι το Αποδεικτικό εργασίας (Proof of Work, ή PoW) και το Αποδεικτικό ενέργειας Staking (Proof of Stake, ή PoS). Αλλά, ας πάρουμε το Bitcoin ως παράδειγμα.
Ενώ το πρωτόκολλο του Bitcoin ορίζει τους κύριους κανόνες του συστήματος, ο αλγόριθμος συναίνεσης PoW είναι αυτός που ορίζει τον τρόπο συμμόρφωσης σε αυτούς τους κανόνες προκειμένου να επιτευχθεί ομοφωνία (για παράδειγμα, κατά την επαλήθευση και την επικύρωση των συναλλαγών).
Αν και η έννοια του Αποδεικτικού εργασίας είναι παλαιότερη από τα κρυπτονομίσματα, ο Satoshi Nakamoto ανέπτυξε μια τροποποιημένη εκδοχή του ως αλγόριθμο που επέτρεψε τη δημιουργία του Bitcoin ως σύστημα BFT.
Αξίζει να σημειωθεί ότι ο αλγόριθμος PoW δεν έχει 100% αντοχή στα Byzantine faults, αλλά, λόγω της δαπανηρής διαδικασίας εξόρυξης και των υποκείμενων κρυπτογραφικών τεχνικών, το PoW έχει αποδειχθεί ως μία από τις πιο ασφαλείς και αξιόπιστες εφαρμογές για δίκτυα blockchain. Υπό αυτή την έννοια, ο αλγόριθμος συναίνεσης με Αποδεικτικό εργασίας, που σχεδίασε ο Satoshi Nakamoto, θεωρείται από πολλούς ως μία από τις πιο ιδιοφυείς λύσεις στα Byzantine faults.
Συμπεράσματα
Το Πρόβλημα των βυζαντινών στρατηγών είναι ένα ενδιαφέρον δίλημμα που οδήγησε τελικά στα συστήματα BFT, τα οποία εφαρμόζονται ευρέως σε διάφορα σενάρια. Πέρα από τη βιομηχανία των blockchain, μερικές περιπτώσεις χρήσης των συστημάτων BFT περιλαμβάνουν τις βιομηχανίες της αεροπορίας, του διαστήματος και της πυρηνικής ενέργειας.
Στο πλαίσιο των κρυπτονομισμάτων, η ύπαρξη αποτελεσματικής δικτυακής επικοινωνίας μαζί με έναν καλό μηχανισμό συναίνεσης είναι εξαιρετικά σημαντικά για κάθε οικοσύστημα blockchain. Η διασφάλιση αυτών των συστημάτων είναι μια συνεχής προσπάθεια και οι υπάρχοντες αλγόριθμοι συναίνεσης δεν έχουν ακόμη ξεπεράσει ορισμένους περιορισμούς (όπως η επεκτασιμότητα). Ωστόσο, το PoW και το PoS είναι πολύ ενδιαφέρουσες προσεγγίσεις ως συστήματα BFT και οι πιθανές εφαρμογές τους σίγουρα εμπνέουν ευρέως την καινοτομία.