Proposto in un white paper nel 2016, Lightning Network (LN) è una soluzione di livello 2 costruita su Bitcoin. LN è stato creato in risposta ai problemi di scalabilità con Bitcoin, ovvero la velocità e il costo delle transazioni Bitcoin.
L'attuale numero massimo teorico di transazioni al secondo (TPS) di Bitcoin è 10, anche se in realtà è compreso tra 3 e 7. Confronta questo con i tradizionali processori di pagamento come VISA, che ha gestito in media 6.000 TPS nel 2020 (sulla base dell'affermazione di VISA di 188 miliardi di transazioni al anno).
Le commissioni di transazione di Bitcoin possono variare notevolmente a seconda della domanda attuale di utilizzo della rete. Ad esempio, il 20 aprile 2021 le commissioni di transazione medie erano superiori a $ 50, mentre il 9 agosto 2021 la media era di circa $ 2,50. Per transazioni di grandi dimensioni, come bonifici bancari o rimesse internazionali, la velocità e i costi di Bitcoin sono paragonabili o superiori alle alternative. Ma se Bitcoin deve essere utilizzato per i pagamenti quotidiani (le cosiddette microtransazioni, ad esempio una tazza di caffè, il gas), la velocità delle transazioni deve aumentare e i costi di transazione devono diminuire drasticamente.
Rete Lightning in teoria
Per capire come funziona LN e le sfide attuali di LN, dobbiamo parlare di Bitcoin. Il fattore limitante della rete Bitcoin è che ogni transazione deve essere inserita in un nuovo blocco sulla catena. Poiché i blocchi vengono aggiunti alla catena circa ogni 10 minuti, esiste un limite rigido al numero di transazioni possibili senza alterare in modo significativo il protocollo Bitcoin.
Dibattiti su importanti rielaborazioni del protocollo Bitcoin si sono già verificati in passato e hanno portato a "hard fork", in particolare alla creazione di Bitcoin Cash. Il Lightning Network, invece di creare una nuova blockchain, è una soluzione di livello 2. Ciò significa che consente al protocollo Bitcoin di rimanere relativamente invariato, ma fornisce i vantaggi che importanti rielaborazioni potrebbero portare, almeno in teoria.
LN funziona creando un canale di pagamento tra due parti, in cui solo la prima e l'ultima transazione vengono inserite nella blockchain di Bitcoin. Qualsiasi numero di transazioni tra la prima e l'ultima avverrà fuori catena, il che significa che tali transazioni non sono limitate dal protocollo Bitcoin.
Per avviare un canale di pagamento, entrambe le parti devono impegnare una quantità di Bitcoin. Quel Bitcoin viene trattenuto e non può essere rilasciato finché il canale di pagamento rimane aperto. L'importo totale di Bitcoin che può essere trasferito attraverso questo canale è l'importo totale di Bitcoin impegnato. Diamo un’occhiata a un esempio per illustrare questo:
Alice e Bob vogliono creare tra loro un canale di pagamento. Alice impegna 10 BTC e Bob impegna 5 BTC nel canale di pagamento. Una transazione di apertura contenente i 15 BTC combinati di Alice e Bob viene inserita nella blockchain di Bitcoin. Una volta che la transazione è stata aggiunta alla blockchain, operazione che può richiedere 10 minuti o più, Alice e Bob possono effettuare transazioni un numero illimitato di volte a velocità molto più elevate e a costo effettivamente pari a zero. Di seguito sono riportate le transazioni tra Alice e Bob:
Alice invia a Bob 1 BTC Alice: 9 BTC Bob: 6 BTC
Alice invia a Bob 2 BTC Alice: 7 BTC Bob: 8 BTC
Bob invia ad Alice 3 BTC Alice: 10 BTC Bob: 5 BTC
Bob invia ad Alice 1 BTC Alice: 11 BTC Bob: 4 BTC
Quando uno o entrambi desiderano chiudere il canale, una transazione di chiusura viene inviata alla blockchain con i saldi finali di Alice e Bob. In questo caso, il saldo finale di Alice è di 11 BTC e quello di Bob è di 4 BTC.
E se Alice volesse effettuare transazioni con Carol? Bene, si dà il caso che Bob abbia un canale di pagamento con Carol, quindi Alice effettua la transazione con Bob e Bob trasmette la transazione a Carol. Tieni presente che in questo scenario Bob potrebbe richiedere un piccolo pagamento per trasferire la transazione. Nel tempo, secondo la teoria dei sei gradi di separazione, LN consente ad Alice di effettuare transazioni con chiunque altro.
Lightning Network in pratica
LN è un nuovo protocollo ancora in fase di test. In quanto tale, deve affrontare molte sfide che vanno dall’usabilità alla sicurezza.
Ci sono preoccupazioni su quanto sia facile eseguire un nodo LN. Affinché LN abbia successo, è necessaria una solida rete di nodi Bitcoin che eseguano il protocollo LN. Gestire un nodo LN può essere piuttosto difficile e potrebbero verificarsi problemi di incentivi di pagamento per l'esecuzione di nodi più piccoli. Si può sostenere, tuttavia, che gestire LN non è molto più difficile che gestire un nodo Bitcoin completo. Tuttavia, poiché LN si rivolge principalmente alle microtransazioni, l'esperienza quotidiana con LN avverrà tramite portafogli abilitati per LN. I portafogli abilitati per LN non sono molto facili da usare e la maggior parte di questi portafogli avverte che, poiché sono ancora in fasi di test pubblici, è consigliabile non depositare troppi fondi. A differenza di alcuni dei portafogli Bitcoin più consolidati, la novità di questi portafogli abilitati per LN significa che ci sono dei compromessi tra le versioni custodiali e non custodiali. I portafogli LN non custoditi sono un po’ difficili da usare: più confusi e meno semplici. Le opzioni di custodia sono più facili da usare, ma devi fare affidamento su una terza parte con il tuo Bitcoin.
Infine, cosa più preoccupante, LN si è trovata ad affrontare una serie di vulnerabilità. Questi includono:
Attacchi di lutto: i fondi non vengono persi, ma i fondi Lightning della vittima vengono congelati in modo che il canale di pagamento non possa elaborare alcuna transazione.
Flood e loot: un aggressore costringe molte vittime a reclamare contemporaneamente i propri fondi dalla blockchain (flood). L'aggressore sfrutta questa congestione per rubare i fondi che non è stato possibile ritirare entro la scadenza (loot).
Attacchi di dilatazione del tempo: un utente malintenzionato allunga il tempo in cui una vittima viene a conoscenza dei nuovi blocchi ritardando la consegna dei blocchi.
Attacchi con blocco: un utente malintenzionato induce con l'inganno la vittima a chiudere in modo improprio il canale LN e a rubare singole transazioni.