Fermata #14 - Un nodo tira l'altro

La Germania è il il paese con il maggior numero di full-node raggiungibili dopo gli Stati Uniti. Ma cosa sono i nodi e perché sono importanti? Governance: chi decide in Bitcoin?

Sul piano economico abbiamo sempre avuto molto da invidiare alla Germania - Pil pro-capite, reddito medio, qualità della vita - e la storia non cambia quando si parla di Bitcoin. Berlino ospita il maggior numero di nodi raggiungibili al mondo (1729) dopo gli Stati Uniti (1766): più del triplo rispetto a quelli attivi in Francia, terza classificata (560). In questa speciale classifica l’Italia si posiziona diciannovesima con 64 nodi, sotto alla Corea del Sud (65) e sopra alla Spagna (56).

Cos’è un nodo?

Il network globale

Quando si definisce Bitcoin un “protocollo decentralizzato” si intende che non è controllato da una singola entità ma da tutti coloro che fanno parte della rete eseguendo un nodo. Quelli “raggiungibili” sono quasi 15.000, ma oltre a questi ce ne sono molti altri “invisibili” che operano dietro a protocolli nascosti come Tor o tramite Vpn. Complessivamente si stima che nel mondo siano presenti quasi 50.000 nodi che governano equamente la tecnologia. Di fatto, per poter spegnere la creatura di Satoshi Nakamoto bisognerebbe eliminare tutti i 50.000 nodi.

Tipi di nodi

Tra i commentatori è diffusa l’idea che i miner, cioè coloro che svolgono l’attività di mining spendendo risorse energetiche e scrivendo i blocchi della blockchain, godano di più potere decisionale degli altri nodi all’interno del network: sbagliato. Tutti i nodi hanno la stessa importanza - eseguono il routing, convalidano e propagano al resto della rete le transazioni e i blocchi della blockchain - anche se ne esistono più tipi. I principali sono i seguenti:

  • Full-node: sono i nodi più completi e mantengono una copia dell’intera blockchain. Questo comporta la capacità di verificare autonomamente ogni transazione senza bisogno di riferimenti esterni e senza doversi fidare di nessuno. I full-node permettono anche di fare mining (se si possiede la strumentazione adatta, le macchine ASIC) e possono essere utilizzati come wallet per inviare e ricevere pagamenti.

  • SPV: Simplified payment verification (verifica semplificata del pagamento), noti anche come nodi lightweight. Mantengono un riassunto della blockchain (per i lettori più tecnici: l’header dei blocchi) e non consentono l’attività di mining.

  • Full Blockchain Node: svolgono solamente la funzioni di routing e di verifica delle transazioni: hanno copia dell’intera blockchain, ma non possono essere utilizzati come wallet e non permettono il mining.

  • Miner: consentono di fare mining - sempre se si dispone dell’hardware necessario - ma non supportano i wallet.

L’essenza di Bitcoin

A differenza di altre reti come quella di Ethereum dove per costruire un nodo completo servono risorse non trascurabili, configurare un full-node Bitcoin è davvero alla portata di tutti. Ciò che serve è una connessione Internet illimitata (velocità di upload di almeno d 50 kB/s), 500 GB di memoria (meglio 1 TB) e 2 GB di RAM. Il modo più semplice per farlo è scaricare il software client più comune, ovvero Bitcoin Core, su un computer Mac, Windows o Linux aggiornato, ma per poterlo configurare in modo più professionale consiglio questa guida in italiano.

Perché farsi un full-node? E’ possibile comprare, ricevere e inviare bitcoin anche senza avere un nodo in casa: il network sopravvive comunque.

Tuttavia se si comprendono le ragioni che hanno portato alla nascita di Bitcoin allora si arriva anche a capire quanto sia importante avere il proprio full-node. Bitcoin è nato per eliminare la fiducia nell’intermediario e solo tramite il proprio nodo completo è davvero possibile raggiungere questo traguardo. Quando si invia una transazione con un wallet di un servizio terzo si ripone un certo grado di fiducia nei confronti di chi quel servizio lo fornisce, che propaga la transazione tramite il proprio full-node1. Al contrario, inviare e ricevere pagamenti tramite un wallet collegato al vostro nodo casalingo2 dà la garanzia di un’operazione completamente trasparente, sicura e che non implica il doversi fidare di qualcuno.

Se non avete la necessità di fare molte transazioni, si può configurare un full-node anche per amore nei confronti della tecnologia. Più nodi sparsi per il mondo significano più distribuzione del network e, di conseguenza, minor vulnerabilità. E’ più complicato spegnere 100.000 nodi rispetto a 50.000, no?

Governance

Se Bitcoin è decentralizzato, chi è che decide cosa fare? Di fatto ognuno decide autonomamente cosa sia meglio per sé: essendo il codice di Bitcoin Core pubblico, tutti possono stabilire quale sua versione utilizzare e se configurarlo per accettare o rifiutare eventuali aggiornamenti.

Il percorso di un aggiornamento

Il processo per arrivare a un update del network è lungo e tortuoso proprio perché, non essendoci un’autorità centrale, tutti (o quasi) devono convergere sulla miglior soluzione. Inoltre Bitcoin è considerato un unicum nella storia umana del trasferimento di valore: è un bene prezioso e non è pensabile apportarvi modifiche a cuor leggero. Ogni cosa deve essere sicura, pluri-testata, approvata. Per dare un’idea, l’ultimo grande aggiornamento, Taproot (spiegato nella fermata #10 da Federico Tenga), è stato implementato a fine 2021 ma se ne discuteva nella community già da poco dopo l’introduzione di Bitcoin nel 2009.

Per farsi un’idea della strada che porta da una proposta alla sua implementazione è molto efficace la spiegazione di Giacomo Zucco in una recente intervista fatta da Marco Montemagno (dal minuto 28:30 al minuto 32:00).

Il percorso è riassunto di seguito con i link alle varie aree citate:

  • Quando nasce una proposta credibile, la discussione parte generalmente dai forum IRC in cui parlano gli sviluppatori.

  • L’idea emersa dai forum viene inviata alla mailing list Bitcoin ed elaborata.

  • Il passo successivo è la stesura formale della proposta tramite una modalità standardizzata chiamata BIP: Bitcoin Improvement Proposal.

  • A questo punto su GitHub, dove è pubblicato anche il codice sorgente di Bitcoin Core, gli sviluppatori lavorano su una pull request3 e scrivono il codice per sviluppare concretamente l’idea.

  • Il codice viene applicato alla Testnet di Bitcoin, ovvero una rete di prova in cui le nuove funzioni vengono testate: si tratta di una sorta di simulazione realistica che mostra come si comporterebbe la nuova tecnologia sulla rete principale.

  • Una volta approvato, pronto e testato, il codice viene implementato in Bitcoin Core e ne viene pubblicato un aggiornamento.

  • Successivamente i miner segnalano l’approvazione della modifica e quando si raggiunge una determinata soglia l’aggiornamento viene confermato.

Come anticipato, ognuno può decidere se accettare l’implementazione oppure continuare a utilizzare Bitcoin come prima. Non c’è il rischio di perdita di fondi. Per questo motivo le novità impiegano molto tempo ad essere adottate dalla rete: Taproot, attivato a novembre, è supportato oggi solamente dal 62,8% dei nodi.

Reply

or to participate.