Δημοσίευση επισκεπτών HodlX Υποβάλετε την ανάρτησή σας
Πρόσφατα, έχουμε δει όλο και περισσότερα δίκτυα blockchain να πέφτουν θύματα στο 51% επίθεση. Αυτή η επίθεση είναι δυνατή επειδή τα όρια μπορεί να είναι αρκετά χαμηλά, που αντιστοιχούν σε λίγο περισσότερο από το 50 τοις εκατό του hashrate. Όταν ένας εισβολέας καταλαμβάνει ένα δίκτυο, υπάρχουν πολλοί τρόποι με τους οποίους μπορεί να γίνει κατάχρηση. Για παράδειγμα, ο εισβολέας μπορεί να πραγματοποιήσει διπλή δαπάνη. Ωστόσο, είναι πιο σημαντικό ότι ενώ το δίκτυο ελέγχεται από κακόβουλους χρήστες, οι λειτουργίες του δεν μπορούν να θεωρηθούν φυσιολογικές. Ουσιαστικά, τέτοιες επιθέσεις καθιστούν το blockchain ανενεργό.
Αυτό εξηγεί γιατί η ανάπτυξη μιας νέας συναίνεσης με υψηλή ανθεκτικότητα στο 51 τοις εκατό της επίθεσης είναι πολύ επίκαιρη εργασία. Στο πρόσφατο άρθρο του, Ένας οδηγός για τη συναίνεση αντοχής σε σφάλματα 99%, Ο Vitalik Buterin προτείνει έναν τρόπο αύξησης του ορίου της επίθεσης 51 τοις εκατό από το 51 τοις εκατό των μεριδίων ή το hashrate σε 99 τοις εκατό. Το κλειδί είναι η εισαγωγή πρόσθετων επικυρωτών, που ονομάζονται παρατηρητές, οι οποίοι δεν συμμετέχουν στη δημιουργία μπλοκ. Οι παρατηρητές εκτελούν την επικύρωση μετά την επικύρωση του blockchain και μπορούν να ειδοποιήσουν το δίκτυο εάν βρεθούν παραβιασμένα μπλοκ. Για μετά την επικύρωση, η Vitalik προτείνει ότι 512 κόμβοι επιλέγονται τυχαία κάθε 4.096 δευτερόλεπτα από τον αλγόριθμο που εξαρτάται από την καθυστέρηση.
Αν και αυτή η προσέγγιση βελτιώνει σίγουρα την προστασία του δικτύου, έχει σημαντικά σφάλματα. Οι πιο κρίσιμες αδυναμίες είναι η εξάρτηση από το χρόνο που απαιτείται για συναίνεση, η εξάρτηση από την απόδοση του δικτύου και ο συγχρονισμός χρόνου μεταξύ των παρατηρητών.
Εδώ, το ελάχιστο χρονικό διάστημα του D είναι μια εμπειρική τιμή, μέσω της οποίας οι παρατηρητές μπορούν να ανταλλάσσουν δεδομένα σωστά. Ο υπολογισμός του D λαμβάνει υπόψη την κακή σύνδεση στο Διαδίκτυο και την ικανότητα επεξεργασίας των παρατηρητών. Τα μπλοκ θεωρούνται έγκυρα μόνο εάν το χρονικό διάστημα επιβεβαίωσης διαιρεμένο με D δεν είναι μικρότερο από τον αριθμό των παρατηρητών που υπέγραψαν αυτό το μπλοκ.
Δεδομένου ότι η τιμή D είναι η ελάχιστη από όλες τις πιθανές, υπάρχει μια πιθανή κατάσταση όταν κατά τη διάρκεια του διαστήματος D, ένα μπλοκ επιβεβαιώνεται από έναν μόνο παρατηρητή. Επομένως, ο χρόνος που απαιτείται για συναίνεση εξαρτάται γραμμικά από τον αριθμό των παρατηρητών. Αυτό θέτει σημαντικούς περιορισμούς στην επεκτασιμότητα και την αποκέντρωση του δικτύου.
Στην περίπτωση περιορισμένου αριθμού παρατηρητών (ο Buterin προτείνει τη χρήση μόνο 512 παρατηρητών), η επικύρωση είναι μόνο ψευδο-αποκεντρωμένη. Σημαντικές ή απεριόριστες αυξήσεις στον αριθμό των παρατηρητών μπορεί να οδηγήσουν σε σημαντικά υψηλότερο απαιτούμενο χρόνο D. Σε αυτήν την περίπτωση, η επικύρωση θα διαρκέσει πολύ περισσότερο ή ακόμη και άσκοπη.
Το σύγχρονο εύρος ζώνης καναλιού επικοινωνίας εξακολουθεί να είναι περιορισμένο, παρεμποδίζοντας τη μετά την επικύρωση μεγάλων μπλοκ. Υποθέτοντας ότι το μέγεθος συναλλαγής είναι 200 bytes, το οποίο είναι στην πραγματικότητα αρκετά μικρό και πιθανό μόνο σε χρηματοοικονομικές συναλλαγές χωρίς έξυπνα συμβόλαια, και ότι υπάρχουν 50.000 συναλλαγές σε ένα μπλοκ (οι σύγχρονες μπλοκ προσπαθούν ενεργά να φτάσουν σε αυτό το επίπεδο), το μέγεθος του μπλοκ είναι 10Mb. Η μετάδοση αυτού του όγκου δεδομένων μέσα σε ένα δευτερόλεπτο απαιτεί κανάλι 100Mbps. Τα κανάλια κορμού είναι σίγουρα σε θέση να εγγυηθούν αυτό το επίπεδο απόδοσης, αλλά οι περιφερειακές συνδέσεις θα ήταν πολύ πιο αργές. Αυτό θα καθιστούσε αδύνατη την επικύρωση λόγω της απαίτησης λήψης υπογραφών εντός καθορισμένης χρονικής περιόδου ή ψευδο-αποκεντρωμένης όπου επιλέγονται μόνο παρατηρητές με τα καλύτερα κανάλια κορμού.
Μια άλλη αδυναμία είναι ο υποχρεωτικός συγχρονισμός του χρόνου μεταξύ των παρατηρητών που αυξάνει την ευπάθεια του δικτύου σε πιθανές επιθέσεις, καθώς κανένα δίκτυο blockchain δεν χρησιμοποιεί ασφαλή πρωτόκολλα συγχρονισμού χρόνου (όπως το SNTP). Η συνεργασία με μη ασφαλές NTP δημιουργεί πολλές ευκαιρίες για μη συγχρονισμό των ομάδων παρατηρητών, οι οποίες αργότερα μπορούν να σαμποτάρουν πλήρως την επικύρωση.
Σε μια προσπάθεια να εξαλειφθούν τα ζητήματα που περιγράφονται παραπάνω και να ενισχυθεί η ανθεκτικότητα του δικτύου από 51 τοις εκατό επίθεση έως 90 τοις εκατό, μια προσέγγιση που χρησιμοποιεί πρόσθετους ρόλους θα μπορούσε να προσφέρει μια λύση για τη συναίνεση του δικτύου. Εναλλακτικά με τη λύση που περιγράφεται από τον Vitalik Buterin, σε αυτήν την περίπτωση ένα δίκτυο θα απαιτούσε πέντε ρόλους που εκχωρούνται δυναμικά σε κόμβους.
Λόγω αυτής της ρύθμισης, η επίλυση του προβλήματος Βυζαντινού Σφάλματος Ανοχής (BFT) για την ταυτόχρονη απόκτηση του ποσοστού 67 τοις εκατό σε πολλά επίπεδα απαιτεί τον έλεγχο πάνω από το 90 τοις εκατό του μεριδίου. Επιπλέον, η ανθεκτικότητα είναι τόσο υψηλή που χρειάζεται περισσότερο από το 53% των μεριδίων για την εμφάνιση κακόβουλων συναλλαγών.
Ακόμη και με την απίθανη εμφάνιση του δικτύου με το 90 τοις εκατό των μεμονωμένων μεριδίων, οι πελάτες θα αρχίσουν αναδρομικά να απορρίπτουν τα μπλοκ και να σταματήσουν να εμπιστεύονται το συμβιβασμένο δίκτυο, χωρίζοντας αποτελεσματικά το δίκτυο σε δύο. Δεδομένου ότι οι πελάτες που χρησιμοποιούν το δίκτυο είναι το πιο πολύτιμο κομμάτι του, η κατοχή του 90 τοις εκατό του ελέγχου στο ποντάρισμα δίνει μόνο έλεγχο στο νεκρό δίκτυο χωρίς πελάτες, ενώ το υπόλοιπο 10 τοις εκατό θα γίνει το 100 τοις εκατό των κατόχων κερμάτων στο νέο δίκτυο.
Το δίκτυο χρησιμοποιεί ασύγχρονη επικύρωση μπλοκ για να εξαλείψει την εξάρτηση του χρόνου συναίνεσης από τον αριθμό των επικυρωτών. Το επόμενο μπλοκ αρχίζει να δημιουργείται μόλις δημιουργηθεί το τρέχον και έχει ολοκληρωθεί η βασική μετά την επικύρωση. Πλήρης επικύρωση συμβαίνει σε διαφορετικά επίπεδα ταυτόχρονα (ανά ρόλο επαληθευτή, torrent, peer και client). Κάθε φορά που εντοπίζεται κακόβουλο μπλοκ, το blockchain επιστρέφει στην τελευταία επιβεβαιωμένη κατάσταση και ανακατασκευάζεται από μη επεξεργασμένες συναλλαγές.
Το ζήτημα των δυνητικά κακών συνδέσεων στο Διαδίκτυο μετριάζεται με τη χρήση τεχνολογίας τύπου BitTorrent. Τα δεδομένα μεταδίδονται σε ολόκληρο το δίκτυο σε τμήματα, εξασφαλίζοντας ταχύτερες συναλλαγματικές ισοτιμίες σε περιοχές με χαμηλό εύρος ζώνης. Αυτό επιτρέπει την παράδοση δεδομένων ακόμη και σε τεχνητά απομονωμένες περιοχές.
Η επίλυση της πρόκλησης συγχρονισμού χρόνου είναι διπλή: ο εσωτερικός χρόνος της διαδικασίας (σε τσιμπούρια) χρησιμοποιείται όπου είναι δυνατόν και ο συγχρονισμός χρόνου πραγματοποιείται μέσω προστατευμένου ιδιόκτητου πρωτοκόλλου SNTP.
Συμπερασματικά, η παρουσίαση διαφορετικών ρόλων στη συναίνεση, όπως περιγράφεται παραπάνω, είναι πιθανώς η πιο προοπτική προσέγγιση σήμερα και μπορεί ελπίζουμε να βελτιώσει σημαντικά την ασφάλεια στο blockchain.
Gleb Nikitin
Gleb Nikitin, Tech Lead και συνιδρυτής στο #MetaHash