HomeWikiAlla scoperta dei Lightning Network

Alla scoperta dei Lightning Network

Read this article in the English language here.

Occorre fare una premessa: le Lightning Network sono più di una e sono molto complesse.

Cercheremo quindi di affrontare il concetto sul piano delle logiche di funzionamento, in termini quanto più semplicemente possibile.

Per gli approfondimenti potrete seguire i link e utilizzare delle risorse in fondo all’articolo.

Limiti del Bitcoin oggi

La blockchain

Il Bitcoin oggi si basa su un registro di transazioni, duplicato su ciascuno dei computer del network.

Questo registro costituisce la prova che nessuno ha mai creato crypto al di fuori delle regole.

E’ anche la garanzia che nessun bitcoin sia mai stato speso due volte.

Da tale registro si ricava anche anche la mappa di tutte le “scatole informatiche” che contengono i bitcoin attualmente in circolazione e non spesi (UTXO) e delle regole per spenderli (scrptPubKey).

La certificazione dei miner

Ogni pagina del registro unico delle transazioni deve essere certificata e messa in un ordine cronologico tramite un complesso meccanismo (il mining) che coinvolge calcoli ripetitivi e massicci e che porta a certificare una piccola pagina di transazioni in media ogni dieci minuti.

Questo porta la rete attuale a poter certificare meno di 7 transazioni al secondo.

Per comparire in una pagina, inoltre, è necessario lasciare una fee per chi permetterà la certificazione della stessa in rete.

Essendo lo spazio nella pagina limitato, in periodi di sovraccarico, la certificazione di una singola transazione potrebbe essere lenta e costosa.

La verifica dei nodi

Per far sì che l’utente Bitcoin non debba fidarsi di terze parti per verificare la correttezza contabile del denaro che riceve, ogni nodo della rete Bitcoin esegue la verifica di ogni transazione e anche questo rende il sistema Bitcoin poco scalabile.

Inoltre, il fatto che ogni transazione debba essere verificata, implica che sia leggibile da chiunque in ogni dettaglio e questo pone a rischio la privacy degli utenti.

Ma è veramente necessario che ogni nodo della rete debba verificare e vedere ogni singolo pagamento e che questo debba essere sottoposto al processo di mining per la sua certificazione?

lightning network bitcoin

Che cosa sono le Lightning network

Le Lightning Network sono reti distinte ma in comunicazione con quella Bitcoin, i cui nodi riescono a scambiarsi transazioni Bitcoin come se fossero “obbligazioni di pagamento”.

Tali transazioni, non venendo trasmesse sulla rete Bitcoin, ma restando solo in possesso degli “obbligati”, non appesantiscono la rete Bitcoin fino a quando le parti non decidono che è il momento di ottenere dalla rete stessa il saldo netto delle transazioni.

In quel momento le transazioni di chiusura verranno trasmesse, verificate e certificate tramite il processo di mining sulla rete.

E’ un po’ come se i nodi si scambiassero degli assegni infalsificabili e sempre riscuotibili (le transazioni) presso un istituto di credito sempre aperto e che non può essere insolvente (la rete Bitcoin non può esibire o utilizzare più degli assets effettivamente esistenti).

Eseguita sul Lightning Network una transazione è:

  • Istantanea
  • Quasi gratis (piccolissime fees)
  • Di importo anche microscopico (cd. micro-transazioni)
  • Con una maggiore privacy, in quanto solo il bilancio di chiusura delle transazioni tra gli operatori finisce in pianta stabile sulla blockchain

Per capire perché ciò sia possibile è necessario un cenno su come funzionano le transazioni Bitcoin.

lightning network bitcoin

Le transazioni sulla rete Bitcoin

Le transazioni sulla rete Bitcoin sono costituite da una richiesta di liberare dei bitcoin da un enigma informatico in cui sono vincolati, fornendo una firma digitale valida e porli sotto nuovi vincoli (forniti dal destinatario di una transazione sotto forma di un “indirizzo”).

Se tale richiesta è trasmessa sulla rete Bitcoin, essa coinvolge, come abbiamo visto, tutti i nodi della rete per la verifica e il processo di mining per la certificazione.

Esistono, però, modi per scrivere le transazioni affinché esse costituiscano flussi finanziari potenziali che i destinatari possono accettare come effettivi anche se non trasmessi e certificati sulla rete Bitcoin, essendo rafforzati dalla non ripudiabilità delle transazioni valide una volta certificate sulla  rete.

La metafora della partita di freccette

Per capire come ciò avvenga, ricorriamo a una metafora: prendiamo per esempio due persone che giocano a freccette e decidono di pagarsi 1 millesimo di bitcoin a partita.

Non è intelligente né necessario che intasino la rete con pagamenti reciproci al termine di ogni partita.

Potrebbero mettere sul “bancone del bar” (la rete Bitcoin) un bitcoin a testa e decidere di riprendersi quanto dovuto al netto delle vittorie e delle sconfitte appena uno dei due, stanco, decide di andare a letto (oppure alla chiusura del torneo).

Sulla rete Bitcoin, questo significa vincolare un certo ammontare in un indirizzo in comune (funding transaction) da cui può essere speso solo con l’assenso (espresso sotto forma di firma digitale) di tutti e due i giocatori e trasmettere questa transazione in rete certificando la transazione sulla blockchain.

Per essere sicuri di poter riavere il proprio deposito indietro, i giocatori compilano una transazione che restituisce gli ammontari spettanti a ciascuno (commitment transaction), firmano ciascuno una copia per altro, se la scambiano ma NON trasmettono in rete nulla. Semplicemente conservano la copia per quando vogliono andare a casa.

Al termine della prima partita verrà compilata una nuova transazione che distribuisce il deposito comune tenendo conto del fatto che il vincitore avrà la sua quota di deposito aumentata di un millesimo di bitcoin e il perdente la sua quota meno un millesimo.

Noi sottoscritti Alice e Bob ordiniamo alla rete Bitcoin di trasferire l’ammontare nel nostro conto in comune di 2 bitcoin:

  • Quanto a 0.999 bitcoins a Alice
  • Quanto a 1.001 a Bob

Resta inteso che la pubblicazione di un qualsiasi contratto precedente sulla rete Bitcoin da parte di uno dei giocatori comporterà un trasferimento punitivo dell’intero ammontare in comune all’altro giocatore

Alice

Traduzione in linguaggio comprensibile della Commitment transaction che viene conservata da Bob, nel caso in cui Bob sia in vantaggio di una partita su Alice e che può essere controfirmata e trasmessa sulla rete Bitcoin per chiudere il canale di pagamento.

Questa transazione verrà firmata e conservata in copia da entrambi i giocatori (ciascuno avrà la copia firmata dall’altro), i quali provvederanno a stracciare la transazione precedentemente conservata.

In realtà, una transazione valida e che spende soldi non spesi prima è sempre esigibile se trasmessa in rete e uno dei giocatori potrebbe trasmettere una vecchia commitment transaction più favorevole a lui.

Sono quindi necessari stratagemmi per rendere tale comportamento inutile o non conveniente.

Siccome queste transazioni non devono essere trasmesse in rete e verificate da tutti i nodi per essere esigibili, ma solo dai software dei due giocatori che possono controllare la correttezza e l’esigibilità in rete, il gioco può andare avanti per anni senza che nessuna transazione tocchi la rete.

A fine serata i giocatori avranno in tasca il bilancio netto del frutto delle vincite di ciascuno (oltre ad altre transazioni che servono per invalidare i bilanci intermedi obsoleti), che è costituito da un’unica transazione che restituisce il banco secondo l’esito finale netto delle partite.

Alla fine del torneo ambedue i giocatori, nel caso vogliano chiudere i conti, possono controfirmare la loro copia della commitment transaction e trasmettere in rete (Closing transaction).

Viene dato un certo tempo alla controparte per controllare ciò che è trasmesso e certificato in rete perché, nel caso la transazione non rifletta il bilancio finale, la controparte può reagire pubblicando una transazione speciale che vanifica gli effetti di tale tentativo. Attualmente tale pubblicazione prevede addirittura il prelievo da parte della parte lesa dell’intero ammontare del banco (Penalty transaction).

Questa composizione di transazioni e scambio delle stesse, che amplifica le potenzialità transattive del bitcoin è detto “canale di pagamento bidirezionale”.

È intuibile che gli use case di queste configurazioni sono molto limitati.

E’ difficile che due soggetti economici abbiano necessità forti di pagamenti reciproci frequentissimi. Parte della novità delle reti lightning è costituito infatti dal l’instradamento dei pagamenti.

L’instradamento dei pagamenti

Supponiamo che ciascun utente abbia canali bidirezionali di pagamento in corso con persone diverse.

Anche se non possiedo un canale diretto con “Charlie”, potrei dire a “Bob”, che invece ne ha uno con me e uno con Charlie, di pagarlo per me e promettergli contestualmente di rivenderlo sul canale che ho con lui. Per Bob non sarebbe un grosso problema, purché possa fare affidamento sulla certezza di poter incassare da me dopo o aver pagato Bob.

Per rendere questa procura di pagamento totalmente sicura, è possibile confezionare delle particolari transazioni Bitcoin chiamate HTLC.

Spiegato in parole comprensibili, il beneficiario del pagamento manda un domanda di cui solo lui conosce la risposta a me e a Bob (in realtà è un commitment crittografico).

Io preparo una transazione che assegna a Bob l’importo a patto che Bob fornisca la risposta alla domanda posta da Charlie entro un certo tempo (es: 1 ora) e Bob compila una transazione con la stessa condizione per Charlie ma che scade in 50 minuti.

A questo punto il pagamento o è eseguito, compensando correttamente tutti i partecipanti oppure non viene adempiuto per niente e ciascun nodo coinvolto riacquisisce la proprietà dei bitcoin che avrebbe dovuto trasferire.

E’ facile intuire che la domanda che lega il pagamento all’interno degli intermediari è simile ad una fattura emessa dal beneficiario e che contiene elementi utili alla corretta esecuzione.

Gli intermediari di ciascun pagamento possono essere diversi e non hanno necessità di conoscersi o di fidarsi l’uno dell’altro: è perfettamente eseguibile oggi un pagamento che passi per una decina di intermediari.

L’insieme dei nodi coinvolti in un pagamento è detto “route” del pagamento stesso.

Mentre scriviamo, la rete ufficiale Lightning, al di sopra della rete Bitcoin, ha già più di 2400 nodi collegati tra loro da più di 7000 canali di pagamento bidirezionali.

Certo l’instradamento dei pagamenti sulla rete lightning ha molti vincoli ed è un problema complesso. Per eventuali approfondimenti, è stata pubblicato un post sullo stato dell’arte ad oggi.

Una visualizzazione della topologia della rete Lightning della rete Bitcoin https://rompert.com/recksplorer/

C’è di più

Poiché molte criptovalute sono nate da Bitcoin, queste condividono le feature necessarie alla realizzazione di una rete lightning.

Litecoin, ad esempio, ha già dei nodi lightning che lo supportano e il fatto che per effettuare una transazione sia spesso necessario appoggiarsi su un nodo intermediario apre una possibilità incredibile:

Supponiamo che Charlie voglia ricevere il pagamento in litecoins ma io abbia solo bitcoins.

Nelle condizioni attuali dovrei cambiare su un exchanges coi costi, i rischi e i tempi che questo oggi comporta.

Supponiamo ora che Bob abbia un canale con noi col suo nodo Bitcoin Lightning ed un canale con Charlie col suo nodo Litecoin lightning. Bob potrebbe fissare un tasso di cambio e pattuire un ammontare in Bitcoin che dobbiamo pagargli perché lui paghi Charlie in litecoin.

Se poi volessi una porta di ingresso istantanea al mondo Litecoin potrei semplicemente installare un nodo Litecoin Lightning e aprire un canale con Bob.

Avrei sostituito un exchange con qualcosa di molto più veloce, economico e sicuro: potrei cioè mandare un pagamento a Bob condizionato al fatto che Bob mi mandi il corrispettivo in litecoin.

Le Lightning Network diventeranno così il ponte tra diverse crypto che condividono le stesse funzionalità di base necessarie a instaurare dei canali lightning.

I principali attori coinvolti nel progetto oggi

L’idea delle Lightning Network è stata formalizzata in un whitepaper da Joseph Poon e Thaddeus Dryja nel gennaio 2016 ma qualcosa di già molto vicino esisteva nel white paper di Corné Plooy del Febbraio 2013.

Le tre aziende che sono ad oggi il fulcro dello sviluppo dei nodi Lightning, sono:

  • ACINQ (Paris) sviluppa il nodo Eclair in Scala. L’azienda ha una grande capacità di sviluppo e ha realizzato il primo e, per ora unico client per cellulari. @acinq_co, @dpadou
  • Blockstream (Montreal) sviluppa il nodo C-lightning in C. La flessibilità e la vicinanza al linguaggio macchina del C, permette a questa piattaforma le migliori prestazioni e la migliore portabilità su diverse piattaforme  @rusty_twit @snyke
  • Lightning Labs (California) sviluppa LND in Go. Questi ragazzi alimentano una grossa community e hanno realizzato le funzionalità più avanzate (come autopilot e Neutrino). E’ anche l’implementazione più stabile al momento in cui scriviamo @roasbeef @starkness

A seguito del progetto Milano, incontro di due giorni dei team di sviluppo delle tre aziende coinvolte da Blockchainlab Switzerland e BHB Network nel novembre del 2016, è stato sviluppato il protocollo di comunicazione dei nodi e del funzionamento della rete lightning.

Oggi Drija, uno dei redattori del white paper, guida il progetto di implementazione sponsorizzato da MTI DCI che non è ancora compatibile con il resto della rete ma contiene alcune componenti innovative

Stato dello sviluppo e possibili sentieri di consolidamento

La tecnologia è ancora acerba. I futuri sviluppi comprendono parti che sarebbero importanti per un utilizzo industriale:

  • Procedure di backup del nodo affidabili
  • Infrastruttura di sorveglianza delegata terzi. Ogni nodo lightning deve rimanere sempre in ascolto sulla rete Bitcoin per sorvegliare che non avvenga un tentativo di chiusura fraudolenta sul canale. Questo è giustamente considerato difficile per qualsiasi client, ma proibitivo per i dispositivi mobili. Le Watchtowers sono software a cui un utente può delegare la sorveglianza dei propri canali in cambio di una piccola fee.
  • Una migliore struttura delle transazioni attraverso un nuovo operatore nello script del Bitcoin
  • la possibilità di togliere e aggiungere bitcoins ad un canale mantenendo il canale aperto durante le transazioni sulla rete Bitcoin ed evitare così i tempi di attesa che queste operazioni normalmente richiederebbero (splicing).

ed alcune altre.

Nonostante ciò alcuni merchant hanno aperto sulla rete ufficiale ed è già possibile fare acquisti di beni e servizi utilizzando questo canale di pagamento.

Un domani, le lightning Network permetteranno scambi istantanei e sicuri tra le diverse cryptocurrencies e micropagamenti ad elevata frequenza. Sono innumerevoli gli scenari possibili davanti a noi; e uno dei più affascinanti è quello che immagina un’economia, in cui il consumo di servizio può essere pagato al secondo ed in cui le necessità di capitale e di credito dovute alla viscosità nel movimento del denaro verrà’ ridotta drasticamente.

Risorse per approfondimento:

Gabriele Domenichini
Gabriele Domenichini
Gabriele Domenichini è un investitore interessato all’aspetto tecnologico del Bitcoin. Il suo Family Office (GDTRE srl) ha effettuato investimenti nell’area Lightning Networks e nello specifico in Blockstream e Lightning Labs. GDTRE ha altre partecipazioni in aziende come Ledger e The Rock Trading. Gabriele collabora con la società Blockchainlab Svizzera ed ha presieduto assob.it, l’associazione italiana per lo sviluppo delle tecnologie blockchain per due anni.
RELATED ARTICLES

MOST POPULARS

GoldBrick