Come funziona quindi un Lightning Network?
LN sposta il valore del Bitcoin dal possesso effettivo della valuta alla promessa di proprietà della stessa.
Un’innovazione mica da poco! Come sempre, faremo uso di un esempio per comprendere meglio questo concetto. Immaginate ancora una volta Xan, Yelena e Zeke: Xan e Yelena condividono un canale di pagamento, mentre Yelena e Zeke ne condividono un altro. Nota che Xan e Zeke non hanno alcun canale in comune.
Xan vuole trasferire 2 BTC a Zeke, e può farlo sfruttando il canale di pagamento che unisce quest’ultimo a Yelena.
Per farlo, Xan chiede a Yelena di trasferire una promessa di proprietà dal valore di 2 BTC a Zeke sul canale Yelena-Zeke, dopodiché rimborsa Yelena con 2 BTC sul canale Xan-Yelena.
Grazie ad una fitta rete di pagamenti organizzata in questo modo, una grossa fetta delle transazioni verrebbe condotta al di fuori della Blockchain stessa. Milioni di transazioni potrebbero avvenire velocemente ogni giorno, e senza la necessità di pagare delle onerose spese di transazione.
È questo il Lightning Network.
Cosa sono i canali di pagamento?
Immaginateli come una sorta di cassetta di sicurezza, nella quale due utenti depositano la medesima quantità di denaro e che entrambi chiudono ognuno con un lucchetto.
Il deposito del denaro viene registrato sulla Blockchain sotto forma di “Transazione d’Apertura”, che sancisce la fondazione di un canale di pagamento tra due individui. D’ora in avanti questi soldi possono essere utilizzati per portare velocemente a termine transazioni tra i due utenti. Nessuna delle due parti può inoltre spendere il denaro senza il consenso dell'altra.
Immagina che sia Xan che Yelena depositino 10 BTC in una cassetta di sicurezza in comune. Xan vuole ora inviare 2 BTC a Yelena: come fare?
Xan dovrà trasferire a Yelena una promessa di proprietà dal valore di 2 BTC. Una volta sancita la promessa, se la cassetta di sicurezza venisse aperta, Xan otterrebbe 8 BTC e Yelena 12 BTC.
Ma per il momento la cassetta in questione non verrà aperta, poiché le due parti desiderano continuare ad effettuare scambi in futuro. Se il giorno successivo Yelena volesse inviare 1 BTC a Xan, dovrebbe compiere la medesima procedura: trasferire una promessa di proprietà dal valore di 1 BTC. Al termine di questa seconda transazione, se la cassetta venisse aperta, Xan otterrebbe 9 BTC e Yelena 11 BTC.
Per farla breve, un canale di pagamento permette di mettere in comune una certa quantità di denaro, e di trasferirlo velocemente da un utente all’altro concordando delle promesse di proprietà. Il canale può essere chiuso in qualsiasi momento sia da Xen che da Yelena.
Alla chiusura del canale viene immediatamente aperta anche la relativa cassetta di sicurezza. L’evento viene registrato perennemente sulla Blockchain, assieme al risultato finale di tutti i movimenti di denaro mai avvenuti nel canale sin dalla sua fondazione.
Ma il vero potenziale di questa tecnologia si realizza solo quando due o più canali di pagamento lavorano assieme, così da formare una rete: il Lightning Network appunto.
Cos’è quindi Lightning Network?
L’idea alla base di LN è molto semplice: non è necessario registrare sulla Blockchain ogni singola transazione.
Immagina che tu ed io eseguiamo un gran numero di transazioni tra noi. In tal caso potremmo evitare di trascrivere ogni singolo movimento sulla Blockchain, e registrarli invece al di fuori di essa.
Ecco come funziona più nel dettaglio: creiamo innanzitutto un canale di pagamento privato, registrando sulla Blockchain la data della sua fondazione. Ora tu ed io possiamo eseguire numerose transazioni utilizzando il suddetto canale, che può rimanere aperto per ore, giorni, mesi o anni. D’ora in avanti l’unica interazione che avremo con la Blockchain sarà alla chiusura del canale di pagamento: a quel punto sarà necessario appuntare soltanto lo stato finale delle transazioni.
Con questa idea alla base, è possibile dare vita ad una vera e propria rete di canali di pagamento, che interagirebbe molto di rado con la Blockchain. Per comprendere meglio il concetto, immagina ora i tre seguenti personaggi: Xan, Yelena e Zeke.
Se Xan e Yelena condividono un canale di pagamento, e Yelena e Zeke condividono un altro canale di pagamento, allora Xan può inviare denaro a Zeke attraverso Yelena. In altre parole, se Xan volesse inviare 2 BTC a Zeke, Yelena potrebbe spedire 2 BTC a Zeke e Xan al tempo stesso rimborserebbe la medesima cifra a Yelena.
È proprio questa l’idea alla base di Lightning Network: dovendo interagire con la Blockchain solo di rado, le transazioni avverrebbero all’istante. Diamo ora un’occhiata al funzionamento dei canali privati.
Aspetta, spese di transazione?
Esatto, sono presenti delle spese aggiuntive.
Puoi decidere di pagare una certa somma per incentivare i miner ad aggiungere il prima possibile la tua transazione al blocco. Non esiste alcun prezzo predefinito, bensì è l’utente a decidere quanto desidera versare per velocizzare il processo: più costosa la commissione, più veloce la transazione.
Di volta in volta viene aggiunto un certo numero di transazioni alla pagina corrente.
Sono i miner, vale a dire le macchine che lavorano all’interno della rete Blockchain, a decidere quali delle transazioni al momento disponibili aggiungere al blocco attuale. Le transazioni con una commissione più alta avranno sempre la priorità rispetto alle altre, e verranno aggiunte per prime alla Blockchain.
Se un intero blocco viene riempito con transazioni prioritarie rispetto alla tua, sarai costretto ad attendere in coda. L’attesa può variare da pochi minuti a qualche ore, se non addirittura giorni: più paghi e più velocemente la transazione verrà elaborata.
Ecco perché le Blockchain sono lente e, di conseguenza, costose. In teoria una più ampia adozione della Blockchain dovrebbe portare ad un più alto numero di transazioni, ma se queste diventano troppe allora la rete rallenta, divenendo un ostacolo per la diffusione della tecnologia. Che paradosso!
Lightning Network, o LN, rappresenta una potenziale soluzione a questo problema.
Perché le Blockchain sono lente?
Pensate ad una Blockchain come ad un registro.
Un registro contenente parecchie pagine (blocchi), all’interno delle quali vengono elencate un gran numero di transazioni. Una volta completata, vale a dire quando non è più possibile aggiungere nuove transazioni, la pagina va inserita all’interno del registro prima di poter iniziare tracciare ulteriori movimenti.
Tuttavia affinché una pagina (block) possa essere inserita nel registro (chain), è necessario eseguire una complessa elaborazione di dati per assicurare che ogni singolo utente concordi sulle informazioni in essa contenute. Nel caso specifico del Bitcoin, questo processo ha una durata di circa 10 minuti.
Immaginate quindi di inviare 1 BTC al vostro amico Joe: la transazione dovrebbe assomigliare a qualcosa del genere.
La transazione inserita nella Blockchain contiene, tra le altre cose, informazioni sul mittente, sul destinatario, sulla quantità di denaro inviata e sulle spese di transazione.
Qual è il problema?
Le Blockchain sono lente.
E di conseguenza costose. Se volessi inviarti dei Bitcoin, non solo li riceveresti dopo parecchie ore, ma dovrei anche pagare un’onerosa commissione per la transazione! Come faranno le Blockchain a diffondersi su scala mondiale se possiedono così tanti difetti?
Qualsiasi idea volta a risolvere la poca scalabilità della tecnologia Blockchain merita quindi un’analisi chiara e precisa: Lightning Network è proprio una di queste idee. Ma per poter comprendere la soluzione bisogna prima conoscere il problema.