Lightning Network
Con Lightning Network, paghi comunque due commissioni — una per aprire il tuo canale, e un’altra per chiuderlo. Tuttavia, tu e la tua controparte potete effettuare migliaia di transazioni gratuitamente una volta che il canale è aperto.
I blocchi di Bitcoin vengono creati approssimativamente ogni dieci minuti, e possono contenere un certo numero di transazioni. Lo spazio nel blocco è una risorsa limitata, quindi devi offrire di più degli altri utenti per fare in modo che la tua transazione venga inclusa velocemente. Ai miner importa, prima di tutto, essere pagati, quindi includeranno prima le transazioni con le commissioni più alte. Quando non ci sono tanti utenti che cercano di inviare fondi allo stesso tempo, questo non è un problema. Puoi impostare una commissione bassa, ed è probabile che la transazione verrà inclusa nel blocco successivo.
Potrebbe sembrare insignificante per transazioni che spostano migliaia di dollari in Bitcoin, ma per i pagamenti più piccoli non è sostenibile. Chi sarebbe disposto a pagare un caffè da $3 con una commissione da 5$? Con Lightning Network, paghi comunque due commissioni — una per aprire il tuo canale, e un’altra per chiuderlo. Tuttavia, tu e la tua controparte potete effettuare migliaia di transazioni gratuitamente una volta che il canale è aperto. Dopodiché, dovete solo pubblicare lo stato finale sulla blockchain.
Nello schema generale, se più utenti si affidano a soluzioni off-chain come il Lightning Network, lo spazio nei blocchi verrà usato in modo più efficiente. I trasferimenti di basso valore e alta frequenza possono essere eseguiti nei canali di pagamento, mentre lo spazio nei blocchi viene usato per transazioni più grandi e per l’apertura/chiusura dei canali. Questo renderebbe il sistema accessibile a una base di utenti notevolmente più ampia, provvedendo alla scalabilità nel lungo termine.
Micro pagamenti e un importo minimo di Bitcoin che puoi inviare in una transazione — circa 0,00000546 BTC. Al momento della scrittura, questa cifra equivale a circa quattro centesimi. È un importo minimo, ma il Lightning Network ti permette di superare i limiti e inviare l’unità più piccola attualmente disponibile — 0,00000001 BTC, o un satoshi.
Lightning è molto più attraente per i micropagamenti. Le commissioni sulle transazioni regolari rendono impraticabile lo scambio di somme minime sulla main chain. In un canale, invece, sei libero di inviare una frazione di una frazione di un Bitcoin gratuitamente.
I micropagamenti sono presenti in una lunga serie di casi d’uso. Alcuni ipotizzano che potrebbero essere un valido sostituto per i modelli basati su abbonamento, in cui gli utenti pagano invece somme minuscole ogni volta che usano un servizio.
Privacy
Un vantaggio secondario del Lightning Network è che può offrire agli utenti un alto livello di riservatezza. I partecipanti non sono costretti a rendere noti i propri canali al network generale. Anche se potresti essere in grado di esaminare la blockchain e dire questa transazione ha aperto un canale, non è detto che sarai in grado di capire cosa sta succedendo al suo interno. Se i partecipanti decidono di rendere il canale privato, solo loro sapranno quali transazioni stanno avendo luogo.
Se Alfio ha un canale con Gina e quest’ultima ha un canale con Rikki, Alfio e Rikki possono inviarsi pagamenti tramite Gina. Se Laura è collegato a Rikki, Alfio può inviare pagamenti a lei. Puoi immaginare come questo si espanda in un vasto network di canali di pagamento interconnessi. In una configurazione del genere, non puoi affermare con certezza dove sono finiti i fondi di Alice una volta chiuso il canale.
Come funziona il Lightning Network?
Abbiamo spiegato come il Lightning Network si basa, sostanzialmente, su canali tra nodi. Ora diamo un’occhiata a come funziona nello specifico.
Indirizzi multifirma
Un indirizzo multifirma (o multisig) è un indirizzo da cui possono spendere diverse chiavi private. Quando ne crei uno, devi specificare quante chiavi private possono spendere i fondi, e quante di queste chiavi sono necessarie per firmare una transazione. Per esempio, uno schema 1-di-5 significa che cinque chiavi possono produrre una firma valida, e che solo una è necessaria.
Uno schema 2-di-3 indica che, delle tre chiavi possibili, due qualsiasi sono necessarie per spendere i fondi.Per inizializzare un canale Lightning, i partecipanti bloccano fondi in uno schema 2-di-2. Ci sono solo due chiavi private in grado di firmare, ed entrambe sono necessarie per spostare monete. Facciamo tornare i nostri amici Alfio e Gina. Supponiamo che debbano effettuare molti pagamenti tra di loro nei prossimi mesi, quindi decidono di aprire un canale Lightning Network.
Questo inizia con entrambi che depositano, diciamo, 3 BTC nell’indirizzo multifirma controllato congiuntamente. E’ importante ribadire che Gina non può spostare fondi dall’indirizzo senza che Alfio sia d’accordo, o viceversa.
Ora, potrebbero semplicemente usare un foglio di carta e regolare i saldi per ogni parte. Entrambi hanno un saldo iniziale di 3 BTC. Se Alfio vuole effettuare un pagamento di 1 BTC a Gina, perché non prendere nota che Alfio ora possiede 2 BTC e Gina possiede 4 BTC? I saldi potrebbero essere registrati in questo modo fino a quando non decidono di spostare i fondi fuori dal Lightning Network.
E’ possibile, ma dove sta il divertimento? Più importante, questo metodo non rende incredibilmente facile non collaborare? Se Alfio finisce col possedere 6 BTC e Gina zero, Gina non perde nulla rifiutando di rilasciare i fondi (eccetto, forse, la sua amicizia con Alfio).
Hash Timelock Contract (HTLC)
Il sistema che abbiamo descritto sopra è noioso e non offre niente di nuovo rispetto alle configurazioni trusted che usiamo già oggi. Le cose si fanno molto più interessanti quando introduciamo un meccanismo che fa rispettare il “contratto” tra Alfio e Gina. Se una delle parti decide di non seguire le regole, l’altra ha comunque un rimedio per togliere i propri fondi dal canale.Questo meccanismo è un Hash Time LockClocke (o HTLC).
Il termine può sembrare complicato, ma si tratta in realtà di un concetto piuttosto semplice da comprendere. Combina altre due tecnologie (hashlocke timelock) per porre rimedio a qualsiasi comportamento non cooperativo nei canali di pagamento. Una hashlock è una condizione posta su una transazione, stabilendo che puoi spendere fondi solo dimostrando che conosci un segreto.
Il mittente elabora un insieme di dati attraverso una funzione hash e include la hash nella transazione del destinatario. L’unico modo in cui il ricevente può spenderla è fornendo i dati originali (il segreto) che corrisponde all’hash, e l’unico modo in cui può fornire questo dato è se il mittente glielo invia.
Una timelock è una condizione che ti impedisce di spendere fondi prima di un certo tempo. Viene specificata come un periodo di tempo effettivo o come altezza del blocco.
Gli HTLC sono creati combinando haslock e timelock. In pratica, gli HTLC possono essere usati per creare pagamenti condizionali — il ricevente deve fornire un segreto prima di un certo tempo, o il mittente può reclamare i fondi.