Cos’è Bitcoin Core e quale ruolo ha nella rete Bitcoin?

Cos’è Bitcoin Core e quale ruolo ha nella rete Bitcoin?

Cos’è Bitcoin Core?

Bitcoin Core è un software open-source con cui ti connetti da solo alla rete Bitcoin e controlli in modo completo blocchi e transazioni. Se fai girare Bitcoin Core sul tuo computer, funziona come un full node che verifica in autonomia se transazioni e blocchi rispettano le regole della rete Bitcoin.

In parole semplici, Bitcoin Core è un tassello importante per chi vuole verificare Bitcoin in prima persona. Il software riceve transazioni e blocchi da altri nodi, li controlla e può inoltrare di nuovo le informazioni valide. In questo modo, tanti nodi separati aiutano insieme a distribuire i dati di Bitcoin in modo decentralizzato.

Bitcoin Core è il client Bitcoin originale, cioè il software con cui ti connetti alla rete Bitcoin e puoi elaborare e controllare transazioni e blocchi. Il codice sorgente è liberamente disponibile sotto licenza MIT, il che permette agli sviluppatori di vedere, usare e contribuire al software.

Il software si divide in grandi linee in due parti che puoi considerare separatamente:

  • Il nodo: scarica e valida i dati sulla blockchain di Bitcoin.
  • Il crypto wallet integrato: ti permette di gestire gli indirizzi e inviare bitcoin.

Puoi usare Bitcoin Core come programma con finestra grafica, bitcoin-qt, oppure senza finestra come processo in background, bitcoind. Questa seconda opzione è soprattutto utile per chi vuole gestire il proprio nodo tramite la command line o altri software.

Importante da sapere: Bitcoin Core non è Bitcoin stesso e non è nemmeno un’organizzazione centrale che controlla Bitcoin. È una delle implementazioni del protocollo Bitcoin. I nodi raggiungono un accordo perché applicano in modo indipendente le stesse regole di consenso, cioè le regole fisse con cui stabiliscono quali blocchi sono validi.


In breve

  • Bitcoin Core è un software open-source per la rete Bitcoin.
  • Un’installazione di Bitcoin Core in esecuzione è normalmente un full node.
  • Un full node controlla da solo blocchi e transazioni.
  • Bitcoin Core può ricevere dati validi e inoltrarli ad altri nodi.
  • Il software include opzionalmente un’interfaccia grafica e un crypto wallet integrato.

Come funziona Bitcoin Core?

Bitcoin Core funziona collegandosi ad altri nodi Bitcoin e scambiando con loro transazioni e blocchi. Prima di poter valutare i dati recenti, il software deve prima scaricare e validare l’intera storia a partire dal blocco genesis, il primissimo blocco di Bitcoin.

Questa prima grande sincronizzazione si chiama initial block download. Bitcoin Core costruisce così, passo dopo passo, la propria visione della chain valida di Bitcoin, fino all’ultimo blocco che il nodo accetta come valido.

Dopo di che, il nodo continua ad ascoltare nuove transazioni e nuovi blocchi. Quando arriva qualcosa, Bitcoin Core lo controlla prima. Solo se i dati rispettano le regole, il nodo può normalmente inoltrarli ad altri peer. I peer sono semplicemente altri computer a cui il tuo nodo è collegato.

Bitcoin Core accetta i blocchi come validi solo quando superano i propri controlli. Il nodo poi decide, secondo le regole di consenso, quale chain valida seguire. Se molti nodi seguono gli stessi blocchi validi secondo le stesse regole, restano allineati tra loro. Così nasce il consenso senza una parte centrale che decide cosa è vero.

C’è però una differenza tra validità e politica locale. Un nodo può, per esempio, non voler inoltrare una transazione perché non rientra nella propria politica della mempool. La mempool è l’area di attesa temporanea per le transazioni ancora non confermate. Una transazione del genere non è quindi automaticamente invalida secondo le regole di consenso.

Come valida Bitcoin Core le transazioni?

Bitcoin Core valida una transazione controllando se i bitcoin che vuoi spendere esistono davvero, non sono già stati spesi e possono essere usati da te. Bitcoin non funziona con un semplice saldo che viene aggiornato da qualche parte. Un pagamento usa importi ricevuti in precedenza, che si chiamano output.

Un output che non è ancora stato speso si chiama UTXO, abbreviazione di unspent transaction output. Puoi vedere un UTXO come un pezzo separato di bitcoin che è ancora disponibile per essere speso.

In un nuovo pagamento, Bitcoin Core controlla tra le altre cose questi punti:

  • Gli UTXO usati esistono davvero.
  • Quegli UTXO non sono già stati spesi in precedenza.
  • I dati di sblocco rispettano le condizioni dell’output precedente.
  • Il valore di tutti gli output non è superiore al valore di tutti gli input.

Per molte transazioni comuni, una firma crittografica dimostra che il mittente ha la private key corretta. Bitcoin Script controlla poi se quella firma e la relativa chiave pubblica sono corrette. Bitcoin Script è il linguaggio di scripting limitato che esegue le condizioni delle transazioni Bitcoin.

Esempio: Immagina di aver ricevuto in passato 0,5 BTC e di non aver ancora usato quell’output. Allora quei 0,5 BTC possono servire come input per una nuova transazione. Se provi a spendere di nuovo lo stesso output più tardi, Bitcoin Core lo rifiuta come “double-spending”.

In una transazione normale non può nemmeno nascere valore dal nulla. Se gli input insieme valgono 0,5 BTC e invii 0,49 BTC a un altro indirizzo, la differenza di 0,01 BTC può essere la commissione della transazione. La speciale coinbase transaction in un blocco funziona in modo diverso; serve per la block subsidy e le commissioni.

Come controlla Bitcoin Core i blocchi?

Bitcoin Core controlla un blocco verificando sia i dati nell’header del blocco sia tutte le transazioni contenute nel blocco. Solo i blocchi che rispettano le regole di consenso vengono conservati dal nodo come parte della chain valida di Bitcoin.

Un blocco è composto in grandi linee da transazioni e da un block header. In quell’header ci sono tra le altre cose un riferimento all’header del blocco precedente e una merkle root. La merkle root è un riassunto crittografico di tutte le transazioni nel blocco.

Il riferimento al blocco precedente rende difficile modificare la storia. Se cambi una vecchia transazione, cambia il riassunto di quel blocco. Di conseguenza dovresti modificare di nuovo anche tutti i blocchi successivi.

Bitcoin Core controlla anche ogni transazione all’interno del blocco. Così il nodo verifica di nuovo se un output non è già stato speso in precedenza. Ogni blocco contiene inoltre una coinbase transaction. Con questa vengono assegnati al miner la block subsidy e le commissioni di transazione. I bitcoin provenienti da una coinbase transaction possono essere spesi solo dopo che la transazione ha ricevuto 100 conferme.

A volte esistono per breve tempo due versioni valide della chain Bitcoin una accanto all’altra. In quel caso il modello full node segue la versione con la maggiore quantità cumulativa di proof-of-work. Non è qualcosa che decidono gli sviluppatori di Bitcoin Core o i miner per tutti: ogni full node esegue i controlli da solo e sceglie secondo le stesse regole.

Chi ha sviluppato Bitcoin Core?

Il primo software Bitcoin è stato sviluppato e pubblicato sotto lo pseudonimo Satoshi Nakamoto. Satoshi è quindi uno pseudonimo, nessuno sa chi sia questo misterioso sviluppatore.

Oggi Bitcoin Core viene sviluppato come progetto open-source. Le persone possono contribuire con proposte di modifica, test e review. Il nuovo codice non viene aggiunto così, senza controlli: altri contributori valutano la modifica e servono dei test.

Non esiste un gruppo fisso e privilegiato che controlla semplicemente Bitcoin Core. Esistono però i repository maintainer. Hanno compiti pratici, come unire le modifiche proposte, coordinare le release e moderare le discussioni. Questo non li rende i proprietari centrali di Bitcoin.

Per l’uso normale si sceglie una release stabile. La versione principale su cui lavorano gli sviluppatori viene testata, ma non è automaticamente una versione stabile per l’uso quotidiano.

Qual è la differenza tra Bitcoin Core e Bitcoin?

Bitcoin Core è un software, mentre Bitcoin può riferirsi alla rete, al protocollo o a BTC come cryptocurrency. Questa differenza è importante, perché i nomi vengono spesso usati in modo intercambiabile.

Bitcoin è per esempio la rete peer-to-peer in cui i partecipanti scambiano transazioni. BTC è l’unità di bitcoin con cui invii valore. Bitcoin Core è invece un programma che installi per partecipare alla rete secondo le sue regole.

Puoi paragonarlo a un browser e a internet. Un browser ti dà accesso a internet, ma non è internet stesso. Allo stesso modo, Bitcoin Core ti permette di partecipare a Bitcoin, senza che il software coincida con Bitcoin nel suo insieme.

Anche una modifica in Bitcoin Core non cambia automaticamente le regole di Bitcoin per tutti. Per cambiare le regole di consenso, anche gli altri partecipanti devono scegliere di usare regole o software compatibili.

Cos’è il wallet di Bitcoin Core?

Il wallet di Bitcoin Core è il crypto wallet integrato in Bitcoin Core. Con questo puoi ricevere, gestire e inviare bitcoin. Il wallet lavora insieme a Bitcoin Core, ma ha una funzione diversa dal nodo stesso. Il nodo controlla transazioni e blocchi, mentre il wallet viene usato soprattutto per gestire i tuoi bitcoin e le relative chiavi.

Il wallet di Bitcoin Core è un self-custody wallet. Questo significa che sei tu responsabile delle tue private key, dei tuoi backup e della sicurezza del tuo dispositivo. Inoltre puoi proteggere il wallet con una passphrase.

Per questo è importante fare regolarmente un backup sicuro del wallet e non condividere mai con altri le tue private key, il backup e la passphrase. Chi ottiene accesso a questi dati può anche ottenere accesso ai tuoi bitcoin.

Come puoi usare Bitcoin Core?

Puoi usare Bitcoin Core come programma desktop, come nodo che gira in silenzio in background, oppure tramite strumenti command-line e RPC. RPC è un modo con cui altri programmi possono inviare comandi al tuo nodo.

Per molte persone la versione grafica è la più semplice. Con quella puoi seguire la sincronizzazione, gestire un wallet e inviare transazioni. Gli utenti più tecnici spesso eseguono bitcoind senza interfaccia grafica, per esempio su un computer proprio che serve soprattutto come nodo.

Il tuo nodo può funzionare solo per te, ma puoi anche consentire connessioni in ingresso. Per il tuo wallet e la tua validazione, le connessioni in uscita bastano. Le connessioni in ingresso però aiutano altri nodi e client leggeri, così la rete peer-to-peer resta più disponibile.

Vuoi fare pratica prima senza usare bitcoin veri? Allora puoi usare una rete di test separata come signet. Su Bitcoin mainnet, gli errori in una transazione possono portare a una perdita irreversibile.

Se usi RPC, fai ancora più attenzione all’accesso esterno. Credenziali RPC valide possono dare a qualcuno molto controllo sul tuo nodo Bitcoin Core e, a seconda della configurazione, anche su un wallet caricato. Per questo non aprire l’accesso RPC ad altri senza bisogno.

Come installi Bitcoin Core?

Puoi scaricare Bitcoin Core dal sito ufficiale di Bitcoin Core. Scegli lì la versione adatta al tuo sistema operativo, come Windows, macOS o Linux.

Dopo il download installi il software e apri Bitcoin Core. Al primo avvio puoi scegliere dove salvare i dati della blockchain. Tieni presente che Bitcoin Core può richiedere molto spazio di archiviazione, perché il software scarica e controlla una copia della blockchain di Bitcoin.

Poi Bitcoin Core inizia a sincronizzarsi con la rete Bitcoin. La prima volta può richiedere un po’ di tempo. Una volta completata la sincronizzazione, il tuo nodo può controllare in autonomia transazioni e blocchi.

Vuoi installare Bitcoin Core da solo e cerchi i passaggi tecnici esatti? Allora consulta le guide ufficiali di installazione di Bitcoin Core per il tuo sistema operativo.

Come si sincronizza Bitcoin Core con la blockchain?

Bitcoin Core si sincronizza scaricando i blocchi dall’inizio e validandoli uno per uno fino all’ultimo blocco valido. Questo processo si chiama initial block download e avviene al primo avvio, oppure quando il tuo nodo è molto indietro.

Durante questo processo il tuo computer usa capacità di rete, spazio di archiviazione e potenza di calcolo. La durata varia da alcune ore a diversi giorni o più, a seconda dell’hardware e della connessione internet.

Il tuo wallet può sembrare ancora incompleto durante la sincronizzazione. Le nuove transazioni o il saldo diventano completamente visibili solo quando il tuo nodo è aggiornato fino al blocco in cui si trova quell’attività.

Se vuoi usare meno spazio di archiviazione, puoi attivare il pruning. Con il pruning, Bitcoin Core elimina i vecchi dati grezzi dei blocchi e i dati undo dopo che il nodo li ha già validati da solo. Il nodo resta comunque un full node, perché continua a controllare i blocchi in autonomia.

Quali sono i vantaggi e i limiti di Bitcoin Core?

Il vantaggio più grande di Bitcoin Core è che puoi verificare Bitcoin da solo. Per la validità di blocchi e transazioni non devi affidarti completamente a un provider di wallet esterno, a un server o a una società crypto.

Un tuo full node aiuta anche la rete. Il tuo nodo riceve dati validi, li controlla e può inoltrarli. Se troppo poche persone lo fanno, i client leggeri diventano più dipendenti da servizi centralizzati.

Bitcoin Core può anche essere migliore per la tua privacy rispetto a un wallet che deve consultare un nodo esterno per ogni saldo e ogni transazione. Questo però non rende Bitcoin automaticamente anonimo: le transazioni restano comunque su una blockchain pubblica.

Il rovescio della medaglia è che Bitcoin Core richiede più dal tuo computer e da te come utente rispetto a un semplice crypto wallet. Per esempio, serve molto spazio di archiviazione, la prima sincronizzazione può durare a lungo e sei tu responsabile degli aggiornamenti, dei backup e della sicurezza del tuo dispositivo.

Puoi limitare l’uso di spazio di archiviazione e internet, ma questo può andare a scapito di alcune funzioni. Inoltre, self-custody significa che sei tu responsabile dei tuoi bitcoin. Un tuo nodo non ti protegge per esempio da malware, dalla perdita delle private key o da impostazioni sbagliate.

Conclusione

Bitcoin Core è un modo per partecipare a Bitcoin in prima persona invece di affidarti solo all’infrastruttura degli altri. Il software scarica e controlla blocchi e transazioni secondo le regole di Bitcoin, e può inoltrare dati validi ad altri nodi.

Questo rende Bitcoin Core interessante se vuoi più autonomia, controllo e forse più privacy. Dall’altra parte, richiede tempo, spazio di archiviazione e attenzione tecnica. Se usi anche il wallet integrato, la sicurezza dei tuoi bitcoin dipende completamente da te. Per chi vuole assumersi questa responsabilità, un proprio full node è un modo pratico per verificare Bitcoin da solo.

Chi è Finst

Finst è una piattaforma di criptovalute leader nei Paesi Bassi che offre commissioni di trading ultra-basse, sicurezza di livello istituzionale e una gamma completa di servizi crypto come trading, custodia, staking e rampe fiat di ingresso e uscita. Fondata dall’ex team core di DEGIRO, Finst è autorizzata come fornitore di servizi di criptoasset dall’Autorità olandese per i mercati finanziari (AFM) e serve clienti retail e istituzionali in 30 paesi europei.

La piattaforma crypto per tutti gli investitori

Che tu sia un trader attivo o un investitore di lungo periodo, Finst ti permette di far crescere il tuo patrimonio in crypto con fiducia e tranquillità.

Registrati