Capitolo 3 – BLOCKCHAIN
3.4 Cosa sono i fork?
3.4.3 Perché si arriva ad un fork: il problema della scalabilità
Si può arrivare ad un fork per diverse ragioni, ma il motivo primario rimane sempre la divisione delle community, che hanno visioni divergenti e quindi, non trovandosi d’accordo, provvedono alla scissione della Blockchain.
Il tema principale che porta la comunità a dare vita ad un fork è quello della scalabilità. Nel caso della Blockchain di Bitcoin, ad esempio, si parla di una rete che nasce con l’intenzione di processare le transazioni ogni 10 minuti; questa tempistica è correlata con la quantità di transazioni da portare a termine ed il numero di
87
partecipanti. Nel 2017 si è assistito ad un aumento vertiginoso della domanda di criptovaluta, che si è tradotta in un rallentamento dei tempi di elaborazione dei blocchi della Blockchain.
Il motivo per cui si arriva ad un fork è quindi la divisione di pensiero tra i membri della community, infatti alcuni vogliono mantenere la struttura tradizionale della Blockchain, mentre gli sviluppatori ritengono opportuno aumentare il volume dei blocchi e delle transazioni, con il fine di rendere le registrazioni più rapide. Tutto questo ha portato ad alcuni fork, dai quali sono state generate criptovalute come Bitcoin Cash o Bitcoin Gold.
3.4.3.1 Lightning Network
Riprendendo ciò che è stato detto in precedenza, il problema della Blockchain di
Bitcoin è proprio il fatto che questa disponga di uno spazio limitato. Ad esempio, se facessimo anche solo 5 transazioni al giorno, che corrispondono a circa 1 KB, si occuperebbero più di 27.000 GB solo in Italia ogni anno; la Blockchain attualmente può crescere solo di 200 GB all’anno. Si può facilmente capire che con questa tecnologia non riusciremmo a coprire neanche le transazioni fatte solo in Italia in un anno. Per di più vi è un limite di capacità, cioè possono essere validate meno di 7 transazioni al secondo.
Una soluzione banale potrebbe sembrare quella di ingrandire lo spazio. Questo però è un trade-off, cioè più si ingrandisce la dimensione del blocco più è facile fare transazioni e tutte rimarrebbero per sempre sulla Blockchain. Se, d’altra parte, riducessimo la dimensione del blocco, chiunque potrebbe validare le transazioni e chiunque potrebbe avere un accesso trustless alla blockchain; in questo modo le
88
transazioni diventerebbero così costose che potrebbero riguardare solo scambi di petroliere o portaerei.
In entrambi i casi c’è un rischio di centralizzazione, cioè potrebbero emergere delle strutture per gestire queste tecnologie che non sarebbero più distribuite tra la popolazione mondiale, ma verrebbero accentrate in aziende più grosse. Il problema è che così facendo si perderebbero alcune delle proprietà fondamentali della Blockchain di Bitcoin, ossia quella di resistere alla censura, di trasmettere liberamente a qualsiasi ora del giorno e della notte e di fare transazioni a livello globale.
Per tutta questa serie di motivi nasce il Lightning Network, cioè la possibilità di scambiare bitcoin tramite canali di pagamento. Per spiegare cosa sia, possiamo immaginare una stratificazione di protocolli (come Internet), in cui ogni strato rappresenta la base per costruire nuove implementazioni. Per cui, in questo caso, lo strato 1 è rappresentato dalla Blockchain e lo strato 2 è il Lightning Network.
In questo modo si passa dal limite di 12 transazioni al secondo alla possibilità di effettuarne milioni, ma anche miliardi al secondo. Le transazioni non coinvolgono più tutti i nodi della rete Bitcoin, ma è una specie di partizionamento, che non dipende più dalle tempistiche della Blockchain, ma unicamente dalla velocità delle tecnologie di connessione utilizzate, cioè dalla banda.
Possono essere fatte milioni di transazioni istantanee e definitive, come se fosse uno scambio di contanti, per di più quasi gratuite. È così che diventano possibili anche i nanopagamenti, quindi è possibile comprare 1 caffè in bitcoin.
Come funziona il Lightning Network? Immaginiamo che la Blockchain sia una specie di notaio incorruttibile terzo e noi vogliamo fare un canale di pagamento; creiamo quindi un fondo, mettendo a disposizione del denaro in un contratto (uno
89
smart contract), che registriamo dal notaio sopra citatato. Se la controparte rompesse l’accordo potremmo rivolgerci alla corte per ottenere il rimborso. Invece per chiudere il contratto potremmo farlo noi unilaterlamente, potrebbe farlo la controparte in modo unilaterale oppure potremmo chiuderlo con un accordo tra le parti.
Si va così a costituire uno smart contract, argomento che verrà trattato in modo approfondito nel prossimo paragrafo, il quale ci permettere di costruire un canale, che è un modo che hanno due persone per scambiare off-chain (è come un conto aperto). “Creare un canale” significare riservare del denaro in un deposito per alimentarlo, “aggiornare il canale” significa fare un pagamento e “chiudere un canale” significa non poterlo più utilizzare, tornando in possesso del residuo di fondi rimasti sul canale ora disponibili per fare nuove transazioni Bitcoin.
L’apertura del canale è la transazione di fondazione, cioè il deposito del denaro che decreta la nascita di un canale di pagamento tra due individui; ogni volta che verrà effettuato un pagamento tra le parti del canale si parlerà di “commitment transaction”. Cosa viene scritto quindi sulla Blockchain? Solo l’apertura e la chiusura del canale, ossia le fasi che avvengono on-chain, quindi facendo delle transazioni in bitcoin classiche, che vengono minate, ecc. L’aggiornamento del canale, ossia l’operazione più frequente di pagamento, invece avviene off-chain, per cui non occupa spazio sulla Blockchain e non ha problemi di scalabilità; la parte off-chain infatti dipende solo dalla velocità di comunicazione e dalla tecnologia Lightning Network.
L’apertura di un canale avviene attraverso uno scambio di informazioni ed è di tipo trustless, ciò la rende sicura; in questo modo è sempre garantita la chiusura del canale ed il funzionamento.
90
Il pagamento avviene attraverso uno scambio di firme, con cui si aggiorna lo stato del canale. Quando una delle due parti decide di interrompere il servizio, viene pubblicata sulla Blockchain l’ultima transazione che è stata fatta, cioè l’ultimo scambio di denaro. Questo perché tutte le transazioni Lightning Network, che avvengono off-chain, sono transazioni bitcoin vere e proprie, che possono essere messe sulla Blockchain.
Se la controparte fosse in malafede, visto che abbiamo detto che tutte le transazioni fatte off-chain sono valide, potrebbe pubblicare sulla Blockchain il primo stato, ossia la prima transazione fatta sul canale, traendone un guadagno. Onde evitare questo problema, tra gli scambi di firme che avvengono tra le parti, ci sono anche delle firme di “transazioni punitive”, tali per cui se una parte prova a frodare l’altra, questa può “punirla” e prendersi tutto il canale. Esiste quindi un incentivo economico affinché le due parti si comportino correttamente.
Il Lightning Network sposta il valore del Bitcoin dal possesso effettivo della valuta alla promessa di proprietà della stessa.
È prevista anche la possibilità di collegare più canali, quindi che avvengano transazioni anche tra partecipanti a canali diversi, purché un soggetto sia in comune. Facendo un breve esempio, mettiamo il caso in cui ci siano 3 soggetti: A, B e C; A ha un canale aperto con B e B ha un canale aperto con C. Se A volesse trasferire dei bitcoin a C, potrebbe tranquillamente farlo sfruttando il canale che lega C a B.
Grazie alla possibilità di avere una rete di pagamenti organizzata in questo modo,
una parte importante delle transazioni verrebbe condotta al di fuori della Blockchain stessa. Milioni di transazioni potrebbero avvenire istantaneamente ogni giorno, senza la necessità di pagare delle onerose spese di transazione e con una maggiore privacy.
91