Vai al contenuto
buybitcoinsmart

Glossario / Nodi e software

Client leggero

Noto anche come Lightweight client, Thin client, SPV node.

Che cos'è un client leggero?
Un client leggero è un wallet che non conserva alcuna copia della blockchain e chiede ai server di altri cosa è successo ai tuoi indirizzi.

In pratica ogni app bitcoin su uno smartphone è di questo tipo. La catena completa ha superato 759 GB ad agosto 2026, una mole che nessun telefono andrà a conservare, quindi il wallet tiene al massimo qualche megabyte di intestazioni dei blocchi e delega il resto. La comodità è reale e altrettanto il conto: qualcun altro viene a conoscenza dei tuoi indirizzi e tu non puoi confermare in modo indipendente ciò che ti viene detto.

Come funziona

I client leggeri si dividono in tre famiglie e rivelano quantità diverse di informazioni su di te.

La più antica chiede a un nodo completo di filtrare per suo conto. Con il BIP37 il wallet carica un filtro di Bloom che descrive ciò che gli interessa, e i peer restituiscono le transazioni corrispondenti insieme alle prove di Merkle che le collegano ai blocchi. Non è mai stata privata come veniva annunciata: un lavoro accademico presentato nel 2014 ha mostrato che i filtri tradivano proprio gli indirizzi che dovevano nascondere. Bitcoin Core ha disattivato questa funzione per impostazione predefinita nella versione 0.19.0, pubblicata a novembre 2019, perché servire quei filtri era anche un modo semplice per esaurire il disco di un nodo.

La famiglia più diffusa si limita a chiedere direttamente a un server. I wallet che parlano il protocollo Electrum inviano a un server un'impronta di ogni indirizzo che osservano, e il server risponde con la cronologia e il saldo. È immediato e funziona anche con una cattiva connessione mobile, ed è per questo che tanto software lo usa. Significa anche che un solo gestore possiede un elenco completo dei tuoi bitcoin, dei tuoi indirizzi e dell'indirizzo IP da cui ti sei connesso.

La famiglia più recente inverte la direzione del filtraggio. Con il BIP157 e il BIP158 i nodi calcolano un filtro compatto per ogni blocco e lo pubblicano, e il wallet scarica quei filtri e decide da sé quali blocchi sembrano rilevanti prima di richiederli per intero. Nessuno viene a sapere cosa stai cercando. Bitcoin Core è in grado di servire questi filtri dalla versione 0.21.0, di gennaio 2021, e Neutrino è l'implementazione usata dalla maggior parte dei wallet Lightning mobili.

La maggior parte di questi wallet conserva una catena di intestazioni dei blocchi da 80 byte, ed è così che sa che un blocco esiste e reca una proof of work. Con circa 960.000 blocchi quella catena pesa all'incirca 77 MB, abbastanza poco per uno smartphone e inutile per verificare se le transazioni contenute in quei blocchi fossero legittime.

Dove lo vedi

Apri un wallet qualsiasi che ha finito di configurarsi in meno di un minuto e stai guardando un client leggero.

Il rischio da tenere d'occhio non è il furto. Le tue chiavi restano sul tuo dispositivo e un server non può spendere nulla né inventare un pagamento con alle spalle una proof of work reale. Ciò che un server può fare è tacere. Può omettere un pagamento che hai ricevuto, mostrarti un saldo non aggiornato o, se è malevolo e non semplicemente guasto, fornirti una catena che un nodo reale avrebbe scartato. Rilevare una qualsiasi di queste cose richiede proprio ciò che un client leggero non ha.

La via per migliorare è breve. La maggior parte dei wallet desktop, e diversi wallet mobili, possono collegarsi al tuo nodo invece che a un server pubblico, il che elimina del tutto la fuga di privacy e non costa nulla oltre all'hardware che hai già acquistato.

Client leggero vs simplified payment verification

La simplified payment verification è una tecnica; un client leggero è una categoria di software, e molti software della seconda categoria non implementano la prima. Una vera simplified payment verification significa costruire una catena di intestazioni dalla proof of work e verificare contro di essa un ramo di Merkle prima di credere a qualsiasi cosa. Il wallet desktop Electrum fa esattamente questo con le risposte che i suoi server gli danno. Moltissime app che si appoggiano a un server Electrum non lo fanno e mostrano semplicemente il saldo che è stato loro consegnato, anche dove la comunicazione parla di "SPV wallet". Se vuoi sapere quale tipo stai usando, guarda se sincronizza le intestazioni.

Da non confondere con

Domande frequenti

Un client leggero può rubare i miei bitcoin?

Il server non può, perché le tue chiavi private non lasciano mai il tuo dispositivo e non ha modo di firmare nulla. Può mentire per omissione, nascondere un pagamento o mostrare un saldo non aggiornato, e viene a sapere quali indirizzi sono tuoi.

Quali wallet leggeri rivelano meno informazioni?

Quelli che usano i filtri compatti dei blocchi secondo il BIP157 e il BIP158, perché il wallet scarica i filtri e decide localmente cosa richiedere invece di comunicare i tuoi indirizzi a un server. Collegare un wallet qualsiasi al tuo nodo elimina del tutto la fuga.

Leggi anche

Termini correlati

Altro in Nodi e software

Leggi questa pagina in inglese