Asset digitali
Interruzioni dei nodi Lightning: che cosa è successo a LND?

Tra ottobre e l’inizio di novembre 2022, i nodi che usavano LND, un’implementazione della Lightning Network di Bitcoin, subirono due interruzioni in meno di un mese. Un utente fece includere nei blocchi transazioni insolite ma valide secondo le regole di Bitcoin. Queste misero in luce errori di elaborazione di LND, impedendo ai nodi interessati di continuare a seguire la catena Bitcoin. Non si trattò dell’arresto dell’intera Lightning Network né di una modifica alle regole di consenso di Bitcoin. L’utente era noto su Twitter come Burak, con il nome @brqgoo.
Le azioni di Burak
Secondo notizie circolate allora e qui non confermate, Burak pagò 700 dollari al grande pool di mining Bitcoin F2Pool per includere la sua transazione insolita. Questa conteneva il messaggio: «Userai CLN e sarai felice». CLN significa Core Lightning, un’implementazione della Lightning Network distinta da LND (Lightning Network Daemon). Il problema descritto colpì LND, mentre Core Lightning non fu interessata da quello specifico errore.
L’episodio di inizio novembre fu il secondo in un mese. In ottobre, Burak scrisse su Twitter: «Ho appena eseguito una multisig tapscript che richiede 998 firme su 999, pagando soltanto 4,90 dollari di commissioni». La transazione rivelò un errore di elaborazione che impedì ai nodi LND interessati di continuare a sincronizzarsi con la catena Bitcoin. Lightning non produce blocchi propri: l’episodio non significava quindi che avesse mancato la produzione di un blocco.
In occasione del secondo episodio, all’inizio di novembre 2022, pubblicò un tweet con le parole: «A volte, per trovare la luce, dobbiamo prima toccare l’oscurità». Alcuni lo considerarono un aggressore malevolo, altri una persona che metteva alla prova il software e ne esponeva le debolezze. Rene Pickhardt, sviluppatore e divulgatore di Bitcoin e Lightning, osservò che i suoi nodi Core Lightning non erano stati colpiti. Ciò non garantiva però, a suo avviso, che Core Lightning fosse al riparo da altri errori ancora sconosciuti.
https://twitter.com/renepickhardt/status/1587412127240830977?t=CruzE6Z16ST8V2CO6LcuGA&s=19
Lightning Labs, che sviluppa LND e contribuisce al più ampio ecosistema Lightning, rispose con una correzione d’emergenza su GitHub. La versione v0.15.4-beta del 1° novembre 2022 correggeva l’elaborazione di alcune transazioni con moltissimi elementi witness. In ottobre era già uscita la v0.15.2-beta per un errore nell’elaborazione di determinati blocchi di grandi dimensioni. Lightning Labs sviluppa dunque un’importante implementazione, non da sola l’intera Lightning Network.
Cos’è la Lightning Network e perché è importante per Bitcoin?
Lightning Network è una soluzione di livello 2 per aumentare la capacità dei pagamenti Bitcoin. Lo spazio limitato nei blocchi può provocare commissioni più alte e conferme più lente nei periodi di congestione. Lightning sposta molti aggiornamenti dei pagamenti fuori dalla catena principale, mantenendo su Bitcoin il regolamento finale. È un protocollo complementare, non una sostituzione delle regole del livello di base.
In Lightning le parti aggiornano i saldi fuori dalla blockchain, cioè off-chain, senza inserire ogni pagamento in un blocco Bitcoin. Le cifre spesso citate di milioni di pagamenti al secondo sono stime del potenziale di scalabilità, non una capacità fissa dimostrata per l’intera rete. Anche «al massimo sette» transazioni Bitcoin al secondo non è una costante universale: conta, tra l’altro, la dimensione delle transazioni. Per Lightning sono importanti anche la liquidità dei canali e i percorsi di pagamento disponibili.
I blocchi Bitcoin hanno spazio limitato. Le transazioni non confermate possono attendere nelle mempool dei nodi, mentre i miner scelgono generalmente in base alle commissioni, non secondo una coda garantita per ordine di arrivo. L’obiettivo medio è un blocco ogni dieci minuti, ma gli intervalli effettivi variano. Una transazione con commissione bassa può attendere ore o giorni durante la congestione anche se nuovi blocchi continuano a essere prodotti. Ciò rende più difficili i pagamenti quotidiani rapidi.
Lightning usa canali di pagamento tra due parti, e i pagamenti possono attraversare più canali collegati. Una transazione di finanziamento apre il canale su Bitcoin; ogni pagamento successivo non richiede un nuovo canale. Le parti si scambiano aggiornamenti firmati dei saldi senza pubblicare ogni modifica sulla blockchain. Mantengono lo stato corrente che può essere fatto valere, non un registro pubblico di tutti i pagamenti. Alla chiusura viene confermata su Bitcoin una transazione di regolamento. La chiusura può essere concordata o unilaterale; nel secondo caso possono servire tempi di attesa e transazioni aggiuntive.
Nel modello di base, finanziamento e chiusura del canale sono registrati sulla blockchain, mentre gli aggiornamenti ordinari dei pagamenti restano off-chain. Una chiusura forzata o una controversia può però richiedere altre transazioni: dire «soltanto apertura e chiusura» è quindi troppo assoluto. Lightning continuava a evolversi. Pagamenti più rapidi e commissioni spesso inferiori possono favorire l’uso delle criptovalute, senza garantirne l’adozione di massa.












