Nel capitolo precedente abbiamo visto che le informazioni sui canali stanno soltanto sul disco del nodo e che la seed non basta a recuperarle. Qui vediamo che cosa salvare, che cosa permette di recuperare ciascun backup e come una watchtower sorveglia i canali quando il nodo è spento. Mastering Lightning Network raccomanda di non mettere fondi nei canali prima di avere un sistema di backup funzionante: per questo il capitolo viene prima dell’apertura del primo canale.
Che cosa va salvato con LND
Con LND gli elementi da salvare sono due. Il primo è la seed di 24 parole, nel formato proprio di LND chiamato aezeed: ricostruisce il wallet on-chain del nodo, ma non i canali aperti.
Il secondo è lo Static Channel Backup, o SCB, un file chiamato channel.backup. Contiene, cifrate, le informazioni che servono a ritrovare le controparti e i canali aperti. Si chiama statico perché non cambia a ogni pagamento: LND lo aggiorna soltanto quando un canale viene aperto o chiuso.
Lo stato di ogni canale, cioè i saldi aggiornati dopo ogni pagamento, sta invece nel database del nodo, il file channel.db, che cambia di continuo. La documentazione di LND avverte che ripristinare una copia vecchia di quel database è molto rischioso e non va mai fatto. Ogni stato di un canale sostituisce il precedente e lo rende revocato: se il nodo ripristinato pubblicasse uno stato revocato, la controparte lo tratterebbe come un tentativo di frode e potrebbe prendersi l’intero saldo del canale con una transazione di penalità.
Che cosa permette di recuperare lo SCB
Se il nodo perde i dati, si installa LND da capo, si inserisce la seed e si fornisce il file SCB. LND usa il backup per ritrovare le controparti e i canali, si collega a ciascuna e le avvisa di aver perso i dati. La controparte chiude allora il canale in modo forzato; quando la transazione è confermata, i fondi del nodo tornano nel suo wallet on-chain.
Il recupero non ripristina il nodo com’era: tutti i canali vengono chiusi e si pagano le commissioni on-chain, e la documentazione di LND lo descrive come una misura di emergenza. Funziona soltanto con le controparti raggiungibili: se una controparte resta irraggiungibile, il recupero di quel canale è impossibile e i suoi fondi restano persi. Il manuale aggiunge che il recupero dipende dall’onestà delle controparti, a cui si chiede di chiudere il canale, e che i backup vanno sempre cifrati: chi entrasse in possesso di un backup in chiaro vedrebbe tutti i canali e potrebbe usarlo per farli chiudere.
I backup su Umbrel
L’app Lightning Node di Umbrel salva lo SCB in automatico. Il file viene cifrato sul nodo, con una chiave derivata dalla seed, prima di essere caricato sul server di backup di Umbrel; Umbrel non riceve né la seed né il backup in chiaro. L’invio passa da Tor per impostazione predefinita, così il server non vede l’indirizzo IP del nodo, e Umbrel aggiunge dati casuali e backup fittizi, in modo che dimensioni e orari degli invii non rivelino quando si aprono o si chiudono i canali. L’identificativo del backup deriva anch’esso dalla seed: un nodo ripristinato con la stessa seed ritrova i backup precedenti.
Dall’app si può anche scaricare il file channel.backup con il pulsante per il download del backup dei canali. Il corso di Plan ₿ indica di conservarne una copia propria e di rinnovarla a ogni apertura o chiusura di un canale. La documentazione di Umbrel considera rischioso disattivare il backup automatico: in quel caso bisogna scaricare un backup nuovo a ogni cambiamento dei canali. Se si usano anche i backup di umbrelOS, bisogna assicurarsi che contengano dati Lightning recenti prima di contarci per un recupero.
Con altre implementazioni
Le procedure di LND non valgono per le altre implementazioni. Core Lightning, per esempio, salva i fondi on-chain nel file hsm_secret, che dalla versione 25.12 corrisponde a una seed di 12 parole; ha un proprio file di emergenza, emergency.recover, aggiornato a ogni apertura di un canale; e raccomanda di replicare il database in tempo reale, sconsigliando le copie periodiche perché qualunque perdita di stato può far perdere i fondi. Anche per Core Lightning il recupero attraverso il file di emergenza richiede la collaborazione delle controparti ed è un’ultima risorsa.
La watchtower
Il protocollo Lightning protegge i canali con un meccanismo di penalità. Se una controparte pubblica uno stato revocato, il nodo deve rispondere, entro il periodo fissato da un timelock, con una transazione di penalità che gli assegna i fondi del canale. Se in quel periodo il nodo è spento, il tentativo può riuscire.
Una watchtower svolge questa sorveglianza al posto del nodo. Il nodo, che fa da client, invia alla torre le transazioni di penalità già firmate, cifrate in blocchi di dimensione fissa; la torre le decifra e le pubblica soltanto se vede comparire sulla blockchain lo stato revocato a cui si riferiscono. Non può quindi spostare i fondi a proprio favore e, secondo il corso di Plan ₿, non conosce le controparti, i saldi né la struttura dei canali. Le torri oggi in funzione con LND sono altruiste: restituiscono l’intero importo, meno le commissioni on-chain, senza trattenere nulla. La commissione della transazione di penalità si imposta nel client.
La protezione ha limiti precisi. La documentazione di LND indica che le torri salvano soltanto gli output principali del canale, quelli dei due saldi, e non quelli dei pagamenti ancora in corso (HTLC). La torre resta inoltre un servizio esterno che deve funzionare nel momento in cui serve. Si possono configurare più torri, e qualunque nodo LND può fare da torre per altri.
Su Umbrel la watchtower si attiva dall’app Lightning Node: dal menu con i tre puntini si aprono le impostazioni avanzate, nella sezione Watchtower si attiva il Watchtower Client e si salva, e LND si riavvia. Dopo il riavvio, nello stesso menu si aggiunge l’indirizzo della torre. Il corso di Plan ₿ indica come esempio una torre pubblica altruista gestita da LN+ e Voltage.
Con la seed conservata, il backup dei canali attivo e almeno una watchtower configurata, il nodo è pronto a ricevere i primi fondi. Nel prossimo capitolo, Canali e liquidità sul campo, apriamo il primo canale.