Per la prima volta un audit indipendente analizza in profondità Bitcoin Core, con l’obiettivo di migliorare sicurezza, test e resilienza complessiva dell’ecosistema.
Summary
Che cosa rappresenta il primo audit di Bitcoin Core?
Il primo audit pubblico di terze parti su Bitcoin Core è stato condotto da Quarkslab, con il finanziamento di Brink e il coordinamento dell’Open Source Technology Improvement Fund (OSTIF).
La collaborazione tra Quarkslab e OSTIF risale al 2015, mentre le attività di revisione nel settore blockchain sono iniziate nel 2018 con l’analisi dei Bulletproofs di Monero.
In questo nuovo incarico, il team di esperti ha esaminato in modo sistematico il software di riferimento della rete Bitcoin per supportare sviluppatori e comunità nel rafforzamento della sicurezza complessiva.
L’analisi ha combinato tecniche statiche e test dinamici, con l’obiettivo di comprendere a fondo lo stato dell’arte delle difese esistenti.
Inoltre, le metodologie di test già in uso sono state valutate criticamente e affiancate da nuovi approcci proposti da Quarkslab. Il rapporto completo è disponibile nel repository pubblico dei report di Quarkslab, che documenta in dettaglio percorso, strumenti e risultati dell’intervento.
Perché Bitcoin Core è così critico per la rete?
Il client esaminato è l’implementazione canonica della rete Bitcoin, che alimenta un asset dal valore complessivo nell’ordine dei trilioni di dollari. Include un full node, un’interfaccia grafica, funzionalità di mining e un wallet integrato, costituendo così l’ossatura operativa del protocollo.
Rilasciata per la prima volta da Satoshi Nakamoto nel gennaio 2009, l’applicazione si è evoluta in modo drastico, con oltre 46.000 commit negli ultimi 16 anni. Sviluppata in C e C++, è oggi mantenuta da decine di contributor attivi, molti dei quali sostenuti da realtà come Brink e Chaincode Labs.
Detto ciò, anche se il protocollo di base cambia raramente, la codebase sottostante viene aggiornata in modo continuo. Si procede a miglioramenti incrementali, raffinamenti del design e un progressivo processo di modularizzazione, fattore chiave per la manutenibilità nel lungo periodo.
Con una quota schiacciante di nodi che eseguono questo software, qualsiasi difetto rilevante potrebbe avere conseguenze sistemiche sulla rete. Tuttavia, nonostante misure di sicurezza avanzate e best practice consolidate, fino ad ora mancava un controllo esterno completo condotto da una società specializzata, capace di affiancare il lavoro continuo dei maintainer.
Qual era l’ambito dell’audit di sicurezza?
L’audit è stato eseguito da Robin David, Nicolas Surbayrole e Mihail Kirov, con il supporto tecnico di Niklas Gögge per Brink e di Antoine Poinsot per Chaincode Labs. Il lavoro, svolto tra maggio e settembre, ha richiesto complessivamente 100 giornate/uomo di attività dedicate.
Considerata la dimensione del codice e il tempo disponibile, è stato necessario delimitare con precisione il perimetro di analisi. Come concordato tra Brink e Quarkslab, l’attenzione si è concentrata sul layer peer-to-peer, considerato la principale superficie di attacco della rete Bitcoin.
Per estensione, sono stati esaminati anche mempool, gestione dei peer, gestione della catena, oltre alla logica di consenso e alle politiche di validazione. Inoltre, questo perimetro ha permesso di coprire gli scenari più sensibili, in cui un comportamento anomalo potrebbe impattare sul consenso o sulla disponibilità del protocollo.
Come è stato strutturato il lavoro di revisione?
Le 100 giornate di audit sono state suddivise equamente in tre fasi. La prima ha previsto una revisione manuale del codice sui componenti selezionati, con particolare attenzione alla gestione dei thread e alla validazione delle transazioni.
Questa attività ha permesso di identificare aree potenzialmente critiche dal punto di vista della concorrenza.
Successivamente, gli auditor hanno condotto test dinamici sfruttando strumenti e framework già integrati nei flussi di lavoro di Bitcoin. Inoltre, sono stati sperimentati approcci avanzati di fuzz testing, introducendo tecniche poco o per nulla utilizzate finora sulla codebase.
Il principale obiettivo dell’audit Bitcoin Core era l’individuazione di possibili punti deboli o vulnerabilità.
Tuttavia, una finalità altrettanto rilevante era il supporto strategico alla comunità, tramite contributi diretti come pull request e nuovi fuzzing harness, e indiretti, attraverso l’esplorazione di metodologie per irrobustire codice e processo di test.
Quali vulnerabilità e raccomandazioni sono emerse?
Nel corso della revisione, Quarkslab ha individuato 2 issue a bassa severità e 13 raccomandazioni di tipo informativo. In base alle classificazioni di sicurezza del progetto, nessuno di questi elementi comporta un impatto diretto sulla sicurezza. Il grosso del lavoro si è quindi concentrato sul potenziamento dell’infrastruttura di test esistente.
Inoltre, gli auditor hanno sfruttato competenze interne sul fuzzing per estendere la copertura del codice. Sono stati sviluppati nuovi harness per testare connessioni di blocchi e riorganizzazioni della catena, così da esercitare percorsi di codice finora poco esplorati e migliorare, allo stesso tempo, annotazioni di thread-safety e leggibilità complessiva.
Quali miglioramenti sono stati introdotti nell’infrastruttura di test?
L’incarico ha prodotto anche miglioramenti concreti all’infrastruttura di testing di Bitcoin Core. Tra questi, la creazione di nuovi corpora di test per aumentare la copertura, una nuova immagine Docker per eseguire campagne di fuzzing in configurazioni di ensemble e un’utility sperimentale di non-regression basata sui tracepoint del client.
Detto ciò, sono state esplorate anche diverse strategie di fuzzing, tra cui approcci strutturati e tecniche differenziali, utili a confrontare il comportamento del software in condizioni variate. Alcuni artefatti dell’audit sono disponibili nel repository di accompagnamento “bitcoin-audit-artifacts”, che documenta script, configurazioni e materiali generati.
Per ulteriori dettagli metodologici è possibile consultare il post dedicato pubblicato da OSTIF su blog OSTIF, che illustra il contesto del progetto e le motivazioni alla base dell’iniziativa.
Quali conclusioni sulla sicurezza complessiva?
La valutazione di sicurezza si è concentrata su un perimetro mirato, in particolare sulla parte P2P e sugli scenari di attacco più impattanti in grado di alterare consenso o disponibilità del protocollo.
Non sono emersi problemi ad alto impatto, ma è stato ottenuto un miglioramento incrementale sugli harness di fuzzing esistenti e la creazione di nuovi per scenari finora non coperti, come la riorganizzazione della catena.
Inoltre, sono stati esplorati approcci sperimentali come ensemble fuzzing e test differenziali. Sebbene questi non abbiano evidenziato bug nel codice attuale, rappresentano un tassello importante per una strategia di test più profonda e per la robustezza complessiva del progetto.
In questo contesto, le tecniche di snapshot fuzzing attualmente sviluppate da Brink appaiono la direzione più promettente per individuare bug complessi e difficili da riprodurre. Ulteriori considerazioni sono state discusse anche in un approfondimento tecnico pubblicato da Brink sul proprio blog di ricerca.
Qual è il significato dell’audit per il futuro di Bitcoin Core?
Nel complesso, gli auditor hanno riconosciuto che architettura, robustezza e maturità del progetto riflettono un lavoro di qualità molto elevata. L’audit di Bitcoin Core, pur non individuando vulnerabilità gravi, rappresenta un passaggio importante verso una maggiore formalizzazione dei processi di verifica esterna.
Quarkslab ha ringraziato gli ingegneri di Brink e Chaincode Labs per il supporto costante durante tutte le fasi della revisione.
Inoltre, le raccomandazioni e gli strumenti sviluppati dovrebbero aiutare la comunità a perfezionare ulteriormente le difese del protocollo rispetto a un passato in cui mancava una valutazione indipendente di pari ampiezza.
Nel tempo, l’integrazione di queste tecniche di test avanzate potrà migliorare ancora di più la resilienza della rete, contribuendo a rafforzare fiducia e trasparenza attorno al principale software di riferimento dell’ecosistema Bitcoin, anche in vista di possibili futuri cicli di audit terze parti Bitcoin Core.

