Τα στοιχεία που δημοσιεύθηκαν από τον προγραμματιστή του bitcoin core Luke Dashjr δείχνουν ότι περισσότεροι από τους μισούς από τους πλήρεις κόμβους στο δίκτυο bitcoin εξακολουθούν να χρησιμοποιούν λογισμικό πελάτη ευάλωτο στο σφάλμα πληθωρισμού που ανακαλύφθηκε τον Σεπτέμβριο του 2018.
Αυτή η αποκάλυψη ενέχει κάποιο κίνδυνο για το δίκτυο, καθώς οι ευπάθειες λογισμικού αποτελούν σαφή και παρόντα κίνδυνο για την πιστότητα του bitcoin (BTC). Τώρα που η κορυφαία κρυπτογράφηση βρίσκεται στη μέση μιας θετικής τιμής, είναι ίσως σημαντικό να ληφθούν μέτρα για την εξάλειψη του προβλήματος του σφάλματος του πληθωρισμού για πάντα.
Οι περισσότεροι πλήρεις κόμβοι bitcoin εξακολουθούν να είναι ευάλωτοι στο σφάλμα πληθωρισμού
Όπως αναφέρεται από την Cointelegraph στις 8 Μαΐου, έρευνα από τον Dashjr δείχνει ότι περισσότερο από το 50% των πλήρων κόμβων στο δίκτυο bitcoin εξακολουθούν να εκτελούν εκδόσεις λογισμικού του προγράμματος-πελάτη bitcoin που είναι ευαίσθητα στο σφάλμα πληθωρισμού.
Ωστόσο, από τότε, το ποσοστό μειώθηκε ελαφρώς από περίπου 60% σε 54%. Αυτό σημαίνει ότι, τις τελευταίες ημέρες, ορισμένοι πλήρεις κόμβοι έχουν αναβαθμιστεί σε μια πιο πρόσφατη ενημέρωση λογισμικού πελάτη.
Τον Σεπτέμβριο του 2018, οι προγραμματιστές ανακάλυψαν για πρώτη φορά το σφάλμα πληθωρισμού – το οποίο, θεωρητικά, θα μπορούσε να επιτρέψει στους ανθρακωρύχους να διογκώσουν τη συνολική προσφορά bitcoin πέραν των 21 εκατομμυρίων BTC, δαπανώντας πολλαπλές εξόφληση συναλλαγών (UTXO) στην ίδια συναλλαγή.
Δεδομένης της φύσης του σφάλματος, οι προγραμματιστές το κράτησαν μυστικό, απελευθερώνοντας ήσυχα μια νέα έκδοση του πελάτη. Ένα απόσπασμα από την κοινή έκθεση ευπάθειας και εκθέσεων (CVE) του Σεπτεμβρίου 2018 που κυκλοφόρησε από το Bitcoincore.org διαβάζει:
«Προκειμένου να ενθαρρυνθούν οι ταχείες αναβαθμίσεις, η απόφαση ελήφθη αμέσως για να διορθωθεί και να αποκαλυφθεί η λιγότερο σοβαρή ευπάθεια άρνησης υπηρεσίας, ταυτόχρονα με την προσέγγιση των ανθρακωρύχων, των επιχειρήσεων και άλλων επηρεαζόμενων συστημάτων, ενώ καθυστερεί η δημοσίευση του πλήρους τεύχους για να δοθούν χρόνοι για τα συστήματα για αναβάθμιση. Στις 20 Σεπτεμβρίου μια ανάρτηση σε ένα δημόσιο φόρουμ ανέφερε τον πλήρη αντίκτυπο και παρόλο που αποσύρθηκε γρήγορα, ο ισχυρισμός κυκλοφόρησε περαιτέρω. “
Ένα βασικό συμπέρασμα από την ανάλυση του Dashjr είναι ο συνολικός αριθμός πλήρων κόμβων στο δίκτυο bitcoin. Οι περισσότερες πηγές λογοτεχνίας bitcoin βάζουν τον αριθμό των πλήρων αριθμών σε κάπου που πλησιάζουν τα 10.000.
Ωστόσο, ο Dashjr πιστεύει ότι αυτός ο αριθμός είναι πλησιέστερος στα 100.000 και ότι ο λόγος για αυτό διαφορά έγκειται στο γεγονός ότι πολλές πηγές αντιπροσωπεύουν μόνο κόμβους που ακούνε ενεργά στο δίκτυο.
Ονομάζονται κόμβοι ακρόασης, αυτοί οι πλήρεις κόμβοι έχουν συνδέσεις ανοιχτής θύρας που μπορούν να ανιχνευθούν. Ωστόσο, δεν είναι όλοι οι πλήρεις κόμβοι ακρόασης. Μερικά, κρυμμένα πίσω από τείχη προστασίας ή διαμορφωμένα ώστε να μην ακούνε ενεργά νέες συνδέσεις, δεν έχουν εύκολα ανακαλύψιμες συνδέσεις ανοιχτής θύρας.
Η σοβαρότητα του σφάλματος πληθωρισμού
Για να κατανοήσουμε τη σοβαρότητα του σφάλματος πληθωρισμού, είναι σημαντικό να γνωρίζουμε τον μηχανισμό με τον οποίο θα μπορούσε να αξιοποιηθεί το πρόβλημα. Αυτή η διαδικασία θα περιλάμβανε μια περίληψη που θα εξηγούσε την επίθεση διπλής δαπάνης, το ίδιο το σφάλμα πληθωρισμού και τα προβλήματα που θα μπορούσαν να προκύψουν εάν αφεθούν ανεξέλεγκτα.
Η πρώιμη επιτυχία του Bitcoin προσφέρεται πολύ για τον Satoshi Nakamoto – τον δημιουργό του bitcoin – εξαιρετική λύση στο πρόβλημα των διπλών δαπανών που είχε εμποδίσει την επιτυχή ανάπτυξη και εφαρμογή προηγούμενων συστημάτων εικονικού νομίσματος.
Δημιουργώντας ένα αμετάβλητο καθολικό με κόμβους που επικυρώνουν συναλλαγές, έγινε σχεδόν θεωρητικά αδύνατο να ξοδέψετε το ίδιο UTXO σε δύο διαφορετικές συναλλαγές.
Ωστόσο, τι συμβαίνει όταν, αντί να ξοδεύει το UTXO σε δύο διαφορετικές συναλλαγές, ένας κακόβουλος ηθοποιός προσπαθεί να χρησιμοποιήσει μία συναλλαγή για να ξοδέψει το UTXO πολλές φορές; Λόγω του τρόπου με τον οποίο το bitcoin έχει σχεδιαστεί για να λειτουργεί, αυτή η ενέργεια θα σήμαινε τη δημιουργία νέων νομισμάτων ουσιαστικά από το λεπτό αέρα, αυξάνοντας έτσι τη συνολική προσφορά – ergo, το σφάλμα πληθωρισμού.
Αρκετές διαδοχικές ενημερώσεις στο λογισμικό bitcoin προσπάθησαν να βελτιώσουν την ασυλία του blockchain από τον πρώτο τύπο επίθεσης διπλής δαπάνης. Ωστόσο, από την έκδοση Core 0.14.x του προγράμματος-πελάτη λογισμικού bitcoin, οι προγραμματιστές άρχισαν να παρατηρούν ότι υπάρχει πιθανότητα ευπάθειας κατανεμημένης άρνησης υπηρεσίας (DDoS) στον πελάτη λογισμικού.
Το σφάλμα επέτρεψε σε έναν κακόβουλο εισβολέα να συντρίψει κόμβους που εκτελούν την έκδοση λογισμικού 0.14.x προσπαθώντας να ξοδέψει το ίδιο UTXO δύο φορές. Σε αυτήν την επανάληψη του σφάλματος, ο στόχος θα ήταν να καταρρεύσει όσο το δυνατόν περισσότερους κόμβους και να μην αυξήσει απαραίτητα τη συνολική προσφορά bitcoin.
Στην προσπάθεια επίλυσης του προβλήματος, η επόμενη ενημερωμένη έκδοση, 0.15.0, περιελάμβανε λειτουργίες που επέτρεψαν κατά λάθος σε έναν κακόβουλο εισβολέα να διπλασιάσει το ίδιο UTXO σε μία συναλλαγή. Αντί να προκαλέσει σφάλμα συστήματος, αυτό το νέο σφάλμα προκάλεσε παλαιότερους πελάτες λογισμικού να αναγνωρίσουν τέτοιες συναλλαγές διπλής δαπάνης ως έγκυρες.
Μετά την ανακάλυψή τους, οι προγραμματιστές κυκλοφόρησαν ξανά μια νέα έκδοση λογισμικού πριν το ανακοινώσουν στην ευρύτερη κοινότητα κρυπτογράφησης. Ωστόσο, αρκετοί μήνες μετά την έγκαιρη επίλυση του προβλήματος, φαίνεται ότι περισσότεροι από τους μισούς πλήρεις κόμβους στο δίκτυο εξακολουθούν να εκτελούν εφαρμογές πελάτη ευάλωτες στο σφάλμα.
Ο Cointelegraph μίλησε με τον Dashjr σχετικά με την επίπτωση του σφάλματος πληθωρισμού, στο οποίο ο προγραμματιστής του bitcoin απάντησε:
«Το σφάλμα πληθωρισμού είναι στην πράξη ένας κίνδυνος σε όλο το δίκτυο. Θα επέτρεπε σε μια επίθεση ανθρακωρύχου 51% να προκαλέσει πληθωρισμό (κάτι που συνήθως δεν μπορούν να κάνουν τέτοιες επιθέσεις). Η πληθωριστική αλυσίδα θα γινόταν αποδεκτή μόνο από ευάλωτους κόμβους και ελαφριά πορτοφόλια. “
Επεκτείνοντας περαιτέρω τους κινδύνους που ενέχει το σφάλμα, ο Dashjr συνέχισε να λέει:
«Κάνει αυτό που θεωρήθηκε ότι ήταν ένας πλήρης κόμβος, στην πραγματικότητα απλώς ένα ελαφρύ πορτοφόλι από αυτή την άποψη. Εάν περισσότερα από μια μικρή μειοψηφία χρησιμοποιούν ελαφριά πορτοφόλια, οι ανθρακωρύχοι μπορούν να καταρτίσουν τους κανόνες. “
Όλοι οι κόμβοι πρέπει να κάνουν είναι η αναβάθμιση
Κάθε φορά που οι προγραμματιστές ανακαλύπτουν ένα τέτοιο σφάλμα, η λύση είναι πάντα οι κόμβοι να αναβαθμίζονται σε μια νεότερη έκδοση λογισμικού που ελπίζουμε ότι διαθέτει χαρακτηριστικά που εξαλείφουν το πρόβλημα. Μερικές φορές, αυτή η διαδικασία μπορεί να οδηγήσει στην εμφάνιση ενός άλλου προβλήματος – όπως φαίνεται το 2018, όταν η επίλυση του σφάλματος DDoS προκάλεσε το σφάλμα πληθωρισμού να εκδηλωθεί.
Όταν ρωτήθηκε από τον Cointelegraph τι πρέπει να γίνει για την κατάσταση, η απάντηση του Dashjr ήταν απλή και ευθεία στο σημείο:
“Όλοι αναβαθμίζουν σε έναν σταθερό πλήρη κόμβο.”
Ενώ αυτή η διαδικασία βρίσκεται σε εξέλιξη, αντιμετωπίζει το δίκτυο bitcoin αξιόπιστο κίνδυνο που απορρέει από το γεγονός ότι οι μισοί από τους πλήρεις κόμβους είναι ευάλωτοι στο σφάλμα πληθωρισμού; Η απάντηση στην ερώτηση μπορεί να βρίσκεται στο ποιος έχει πραγματικά την πραγματική δύναμη στο δίκτυο: ανθρακωρύχοι ή προγραμματιστές?
Το 2018, ο προγραμματιστής bitcoin, Jimmy Song εξέφρασε την άποψη ότι οι απατεώνες ανθρακωρύχοι που προσπαθούν να εκμεταλλευτούν το σφάλμα πληθωρισμού θα έβρισκαν σχεδόν αδύνατο να πετύχουν. Ο πρώτος είπε ότι ο τραγουδιστής δεν εκτελεί τον πλήρη πυρήνα bitcoin, αλλά ένας μεγάλος αριθμός προτιμά να αναπτύξει προσαρμοσμένες επαναλήψεις του πελάτη bitcoin.
Το γεγονός ότι ορισμένοι κόμβοι δεν εκτελούν τον πυρήνα του πελάτη μειώνει ήδη την επίθεση επειδή τέτοιοι κόμβοι θα απορρίψουν το μπλοκ που περιέχει τα διογκωμένα UTXO. Εάν ένας σημαντικός αριθμός ανθρακωρύχων απορρίψει το μολυσμένο μπλοκ, τότε πιθανόν να συμβεί διαχωρισμός αλυσίδας.
Το 2010, κατά τη διάρκεια του «συμβάν υπερχείλισης τιμής“Ανακαλύφθηκε στο μπλοκ 74.638, οι προγραμματιστές δημοσίευσαν μια νέα ενημέρωση στον πελάτη σε λιγότερο από πέντε ώρες, επιλύοντας το πρόβλημα. Το εν λόγω μπλοκ περιείχε μια συναλλαγή που δημιούργησε περίπου 184 δισεκατομμύρια BTC για τρεις διευθύνσεις, με δύο διευθύνσεις να λαμβάνουν 92,2 δισεκατομμύρια BTC και ο ανθρακωρύχος που είναι υπεύθυνος για την επίλυση του μπλοκ να λαμβάνει 0,01 BTC.
Η απόκλιση διήρκεσε μόνο για τα επόμενα 53 μπλοκ, και από το ύψος του μπλοκ 74.691, όλα τα ίχνη της τιμής υπερχείλισης δεν υπήρχαν πλέον στο δίκτυο. Οι κόμβοι που αρχικά δέχτηκαν τον διαχωρισμό αλυσίδας με το βαμμένο μπλοκ άρχισαν σύντομα να επιστρέφουν στο διαχωρισμό αλυσίδας που δεν περιείχε το διογκωμένο μπλοκ.
Το ίδιο ισχύει και για το σφάλμα πληθωρισμού: Μόλις συμβεί το διαχωρισμό, οι προγραμματιστές και άλλοι στο δίκτυο θα αρχίσουν να παρατηρούν, όπως εξήγησε ο Song σε αυτό το απόσπασμα της ανάρτησής του στο blog, το οποίο έχει ως εξής:
«Λόγω αυτών των παρατυπιών, τα άτομα στο δίκτυο θα το παρακολουθούσαν σύντομα, πιθανώς είχαν ειδοποιήσει ορισμένους προγραμματιστές και οι βασικοί προγραμματιστές θα το είχαν διορθώσει. Εάν υπήρχε ένα πιρούνι, η κοινωνική συναίνεση σε αυτό το σημείο για το ποια είναι η σωστή αλυσίδα θα αρχίσει να συζητείται και η αλυσίδα που δημιουργεί απροσδόκητο πληθωρισμό πιθανότατα θα είχε χαθεί. Αν υπήρχε στάβλος, πιθανότατα θα υπήρχε εθελοντική ανατροπή για να τιμωρήσει τον επιτιθέμενο ».
Για τον Song, δεδομένης της οικονομικής της επίθεσης, είναι απίθανο οι απατεώνες ανθρακωρύχοι να θέλουν να χρησιμοποιήσουν μια τέτοια τακτική. Ωστόσο, ο εκπαιδευτικός του bitcoin είπε ότι οι χάκερ που εργάζονται για χώρες με αντι-bitcoin αισθήματα θα μπορούσαν να εκμεταλλευτούν το σφάλμα για να καταστρέψουν το δίκτυο.