La definizione di un nodo può variare notevolmente in base al contesto in cui viene usato. Per quanto riguarda network di telecomunicazioni o computer, i nodi possono assumere funzioni distinte, agendo come un punto di ridistribuzione o come un communication endpoint. In genere, un nodo consiste in un dispositivo di rete fisico, anche se ci sono casi specifici in cui vengono usati nodi virtuali.
In poche parole, un nodo di rete è un punto in cui un messaggio può essere creato, ricevuto o trasmesso. Di seguito descriveremo i diversi tipi di Nodi Bitcoin: full nodes, super nodes, miner nodes e client SPV.
Nodi Bitcoin
Entrando nel contesto delle blockchain - progettate come sistemi distribuiti - il network di nodi è ciò che consente di usare Bitcoin come una valuta digitale decentralizzata peer-to-peer (P2P) resistente alla censura e senza necessità di intermediari per le transazioni tra utenti (a prescindere dalla distanza fisica).
Quindi, i nodi blockchain devono agire da punto di comunicazione con diverse possibili funzioni. Qualsiasi computer o dispositivo che si connette all’interfaccia Bitcoin può essere considerato un nodo dato che tutti comunicano tra di loro in qualche modo. Inoltre, questi nodi sono in grado di trasmettere informazioni relative alle transazioni e ai blocchi all’interno del network distribuito di computer usando il protocollo peer-to-peer di Bitcoin. Tuttavia, ciascun nodo è definito in base alle sue funzioni particolari, quindi esistono tipologie diverse di nodi Bitcoin.
Full Nodes
I full nodes sono i nodi che effettivamente sostengono e forniscono sicurezza a Bitcoin, e sono indispensabili per il network. Questi nodi vengono chiamati anche full validating nodes in quanto partecipano al processo di verifica delle transazioni e dei blocchi seguendo le regole di consenso del sistema. I full nodes possono trasmettere nuove transazioni e nuovi blocchi alla blockchain.
Di solito, un full node scarica una copia della blockchain di Bitcoin con ogni blocco e transazione, anche se questo non è un requisito per essere considerato un full node (in alternativa può essere usata una copia ridotta della blockchain).
Desktop o laptop con una versione recente di Windows, Mac OS X o Linux.
200GB di spazio libero sul disco.
2GB di memoria (RAM).
Connessione a internet ad alta velocità con upload di almeno 50 kB/s.
Connessione illimitata o con alti limiti per l’upload. I full node possono raggiungere o superare 200 GB/mese per l’upload e 20 GB/mese per il download. Inoltre dovrai scaricare ~200GB nel primo utilizzo del full node.
Il tuo full node dovrebbe essere attivo almeno 6 ore al giorno. Ancora meglio se rimane sempre attivo (24/7)
Oltre ai nodi pubblici, ci sono molti altri nodi nascosti che non sono visibili (non-listening nodes). Questi nodi operano in genere dietro ad un firewall, attraverso protocolli nascosti come Tor, oppure, più semplicemente, non sono configurati per ricevere connessioni.
Listening Nodes (Super Nodes)
In sostanza, un listening node o super node è un full node visibile pubblicamente. Comunica e fornisce informazioni agli altri nodi che decidono di stabilire una connessione. Di conseguenza, un super node è un punto di ridistribuzione che può agire sia come fonte di dati che come communication bridge.
Solitamente, un super node affidabile rimane attivo 24/7 e ha molte connessioni stabilite, trasmettendo la storia della blockchain e i dati sulle transazioni a diversi nodi in tutto il mondo. Per questo motivo, è probabile che un super node richieda più potenza di calcolo e una migliore connessione rispetto a un full node nascosto.
Miner Nodes
Per poter partecipare al processo di mining di Bitcoin nell’attuale scenario competitivo, è necessario investire in programmi e hardware specializzati. Questi programmi (software) non sono direttamente connessi a Bitcoin Core e vengono eseguiti in parallelo per cercare di minare blocchi. Un miner può decidere di lavorare da solo (solo miner) o in gruppi (pool miner).
Mentre i solo miner full nodes fanno uso della propria copia della blockchain, i pool miner lavorano insieme, ciascuno contribuendo con le proprie risorse (hashpower). In una mining pool, solo l’amministratore deve mantenere un full node - il quale può essere indicato come pool miner full node.
Client Lightweight o SPV
Conosciuti anche come Simplified Payment Verification (SPV) clients, i client lightweight utilizzano il network di Bitcoin ma non agiscono da full node. Di conseguenza, i client SPV non contribuiscono alla sicurezza del network in quanto non mantengono una copia della blockchain e non partecipano al processo di verifica e convalida delle transazioni.
In breve, SPV è il metodo attraverso cui un utente può controllare se alcune transazioni sono state incluse o meno in un blocco, senza dover scaricare tutti i dati del blocco. Quindi, i client SPV si basano sulle informazioni fornite da altri full node (super nodes). I client lightweight agiscono da communication endpoint e sono usati da diversi wallet per criptovalute.
Client vs Mining Nodes
E’ importante sottolineare che mantenere un full node non è la stessa cosa di mantenere un full mining node. Mentre i miner devono investire in hardware e software costosi, chiunque può mantenere un full validating node. Inoltre, prima di provare a minare un blocco, un miner deve raccogliere le transazioni in attesa che sono state in precedenza accettate come valide dai full node. In seguito, il miner crea un blocco candidato (con un gruppo di transazioni) e cerca di minare il blocco. Se il miner riesce a trovare una soluzione valida per il blocco, lo trasmette al resto del network e i full node ne verificano la validità. Quindi, le regole di consenso sono determinate e garantite dal network distribuito di validating nodes, non dai miner.
Conclusione
I nodi Bitcoin comunicano tra di loro attraverso il protocollo di rete P2P Bitcoin e, facendolo, garantiscono l’integrità del sistema. Un nodo che agisce in modo disonesto o cerca di propagare informazioni errate viene riconosciuto rapidamente dai nodi onesti e scollegato dal network.
Nonostante il fatto che mantenere un full validating node non offra ricompense economiche, è fortemente raccomandato in quanto fornisce fiducia, sicurezza e privacy agli utenti. I full node garantiscono che le regole vengano seguite. Proteggono la blockchain da attacchi e frodi (come il double-spending). Inoltre, un full node non ha bisogno di fidarsi di nessun altro e permette all’utente di essere in pieno controllo dei propri soldi.