Bitcoin Core

Difficoltà: base

Argomento: tecnologia


DEFINIZIONE

Bitcoin Core viene considerato l'implementazione che attualmente rappresenta lo standard de facto per Bitcoin.

Inizialmente il client era stato chiamato semplicemente Bitcoin o Bitcoin-QT, ma il nome Bitcoin Core venne adottato nel febbraio 2013.

Bitcoin Core è l'implementazione di riferimento per il codice sorgente di Bitcoin, il che significa che tutte le altre implementazioni guardano a Bitcoin Core per avere indicazioni sul mantenimento del consenso e sull'aggiornamento.

Bitcoin Core fornisce il software per un nodo e un wallet, anche se la maggior parte degli utenti preferisce usare Bitcoin Core per il nodo e utilizzare software di terze parti per il wallet. Esistono alternative al software del nodo di Bitcoin Core, ma Core è l'implementazione dominante.

Chiunque desideri scaricare il software di Bitcoin ed eseguire un nodo può accedere a Bitcoin Core tramite il suo sito web bitcoincore.org o la sua pagina GitHub github.com/bitcoin/bitcoin. È qui che la maggior parte degli utenti si reca per scaricare il codice sorgente.

Inizialmente il sito considerato di riferimento era bitcoin.org, che fu originariamente registrato da Satoshi Nakamoto e Martti Malmi, uno dei primi programmatori Bitcoin, ma ormai è dedicato a raccogliere diversi contenuti relativi a Bitcoin, non sempre è aggiornato con l'ultima versione di Bitcoin Core, e ha dovuto anche rimuovere il whitepaper a causa di minacce legali da parte di Craig Wright. Quando Nakamoto ha lasciato il progetto, ha allargato l'appartenenza del dominio ad altre persone, il sito è stato utilizzato principalmente per il rilascio di nuove versioni del software ora denominato Bitcoin Core. Nel 2013 il sito è stato ridisegnato e non può essere considerato il sito ufficiale di Bitcoin.

Eseguendo il codice di Bitcoin Core, un utente agisce come un nodo della rete che può verificare in modo indipendente sia la validità della creazione dei blocchi sulla rete sia le transazioni inviate dagli utenti della rete.

Bitcoin Core è stato inizialmente creato da Satoshi Nakamoto, ma non è di proprietà di una singola entità, azienda o organizzazione. Viene aggiornato, mantenuto e revisionato da una comunità globale di sviluppatori e sebbene molti aggiornamenti siano stati aggiunti al progetto, l'ultima versione e quella originale di Satoshi sono ancora compatibili.

Bitcoin Core è un progetto open source. Ciò significa che chiunque può copiare il codice sorgente e modificarlo come meglio crede. Se uno sviluppatore vuole migliorare Bitcoin, può pubblicare le modifiche apportate e proporre di includerle nel Bitcoin Core. Molti sviluppatori scelgono di contribuire a Bitcoin Core attraverso il codice, la revisione e la discussione. Tuttavia, non esiste un'entità autorevole che paghi gli sviluppatori per lavorare a Bitcoin Core. Invece, le aziende e i privati finanziano parzialmente questi sviluppatori attraverso donazioni e sovvenzioni.

Il primo software per l’utilizzo di Bitcoin, scritto in linguaggio C++ e rilasciato da Satoshi Nakamoto nel 2009 col nome Bitcoin, includeva sia la funzione di wallet, che quella di nodo e anche quella di miner e può essere considerato la prima versione di Bitcoin Core, anche se il termine Core ancora non veniva utilizzato, con versione 0.1.0 disponibile solo per Windows. Con la successiva, la 0.2.0, è stato introdotto per la prima volta il supporto per i sistemi Linux e successivamente per MacOS.

Dalla versione 0.5.0 del 2011, ha iniziato a chiamarsi Bitcoin-QT, e nella versione 0.9.0 nel 2016 viene reintrodotto il nome Bitcoin Core. La necessità di rinominare il client deriva dal fatto che con Bitcoin si intende oggi la rete intera, composta da numerosi diversi client, scritti in linguaggi di programmazione differenti, i quali tuttavia seguono un protocollo comune che assicura la corretta interazione fra tutti i nodi della rete. Le repository considerate “ufficiali” di Bitcoin Core sono mantenute dal team “Core” sulla piattaforma github.

Sono anche stati resi disponibili nel tempo dei client per implementare un full node, quali

Su btcd ad esempio è implementato la più diffusa versione del nodo Lightning Network: LND.

Chiunque è libero di creare un progetto alternativo, creando un nuovo branch su github a partire dal codice di Bitcoin Core, che se non rispettano il protocollo possono generare dei fork incompatibili.


aggiornato il 2021-10-26