Node: Cosa Fanno i Nodi Blockchain e Quali Tipi Esistono

Node: Cosa Fanno i Nodi Blockchain e Quali Tipi Esistono

Un nodo, chiamato anche nodo Bitcoin o nodo blockchain, è un computer che si connette alla rete Bitcoin e scambia transazioni e blocchi con altri nodi, i suoi peer. La rete è peer-to-peer (P2P), il che significa che i computer si collegano direttamente tra loro e si scambiano dati senza intermediari. Solo i nodi completi (full node) verificano ogni blocco in base alle regole di consenso.

Cosa Fa un Nodo Bitcoin sulla Rete Peer-to-Peer?

Un nodo Bitcoin esegue il software Bitcoin su un computer e mantiene quel computer connesso ai suoi peer. Bitcoin è una criptovaluta, e le sue transazioni e i suoi blocchi viaggiano attraverso queste connessioni tra nodi.

Un nodo Bitcoin trasmette ciò che riceve. Una transazione è un record che sposta BTC da un proprietario a un altro, e un blocco è un insieme di transazioni che viene aggiunto alla blockchain tutto insieme. Quando un nodo riceve una nuova transazione o un nuovo blocco, può trasmettere l’elemento ai propri peer.

Un nodo Bitcoin si connette ad alcuni peer, non a ogni altro nodo della rete. Le transazioni e i blocchi si diffondono di peer in peer, e due nodi possono avere informazioni diverse nello stesso momento.

La blockchain è il registro condiviso di tutti i blocchi, in ordine. Ogni blocco ha un’intestazione (header), ovvero i dati di riepilogo posti all’inizio del blocco. L’header contiene l’hash dell’header del blocco precedente. Un hash è un’impronta digitale di lunghezza fissa calcolata a partire dai dati. La catena è progettata in modo che modificare una transazione cambi l’hash del suo blocco, e l’hash modificato non corrisponda più a quello memorizzato nel blocco successivo.

Quali Tipi di Nodi Esistono e Cosa Verifica Ciascuno?

I nodi differiscono per quanto verificano e quanti dati conservano.

Cos’è un Full Node?

Un full node è un nodo che scarica ogni blocco, verifica ogni blocco e ogni transazione in esso contenuta in base alle regole di consenso, e trasmette quelli validi. Le regole di consenso sono le regole che ogni full node applica per decidere cosa è valido, in modo che i full node rimangano in accordo tra loro.

Un full node mantiene una propria catena, composta solo dai blocchi che ha validato, e non si fida della parola di nessun altro nodo riguardo alla validità di un blocco. Un full node che conserva l’intera blockchain è chiamato anche nodo archivio (archival node).

Cos’è un Pruned Node?

Un pruned node è un full node che elimina i vecchi dati dei blocchi dopo averli validati. Verifica ogni blocco e ogni transazione proprio come un full node. Conserva i blocchi recenti e l’insieme degli output di transazione non spesi (UTXO set), perché ne ha bisogno per verificare le nuove transazioni. Un output di transazione non speso è un importo in BTC registrato sulla blockchain che non è ancora stato speso.

Un pruned node richiede meno spazio su disco e fornisce agli altri nodi solo i blocchi recenti, poiché non conserva più quelli più vecchi.

Cos’è un Light Client (Light Node o Client SPV)?

Un light client è un software che utilizza la rete Bitcoin senza scaricare e verificare ogni blocco e ogni transazione. Viene anche chiamato client SPV, dall’inglese simplified payment verification (verifica semplificata dei pagamenti), thin client, client leggero, o light node. La documentazione per sviluppatori di Bitcoin lo distingue da un nodo, perché un light client non trasmette blocchi e transazioni e non li verifica tutti.

Un light client scarica gli header dei blocchi, che sono di 80 byte ciascuno, e i dati necessari per verificare un pagamento. Per verificare un pagamento, un light client chiede a un full node un Merkle branch, una breve catena di hash che collega una transazione al blocco che la contiene. Con il branch e gli header, un light client può verificare che una transazione sia inclusa in un blocco.

Un light client non può verificare che la transazione rispetti ogni regola, quindi si affida ai full node per le prove e alla catena con più lavoro, ovvero la catena che richiederebbe il massimo sforzo per essere ricreata. Il metodo funziona finché i partecipanti onesti controllano la maggior parte della potenza di calcolo della rete, e un attaccante che sopraffacesse la rete potrebbe ingannarlo.

Tipo di nodo

Cosa verifica

Cosa conserva

Da cosa dipende

Full node

Ogni blocco e ogni transazione, in base alle regole di consenso

La propria catena, composta solo dai blocchi che ha validato

Non dipende dalla parola di nessun altro nodo sulla validità di un blocco

Pruned node

Ogni blocco e ogni transazione, come un full node

I blocchi recenti e l’UTXO set; i vecchi dati dei blocchi vengono eliminati

Non dipende dalla parola di nessun altro nodo sulla validità di un blocco

Light client (client SPV)

Che una transazione sia inclusa in un blocco, ma non ogni regola

Gli header dei blocchi e i dati necessari per verificare un pagamento

I full node per le prove, e la catena con più lavoro

Cosa Fa un Full Node con una Transazione e con un Blocco?

Un full node riceve transazioni e blocchi dai suoi peer e tipicamente fa quanto segue con ciascuno.

Quando arriva una transazione, un full node segue questi passaggi:

  1. Gli input vengono verificati. Ogni input deve fare riferimento a un output ancora non speso, e i suoi dati, tipicamente una firma digitale, devono soddisfare la condizione di spesa dell’output che utilizza.
  2. Gli importi vengono verificati, perché gli output non devono superare la somma degli input.
  3. Il nodo può conservare una transazione valida nella sua mempool, l’area di attesa in cui un nodo tiene le transazioni non ancora incluse in un blocco, e trasmetterla ai propri peer. Se lo fa dipende dalla politica di relay del nodo, un insieme di regole locali aggiuntive. Una transazione che non supera un controllo viene scartata.

Un esempio pratico con numeri inventati mostra il controllo degli importi. In esso, due transazioni, X e Y, spendono ciascuna un input di 0,5 BTC. La transazione X invia 0,3 BTC al destinatario e 0,1999 BTC indietro al mittente come resto, ovvero la parte dell’input che il mittente non spende per il pagamento. La transazione Y invia 0,3 BTC al destinatario e 0,2001 BTC indietro come resto.

Transazione (inventata, non reale)

Totale input (BTC)

Totale output (BTC)

Risultato di questo singolo controllo

X

0,5

0,4999

Gli output non superano gli input. La differenza di 0,0001 BTC è la commissione di transazione. Il nodo procede con gli altri controlli.

Y

0,5

0,5001

Gli output superano gli input di 0,0001 BTC. Il nodo rifiuta la transazione.

Gli importi in questo esempio sono inventati e non costituiscono una raccomandazione sulla commissione, e un vero full node verifica anche che ogni input sia ancora non speso e che ogni firma sia valida, cosa che l’esempio non mostra.

Un blocco che arriva da un peer passa attraverso questi controlli, tra gli altri:

  1. Viene verificata la proof of work. L’hash dell’header del blocco deve essere pari o inferiore al target, un numero stabilito dalla rete, e la proof of work è lo sforzo computazionale che i miner impiegano per trovare un hash di questo tipo.
  2. Viene verificata la struttura del blocco. La Merkle root, un hash nell’header calcolato a partire dalle transazioni del blocco, deve corrispondere a quelle transazioni, e il peso del blocco, una misura delle sue dimensioni, deve rimanere entro il limite stabilito dalle regole di consenso.
  3. Le transazioni vengono verificate. Ogni transazione, eccetto la prima, deve superare i controlli sulle transazioni descritti sopra. La prima transazione, chiamata transazione coinbase, non ha input da verificare, e può reclamare non più del block subsidy, i nuovi BTC creati come ricompensa del blocco, più le commissioni di transazione presenti in quel blocco.
  4. Un blocco valido viene aggiunto alla catena del nodo. Il nodo tipicamente rimuove dalla propria mempool le transazioni contenute nel blocco e annuncia il blocco ai propri peer.

Un full node rifiuta un blocco che viola una di queste regole, come una transazione coinbase che reclama più del subsidy sommato alle commissioni.

Il block subsidy è di 3,125 BTC per blocco a partire da ottobre 2026, in vigore dall’aprile 2024, e viene dimezzato a ogni halving.

Perché È Importante che Ogni Full Node Verifichi le Regole Autonomamente?

Un full node applica le regole di consenso a ogni blocco in autonomia. Non si affida a un peer, a un miner o a un’azienda per sapere se un blocco è valido.

Un full node applica una modifica alle regole di consenso solo se il suo operatore esegue un software che contiene quella modifica. Dopo un soft fork, un tipo di modifica delle regole, un nodo che non ha effettuato l’aggiornamento continua ad accettare gli stessi blocchi dei nodi aggiornati, purché la maggior parte dell’hashrate, la potenza di calcolo combinata che i miner aggiungono alla rete, applichi la nuova regola, ma non verifica la nuova regola da sé. Dopo un hard fork, un altro tipo, un nodo che non ha effettuato l’aggiornamento può non essere in grado di validare i blocchi creati secondo le nuove regole.

I full node sono progettati per seguire la catena con più lavoro. Una parte che detenga la maggior parte dell’hashrate potrebbe revisionare i blocchi recenti. Le regole che i full node applicano restano comunque valide in tal caso, quindi un blocco che crea più BTC di quanto le regole consentano, o che spende BTC senza una firma valida, è progettato per essere rifiutato dai nodi che effettuano i controlli.

In Cosa un Nodo Differisce da un Miner?

Un miner e un nodo svolgono compiti diversi. Il blocco di un miner viene assemblato a partire dalle transazioni in attesa, dal miner stesso o dal pool per cui lavora, e il miner impiega sforzo computazionale nella proof of work. Un nodo verifica il blocco completato e le transazioni in esso contenute, e il software di un nodo non effettua mining a meno che l’operatore non esegua anche un software di mining.

Un singolo operatore può sia effettuare mining sia gestire un nodo. Un solo miner, che effettua mining da solo e non tramite un pool, utilizza tipicamente il software di un full node per ottenere le transazioni in attesa e per trasmettere il blocco che trova.

Cosa Comporta la Gestione di un Nodo?

Gestire un full node significa eseguire un software per nodi, come Bitcoin Core, che si connette ai peer, scarica la blockchain, la verifica, e continua a verificare ogni nuovo blocco e ogni nuova transazione man mano che arrivano.

Un nuovo full node deve prima scaricare e verificare ogni blocco a partire dal primo blocco, chiamato genesis block, fino all’ultimo. Questo recupero iniziale viene chiamato initial block download, e il tempo necessario dipende dal computer e dalla connessione.

Un full node necessita di spazio su disco per conservare i dati dei blocchi e di banda per scaricarli e trasmetterli. La documentazione specifica del software elenca i requisiti hardware, i passaggi di configurazione e i numeri di porta, e questi cambiano man mano che la blockchain cresce e il software si evolve.

Inviare e ricevere BTC non richiede la gestione di un nodo, perché un wallet può funzionare come light client e affidarsi ai nodi di altre persone.

Cosa Non Fa un Nodo?

Un nodo Bitcoin non conserva i BTC di altre persone. La blockchain registra quali output esistono, mentre le chiavi private che possono spenderli sono conservate nei wallet. Una chiave privata è un numero segreto che consente al suo proprietario di autorizzare una spesa.

Un nodo che accetta o trasmette una transazione non la conferma. Una transazione è confermata una volta che un blocco la include, e le transazioni Bitcoin sono progettate per diventare sempre più difficili da invertire con ogni blocco aggiunto successivamente. Fino ad allora, una transazione non confermata può ancora essere sostituita o scartata.

In Bitcoin, il block subsidy e le commissioni di transazione vanno al miner il cui blocco viene aggiunto alla catena, e la prima transazione di quel blocco li raccoglie.

27 novembre 2025

Notizie GoMining

Potresti essere interessato a: