Η υπογραφή στο Bitcoin Core 26.2 δεν θεωρεί πλέον δεδομένο ότι ένα TapMiniscript είναι ορθό (#29853), το getnetworkhashps βγάζει σφάλμα σε άκυρες παραμέτρους (#28554) και το setmocktime αποκτά επιβαλλόμενο ανώτατο όριο (#29869). Το build δουλεύει πλέον και με miniupnpc 2.2.8.
Τα εισερχόμενα μηνύματα μπορούσαν να φτάνουν τα 32 MiB πριν από το Bitcoin Core 0.10.1, οπότε ένας επιτιθέμενος μπορούσε να επιβάλει τόση δέσμευση RAM ανά σύνδεση και ίσως να ρίξει τον κόμβο. Το ανέφερε ο χρήστης του Bitcointalk Evil-Knievel· το #5843 κατέβασε το όριο στα 2 MiB, που αργότερα ανέβηκε στα 4 MB για το Segwit. Η αποκάλυψη που είχε ανακοινωθεί για το 2015 αναβλήθηκε και οι λεπτομέρειες βγήκαν το 2024.
Το IPv6 έκανε φθηνό το φούσκωμα της απεριόριστης λίστας αποκλεισμών του Bitcoin Core, και κάθε μήνυμα GETADDR ανάγκαζε έπειτα σάρωση αυτής της λίστας για κάθε διεύθυνση που επέστρεφε, έως 2500. Τόσο η κατάρρευση μνήμης όσο και η επιβάρυνση της CPU, χαρακτηρισμένες υψηλής σοβαρότητας, διορθώθηκαν με το #19219, που κυκλοφόρησε στις 0.20.1 και 0.21.0.
Δύο σφάλματα στον χειρισμό του μηνύματος version, μια υπερχείλιση προσημασμένου ακεραίου και ένα λογικό σφάλμα στο abs64, επέτρεπαν σε έναν επιτιθέμενο να μετατοπίσει τον προσαρμοσμένο χρόνο του θύματος, ώσπου αυτό να απορρίπτει νέα μπλοκ ως υπερβολικά μελλοντικά. Ο επιτιθέμενος έπρεπε να είναι ανάμεσα στους 200 πρώτους ομότιμους που συνδέονταν. Το πρόβλημα, μεσαίας σοβαρότητας, διορθώθηκε στο Bitcoin Core 0.21.0.
Το άνοιγμα ενός πλαστού συνδέσμου πληρωμής BIP72 μπορούσε να ρίξει το Bitcoin-Qt: η παράμετρος r μπορούσε να δείχνει σε ένα τεράστιο αρχείο και η εφαρμογή προσπαθούσε να δεσμεύσει μνήμη γι' αυτό, ενώ η λήψη έτρεχε αθόρυβα στο παρασκήνιο. Το σφάλμα μεσαίας σοβαρότητας εξαφανίστηκε όταν το #17165 αφαίρεσε την υποστήριξη του BIP70, στην έκδοση 0.20.0.
Ειδικά κατασκευασμένες orphan συναλλαγές, άκυρες αλλά ακριβές στην επικύρωση, μπορούσαν να παγώσουν έναν κόμβο για ώρες, γιατί κάθε νέα αποδεκτή συναλλαγή πυροδοτούσε μια τετραγωνική αναζήτηση στην κρυφή μνήμη orphan. Το #15644 του Pieter Wuille διακόπτει αυτή τη δουλειά για να επεξεργαστεί νέα μηνύματα μόλις βρεθεί αντιστοιχία. Η διόρθωση, για σφάλμα υψηλής σοβαρότητας, έφτασε στους χρήστες με το Bitcoin Core 0.18.0.
Ένα κακοσχηματισμένο μήνυμα GETDATA μπορούσε να κρατά το νήμα net_processing στο 100% της CPU στις εκδόσεις του Bitcoin Core πριν από την 0.20.0, προσθέτοντας 1,5 MB μνήμης ανά επιτιθέμενο ομότιμο. Οι άλλοι ομότιμοι εξακολουθούσαν να εξυπηρετούνται, εξ ου και ο χαρακτηρισμός χαμηλής σοβαρότητας. Το σφάλμα το βρήκε και το διόρθωσε ο John Newbery στο #18808.
Κεφαλίδες χτισμένες απευθείας πάνω στο μπλοκ genesis, με δυσκολία μόλις 1, ξέφευγαν από τη λογική των checkpoints από το Bitcoin Core 0.12.0 έως την 0.15.0, οπότε ένας spammer μπορούσε να μεγαλώνει το mapBlockIndex χωρίς όριο και ίσως να ρίξει τον κόμβο από έλλειψη μνήμης. Ο Cory Fields ανέφερε το σφάλμα μεσαίας σοβαρότητας το 2017 και το #11028 το έκλεισε.
Ένα μόνο INV με 50.000 αντικείμενα μπλοκ μπορούσε να βάλει έναν κόμβο να ετοιμάσει 50.000 απαντήσεις getheaders περίπου 1 kB η καθεμία, και ένας ομότιμος που αρνιόταν να τις διαβάσει κρατούσε γεμάτο αυτό το buffer αποστολής των 50 MB. Το #18962 του John Newbery, που παρουσιάστηκε ως εξοικονόμηση εύρους ζώνης, έστειλε ένα GETHEADERS ανά INV και μπήκε στην 0.20.0.
Κρατώντας πίσω τις απαντήσεις GETDATA και στέλνοντας έπειτα μαζικά ψεύτικες ανακοινώσεις για να διώξει μια συναλλαγή από τον χάρτη g_already_asked_for των 50.000 θέσεων, ένας επιτιθέμενος μπορούσε να την ξαναναγγέλλει συνεχώς και να εμποδίζει το θύμα να τη ζητήσει από άλλον. Το σφάλμα, μεσαίας σοβαρότητας, αποκάλυψε ο John Newbery· το διόρθωσε το #19988 του Pieter Wuille στο Bitcoin Core 0.21.0.
Μια δεύτερη υπερχείλιση buffer στο miniupnpc, που βρήκε ο Wladimir J. Van Der Laan, διέρρεε δεδομένα και μπορούσε να συνδυαστεί με το CVE-2015-6031 για απομακρυσμένη εκτέλεση κώδικα, κάτι που ο ίδιος έδειξε στο miniupnpc 1.6-precise του Ubuntu. Το exploit του δεν μεταφερόταν απευθείας στο Bitcoin Core, και η έκδοση 0.12 έφερε τη διόρθωση τον Φεβρουάριο του 2016.
Διορθώσεις σφαλμάτων γεμίζουν το Bitcoin Core 27.1: επισκευάζεται το fee bump του GUI για μη υπογεγραμμένες συναλλαγές, το πεδίο IP του proxy δεν δέχεται πια θύρα και το GetAddedNodeInfo() εντοπίζει τώρα τους ομότιμους addnode σε CJDNS (#30085). Αλλάζει και ο χειρισμός του TapMiniscript κατά την υπογραφή (#29853).
Ενεργοποιείται εξ ορισμού το BIP324 v2 transport στο Bitcoin Core 27.0, και ο νέος αλγόριθμος CoinGrinder αναζητά το ελαφρύτερο σύνολο εισόδων σε feerates από 30 sat/vB και πάνω. Ο χρόνος με προσαρμογή από το δίκτυο βγαίνει από τον κώδικα συναίνεσης υπέρ του χρόνου συστήματος, οπότε τα ακριβή ρολόγια μετρούν περισσότερο για όσους τρέχουν κόμβους. Το libbitcoinconsensus αποσύρεται, με αφαίρεση προγραμματισμένη για την v28.
Οι κόμβοι με Bitcoin Core 25.2 σταματούν να επεξεργάζονται μεταλλαγμένα μπλοκ (#29412). Η ενημέρωση διορθώνει επίσης ένα segfault στο getrawtransaction (#29003), ένα use-after-free στο WalletBatch::EraseRecords (#29176) και μια κατάρρευση του GUI κατά την επιλογή «Mask values».
Οι συνεδρίες I2P στο Bitcoin Core 26.1 χρησιμοποιούν κρυπτογράφηση τόσο ECIES-X25519 όσο και ElGamal (#29200), ενώ ο κόμβος καταγράφει πλέον την πρόοδο κατά τη φόρτωση του mempool. Στις διορθώσεις περιλαμβάνονται η άρνηση επεξεργασίας μεταλλαγμένων μπλοκ (#29412) και ένα πορτοφόλι που παραλείπει την επιλογή νομισμάτων BnB όταν είναι ενεργό το SFFO (#28994).
Πειραματική πρεμιέρα κάνει το BIP324 v2 transport στο Bitcoin Core 26.0, απενεργοποιημένο εξ ορισμού και διαθέσιμο με το -v2transport. Το νέο RPC loadtxoutset φορτώνει στιγμιότυπα assumeutxo και δίνει έναν κόμβο έτοιμο για χρήση μέσα σε λίγα λεπτά, ενώ το αρχικό chainstate ολοκληρώνει την επικύρωση στο παρασκήνιο· το submitpackage στέλνει ακατέργαστες συναλλαγές στο mempool ως πακέτο.
Το Bitcoin Core 24.2 δεν σερβίρει πια ξεπερασμένες εκτιμήσεις τελών (#27622) και διορθώνει τον χειρισμό άκυρων διευθύνσεων bech32 στα RPC (#27727). Οι περισσότερες υπόλοιπες αλλαγές αγγίζουν το σύστημα build και το CI, με μια διόρθωση για το build του πακέτου Qt σε macOS με τον linker του Xcode 15 (#28543).
Παράλληλες λήψεις compact block φέρνει το Bitcoin Core 25.1 (#27626). Άλλες διορθώσεις καλύπτουν ένα crash του REST στο /deploymentinfo (#27853), τον τερματισμό του server μετά την αποσύνδεση απομακρυσμένου πελάτη (#28551) και τη μετάβαση πορτοφολιών, που πλέον αρνείται άκυρα scripts (#28125).
Ταχύτερα γίνονται τα rescan των descriptor wallets στο Bitcoin Core 25.0 όταν υπάρχουν φίλτρα compact block BIP158 μέσω -blockfilterindex=1, ενώ το νέο RPC scanblocks ψάχνει σε αυτά τα φίλτρα. Η πολιτική αναμετάδοσης δέχεται πλέον συναλλαγές από 65 byte χωρίς witness και πάνω. Με -blocksonly, η μέγιστη μνήμη του mempool πέφτει από τα 300 MB στα 5 MB.
Τρεις αλλαγές P2P είναι η ουσία του Bitcoin Core 23.2: τέλος η αλλοίωση του peers.dat (#26909), όχι πρόωρο καθάρισμα της κατάστασης λήψης άλλων ομότιμων (#27608) και ταχύτερες ουρές inv-to-send (#27610). Τα υπόλοιπα αφορούν build και CI, όπως η μεταγλώττιση του bdb με clang-16 σε aarch64.