Bitcoin e adozione di massa: cosa (e quanto tempo) manca a Lightning Network23 minuti

image_pdfDownload PDF


INDICE:

1) INTRO
2) COME FUNZIONA LIGHTNING NETWORK
3) COSA MANCA A LIGHTNING NETWORK PER L’ADOZIONE DI MASSA
4) PROBLEMA 1: IL BACKUP DEL WALLET
5) SOLUZIONE: IL BACKUP SU ELECTRUM LN
6) PROBLEMA 2: SCARICARE E VALIDARE TUTTA LA BLOCKCHAIN
7) I WALLET SPV CON LIGHTNING NETWORK
8) LE SOLUZIONI A LIVELLO DI PROTOCOLLO
9) PROBLEMA 3: COLLEGARSI PERIODICAMENTE PER CONTROLLARE I CANALI
10) LA SOLUZIONE DI ELECTRUM: LE TORRI DI GUARDIA
11) COSTI DELLE WATCHTOWERS E DINAMICHE DI MERCATO
12) MAGGIO 2020: AFFRONTARE L’HALVING A TESTA ALTA

 

1) INTRO

La tecnologia blockchain non è scalabile, ovvero non può supportare un numero molto elevato di transazioni. Perciò non basta a rendere Bitcoin una buona valuta. La vera adozione di massa richiede che una cryptovaluta possa essere utilizzata illimitatamente da chiunque nel mondo, per gli scambi monetari quotidiani, senza che un utilizzo così intenso mini le sue caratteristiche principali di sicurezza. Mentre gli ultimi arrivati, i truffatori e gli speculatori amanti della lotteria, perdono tempo dietro a ICO e altcoin spazzatura, su Bitcoin si sta sviluppando quella che è vista da molti come la soluzione definitiva: Lightning Network.

Ogni giorno si sente nominare una nuova diavoleria tecnologica in grado di supportare, migliorare e perfezionare Lightning Network: channel factories, multiplex channels, random hop secrets, mutable capacity, compact block filters, e così via. Tuttavia la maggior parte degli utenti non afferra nemmeno il significato più generale di queste nozioni. È parecchio che si sente parlare di strabilianti sviluppi, ma si fatica a vederne le tracce concrete e qualcuno parla già di vaporware. Insomma questo Lightning Network s’ha da fare o no?

Ad oggi in pochi sono in grado di testare appieno LN per via dell’elevata difficoltà tecnica che richiede: ci vuole studio, tempo da investire e anche qualche satoshi da sacrificare. Chi non può toccare con mano rimane senza una chiara risposta alla domanda fondamentale che è naturale porsi: cosa manca, a livello tecnico, perché Bitcoin possa arrivare all’adozione di massa? A che punto è lo sviluppo? Quando i comuni utenti potranno usare serenamente LN pagando il caffé al bar, con una transazione istantanea e (quasi) gratuita? Nei prossimi paragrafi vedremo come l’arrivo del wallet Electrum per Lightning Network può aiutarci a rispondere a queste domande, ma prima è bene spiegare in modo stilizzato e semplificato cos’è e come funziona Lightning Network.

 

2) COME FUNZIONA LIGHTNING NETWORK

(questo paragrafo presenta una descrizione semplificata di LN, per approfondimenti si può attingere dalla guida dedicata sul blog risale al maggio 2016 ed è orgogliosamente la prima guida completa del web sul white paper di LN, disponibile sia in ITA che ENG)

L’idea di base di LN è che l’utilizzo principale della blockchain Bitcoin non sia più quello di un registro dei pagamenti/trasferimenti di denaro. Piuttosto, diventa un registro di smart contracts che rappresentano i “canali” di credito in cui questi pagamenti si muoveranno.

Facciamo un esempio di quanto accade oggi senza LN: Alice deve pagare 1btc a Bob, quindi trasmette alla rete una transazione che viene inclusa da un miner all’interno della blockchain. Una volta nella blockchain, quella transazione occupa circa 200 bytes, come pressapoco ogni altro pagamento fatto da Alice o Bob. Quindi ogni fullnode della rete, che si trovi in Asia, Europa o qualsiasi altro luogo, scarica e processa quella transazione di 200 bytes, per quanto insignificante possa essere (come ad esempio l’acquisto di un caffè). Prima della transazione, il bitcoin trasmesso era associato alla chiave privata di Alice, mentre una volta che la transazione è conclusa, il bitcoin è passato sotto la chiave privata di Bob, il quale ha ora il controllo di quel denaro.

Nel caso di Lightning Network invece, Alice invierà alla rete uno smart contract di “apertura del canale” con Bob, smart contract che viene scritto all’interno della blockchain. Il bitcoin era prima in possesso di Alice, perché associato alla sua chiave privata, ma ora a differenza di prima non passa direttamente alla chiave privata di Bob, rimane invece in una sorta di limbo, le cui regole sono dettate dallo smart contract. Questo smart contract prevede che Bob possa “chiudere il canale”, trasferendo 1 btc alla sua chiave privata e inviando la transazione online così che i miner possano includerla nella blockchain. A quel punto Bob potrebbe dire di aver ricevuto il pagamento di Alice, come avveniva prima dell’invenzione di LN. Tuttavia, per Bob non è necessario compiere l’operazione di chiusura del canale ora, poiché potrebbe farlo anche domani, o fra 10 anni. Lo smart contract lascia la libertà a Bob di scegliere quando chiudere il canale. Dopotutto, finché Bob ha la libertà di poter trasferire in qualsiasi momento, verso la propria chiave privata, i bitcoin che sono ora nel “limbo” dello smart contract, può già effettivamente ritenere i bitcoin come propri.

La cosa interessante è che Bob ha covenienza a mantenere i bitcoin in questo stato di “limbo” per molto tempo. Infatti, lo status dei bitcoin all’interno dello smart contract può essere modificato istantaneamente e senza costi, perché è aggiornabile da Bob e Alice senza scrivere alcun dato ulteriore nella blockchain. Per esempio, Bob può restituire il bitcoin ad Alice semplicemente inviandole dei dati, privatamente da wallet a wallet, senza che la transazione venga trasmessa a nessun altro nella rete Bitcoin. Immaginiamo quindi che Bob restituisca mezzo bitcoin ad Alice: il wallet di Bob invia ad Alice dei dati rivelando alcune informazioni che essa può sfruttare per sbloccare lo smart contract e trasferire verso la propria chiave privata i bitcoin, con priorità rispetto a Bob: si viene a creare così un nuovo “stato” del canale per cui Alice è in possesso di 0,5 bitcoin, Bob degli altri 0,5.

A questo punto, se Bob volesse chiudere il canale inviandosi l’intero bitcoin presente nello smart contract, può ancora tentare di farlo e trasmettere alla blockchain la transazione, ma Alice potrà chiudere il canale con priorità rispetto a lui, portando alla sua chiave privata il mezzo bitcoin che le spetta. Finché i bitcoin rimangono in questo stato di “limbo” i due utenti potranno modificare lo stato infinite volte senza trasmettere mai alcun dato nella blockchain, bensì aggiornando sui wallet di ciascuno (ed esclusivamente sui loro wallet, senza che il resto del mondo ne sappia nulla) le quantità di btc all’interno del canale che spettano a entrambi, oltre che la priorità con cui un utente o l’altro può trasferire i bitcoin verso la propria chiave privata, nel caso si decidesse di terminare lo smart contract e trasferirne all’esterno i fondi.

Gli aggiornamenti dello smart contract fra Alice e Bob sono detti transazioni off-chain perché non vengono registrati sulla blockchain di bitcoin. Il vantaggio è che sono aggiornamenti istantanei e che garantiscono anche privacy, poiché solo Alice e Bob sanno quante transazioni hanno fatto e chi possiede quanti bitcoin.

Ma la cosa più importante e veramente rivoluzionaria è che se Bob a sua volta ha un canale aperto con Charlie, Alice potrà mandare il suo mezzo bitcoin direttamente a Charlie, inviando dei dati che passano per Bob e aggiornando due smart contract, quello inerente il canale fra Alice e Bob e quello fra Bob e Charlie. Se Charlie avesse un canale aperto con Dave, Alice potrebbe inviare il mezzo bitcoin direttamente a Dave, aggiornando tutti gli smart contracts dei canali intermedi, come se fossero delle chiuse che vengono riempite e svuotate, permettendo di regolare i flussi (di credito).

Se la “rete” di canali è molto estesa, potenzialmente chiunque potrà transare con chiunque altro senza mai scrivere all’interno della blockchain alcun byte aggiuntivo a quello della prima transazione di apertura del canale. Ogni persona nel mondo potrà fare praticamente tutte le transazioni che vuole istantaneamente e senza pagare un solo satoshi ai miners. Le uniche transazioni che verranno registrate onchain saranno quelle di apertura e chiusura dei canali, quelle che assicurano i fondi in un cold wallet oppure alcuni trasferimenti per importi molto elevati per cui pagare una fee non è economicamente svantaggioso.

 

3) COSA MANCA A LIGHTNING NETWORK PER L’ADOZIONE DI MASSA

Lo smart contract di apertura del canale fra Alice e Bob menzionato sopra può funzionare senza rischi solo se gli utenti connettono periodicamente il proprio nodo/wallet alla rete internet così da controllare che la controparte non stia tentando una truffa. Ad esempio Bob potrebbe chiudere il canale tentando di inviare fuori dallo smart contract e verso la propria chiave privata l’intero bitcoin, anziché soltanto la metà che gli spetta. Lo smart contract prevede che se Bob chiudesse il canale con un tentativo truffaldino, Alice potrà effettuare una transazione che porta verso la propria chiave privata non solo il suo mezzo bitcoin, ma anche l’altra metà che apparteneva legittimamente a Bob. La transazione di Alice è prioritaria e perciò vince su quella di Bob, che risulta un double spending e non sarà validata dai miners. Il fatto che Alice si accaparri in questo caso tutti i fondi all’interno del canale, inclusi quelli di Bob, rappresenta una “punizione” che serve a scoraggiare Bob dal tentare il furto.

Affinché LN sia utilizzabile dalle masse è necessario che chiunque possa usarlo con un light client, ovvero un wallet che funzioni anche da smartphone, senza richiedere complicate configurazioni tecniche o vincoli onerosi, come azioni particolari richiesti all’utente quali il fatto di collegarsi frequentemente online per controllare lo status dei propri canali aperti ed evitare truffe. Pur esistendo già alcune implementazioni di light wallet, ad oggi non c’è una soluzione che soddisfi pienamente questi requisiti. C’è però una buona notizia: sta per uscire Electrum wallet con Lightning Network, il quale potrebbe rappresentare la vera svolta per la rete Lightning.

Thomas Voegtlin è il principale developer di Electrum, nonché CEO dell’omonima azienda. Da alcuni mesi sta lavorando a pieno ritmo all’implementazione di LN. Oltre ai contributi dati dalla community di sviluppatori (il progetto è come sempre open source) Voegtlin sta impiegando due developer pagati full time e due developer part time. Includendo Thomas stesso si tratta dunque di un team di 5 persone e una prima release del wallet, pensata per gli utenti più tecnici, potrebbe già essere pubblicata entro il 2018, mentre nel 2019 uscirà la versione per l’utente medio.

Electrum LN è sviluppato precisamente con l’intenzione di mettere a disposizione di tutti un light wallet, che non richiede cioè un fullnode validatore dell’intera blockchain, e che risolva tre problemi fondamentali per l’utente comune:

  • Ad oggi non c’è un sistema comodo ed efficace di backup di un wallet Lightning Network. Non c’è quindi la portabilità fra diversi dispositivi e (di conseguenza) neanche la sicurezza di poter recuperare i propri fondi se il proprio computer/device viene danneggiato
  • Oggi i wallet LN devono scaricare e validare l’intera blockchain, per accertarsi di conoscere ogni transazione onchain che avviene nella rete bitcoin (specialmente quelle di chiusura dei canali)
  • Un wallet LN per essere sicuro deve essere sempre online, o quantomeno deve essere online con sufficiente frequenza, per monitorare i canali aperti ed evitare truffe

4) PROBLEMA 1: IL BACKUP DEL WALLET

Sin dalle prime release di Electrum, il backup è stato fra i suoi grandi punti di forza. Voegtlin infatti ha sviluppato il primo wallet HD (Hierarchical Deterministic), ovvero un wallet che utilizza un unico seed (la frase mnemonica) da cui discendono tutte le chiavi private. È sufficiente quindi trascrivere o ricordarsi quella frase per “possedere” i bitcoin corrispondenti alle chiavi private legate a quel seed. Se il proprio device si rompesse, importando il seed in qualsiasi altro portafoglio di tipo HD si tornerà in possesso dei propri bitcoin. Questa caratteristica sarà mantenuta dal wallet, ma soltanto per quanto riguarda i fondi onchain che teniamo su Electrum. Se ci sono anche canali aperti con LN, è un altro discorso.

Fare un backup dei propri fondi all’interno di uno smart contract di Lightning Network è molto diverso rispetto al semplice backup delle chiavi private. In quest’ultimo caso ci si appoggia soltanto alla blockchain, salvandosi le chiavi corrispondenti agli indirizzi che nella blockchain presentano dei bitcoin spendibili, mentre nel caso di LN è necessario salvarsi tutti gli smart contract (on-chain) aperti dal proprio nodo e tutti i successivi aggiornamenti (off-chain) presenti solo sul nostro wallet e quello della controparte.

5) SOLUZIONE: IL BACKUP SU ELECTRUM LN

Thomas dichiara che sta sviluppando una soluzione che mantenga il più possibile la stessa comodità e facilità d’uso che il backup su Electrum ha sempre avuto. L’esperienza utente sarà molto simile a quella attuale e sarà possibile inviare, ricevere e fare backup dei fondi sia col metodo tradizionale su blockchain che con LN (su due tab separati dell’applicazione), senza che l’utente noti una grossa differenza. Per il backup del canale Lightning, i dati saranno spediti a un servizio terzo on cloud, ma saranno crittati lato utente. Qualora dunque il nostro device o pc venisse smarrito o si rompesse, l’utente potrà ripristinare interamente il wallet inclusi tutti i canali aperti, senza che il servizio on cloud sappia nulla delle nostre informazioni, poiché crittate e accessibili solo lato client.

 

6) PROBLEMA 2: SCARICARE E VALIDARE TUTTA LA BLOCKCHAIN

Oltre al backup, il problema più grosso a livello di processo è il fatto di dover far girare un fullnode bitcoin per constatare che non ci siano tentativi di frode. Non tutti gli utenti hanno la capacità o la volontà di mantenere un fullnode in casa che sia sempre online. Ma anche i più tecnici non vivono volentieri nell’ansia che la propria macchina vada offline, per una qualsiasi ragione, e che una controparte truffaldina colga l’occasione per svuotare un canale. Comunuqe sia, avere la possibilità di mantenere un nodo sicuro anche su smartphone è semplicemente un’opzione in più senz’altro gradita.

In passato un problema analogo, ma in altro contesto, è stato risolto con l’invenzione dei wallet SPV (o light client o litenode), di cui BitcoinJ e poi Electrum sono fra le prime release. Un fullnode scarica e valida ogni singola transazione effettuata sulla blockchain, perciò non può accettare una transazione fasulla, ovvero che spende bitcoin creati dal nulla o bitcoin già spesi e quindi non più disponibili (double spending). I litenode scaricano invece solo i blockheaders, ovvero 80 bytes per blocco (ogni 10 minuti) e non effettuano quindi la faticosa validazione di ogni transazione. 80 bytes per blocco significa, per intenderci, che tutti gli headers dal genesis block di 9 anni fa ad oggi pesano meno di 50MB. Come può quindi un litenode essere sicuro di non accettare transazioni false? Ebbene, quando arriva un pagamento, il litenode controlla in modo praticamente istantaneo e infallibile se questo è presente all’interno del blocco di cui ha scaricato l’header. Nel blockheader c’è il così detto Merkle root (radice), ovvero una breve stringa che “riassume” tutte le transazioni del blocco, le quali sono ordinate in una struttura ad albero detta Merkle tree (vedi approfondimento).

Di quanto presente nel Merkle tree, raffigurato in grafico, l’unico elemento presente nel block header è il rettangolo in cima (numero 1). A partire da questa “radice”, il litenode si connette a un qualsiasi fullnode chiedendo tutti i dati di quel Merkle tree che gli mancano al fine di collegare tale radice alla transazione da verificare (che è il rettangolo 10). Nel caso d’esempio il litenode chiede al fullnode i dati relativi alla transazione 11 e gli hash 3 e 4, che gli permettono di calcolare i rettangoli 5 e 2 e quindi la corrispondenza fra la transazione da validare (10) e il Merkle root (1). Il fullnode non può mentire al litenode inviandogli in risposta dei dati falsi, poiché per produrre una risposta falsa necessiterebbe di un’incredibile quantità di calcolo (e il litenode si aspetta una risposta pressoché immediata), perciò l’utente può essere certo che la transazione sia reale e non una truffa. Questo è il meccanismo che permette ad oggi di utilizzare in sicurezza wallet bitcoin su semplici smartphone, richiedendo quindi risorse hardware e software davvero minime.

 

7) WALLET SPV CON LIGHTNING NETWORK

Il fullnode che viene interrogato dal wallet SPV, anche se non può mentire producendo dati falsi, potrebbe “non dire tutta la verità”, quindi “mentendo per omissione”. In poche parole, il fullnode può nascondere al wallet SPV alcune transazioni che sono avvenute.

Nel caso di un wallet SPV tradizionale questo significa che potremmo non sapere di aver ricevuto un pagamento, ma in nessun caso saremo “ingannati” ricevendo un falso pagamento. Questo restringe le possibilità di frode praticamente a zero. Le vie del demonio sono infinite, ma per ingannare un wallet SPV si dovrebbe circondarlo di fullnode che omettano tutti la stessa transazione, assicurandosi che il wallet SPV non si connetta in alcun modo a nessun altro fullnode onesto, magari limitando lo spettro di nodi raggiungibili mettendo delle pesanti restrizioni agli indirizzi IP (restrizioni attuate dal provider di rete?), insomma un provvedimento del tutto improbabile. Tutto questo soltanto per far sì che l’utente non sappia che un pagamento ricevuto sia stato davvero ricevuto, cosa di cui l’utente si può comunque accertare andando su qualsiasi sito come blockchain.info o altri blockexplorer. Anche se ingannato, è difficile immaginare come l’utente dovrebbe per questa ragione essere indotto a fare un pagamento verso il “truffatore” e quindi perdere soldi a beneficio di quest’ultimo. Tale situazione è quindi del tutto remota e improbabile, al punto che non se ne è mai avuto notizia in tanti anni di esistenza dei wallet SPV.

Se l’omissione di alcune informazioni non è critica per i wallet tradizionali, lo stesso non vale per quelli che usano Lightning Network. Tornando all’esempio di Alice e Bob, se dai fullnode cui si collega Alice è omessa la transazione di chiusura del canale, Alice potrebbe non venire a conoscenza del fatto che Bob ha terminato lo smart contract inviandosi l’intero bitcoin, quando invece il balance corretto dovrebbe riportare 0,5 bitcoin per Alice e 0,5 per Bob. Se Alice non lo sa, non invierà alla blockchain la sua transazione di chiusura del canale prioritaria su quella di Bob, dove mette in sicurezza i fondi spedendoli alla propria chiave privata (tale transazione di Alice è detta in gergo “breach remedy”). La menzogna per omissione (“lie by omission”) è dunque un problema per i light wallet con Lightning Network, mentre non lo è per gli SPV tradizionali.

 

8) LE SOLUZIONI A LIVELLO DI PROTOCOLLO

Vi sono due approcci diversi per arginare il problema di sicurezza degli SPV con Lightning Network: uno è implementare un accorgimento a livello di client, come vedremo che fa Electrum, l’altro (più drastico) è quello di modificare il protocollo stesso di Bitcoin. Se si volesse seguire quest’ultimo approccio, secondo Thomas Voegtlin la soluzione migliore sarebbe quella di includere nel block header un hash che sia il prodotto del Merkle tree di ogni UTXO della blockchain, ovvero di tutti i bitcoin spendibili. La radice (root) di tale albero verrebbe scritta nel block header e quindi scaricata dai wallet SPV. A partire dalla radice, il wallet controlla la transazione di apertura del canale facendosi passare dai fullnode ogni ramo del Merkle tree necessario a controllare che gli output dello smart contract siano ancora UTXO spendibili (come per il Merkle tree delle transazioni, il fullnode non può mentire). Se quindi gli output fossero già stati spesi, significa che il canale è stato chiuso dalla controparte malevola e quindi l’utente invierà alla blockchain la breach remedy.

Con un upgrade fork di questo tipo, l’utente non avrebbe più bisogno di far girare un fullnode per utilizzare in sicurezza Lightning Network, dovrebbe soltanto assicurarsi di collegare periodicamente online il proprio SPV per scaricare i block header e controllare che i canali siano ancora attivi. Tuttavia, se vogliamo wallet LN operativi il prima possibile, non possiamo aspettare un nuovo fork che al momento non è nemmeno in discussione. Inoltre, se anche il wallet SPV non dovesse più preoccuparsi della menzogna per omissione, sarebbe comunque costretto a collegarsi alla rete con una certa frequenza, per poter ricevere le informazioni dai fullnode. Electrum quindi non farà affidamento a una soluzione di questo tipo.

 

9) PROBLEMA 3: COLLEGARSI PERIODICAMENTE PER CONTROLLARE I CANALI

Ad oggi le principali implementazioni di nodi Lightning Network impostano di default un locktime dei fondi nel canale di 144 blocchi (ovvero 24 ore). Questo significa che se Bob volesse truffare Alice chiudendo il canale, questa avrebbe fino a 24 ore di tempo per inviare la breach remedy e recupeare i propri soldi. Questo arco temporale è personalizzabile dagli utenti che aprono il canale e ci si può aspettare che, quando la rete LN sarà a regime, i tempi di locktime siano molto più lunghi, ad esempio 2 settimane piuttosto che 24 ore. Infatti se Alice ha più tempo per intervenire, ha molte meno probabilità di essere truffata. D’altro canto, poiché oggi LN è usato principalmente per scopi di testing, i tempi sono ridotti al fine di poter recuperare più in fretta i fondi se si vuole chiudere uno smart contract e liberare i bitcoin dallo stadio di “limbo”. Rimarrà comunque sempre un trade-off fra comodità di poter recuperare velocemente i propri fondi onchain e il rischio di non intervenire in tempo per evitare una truffa. È chiaro comunque che non si può basare il sistema di sicurezza di tutta una rete di pagamenti sul fatto che gli utenti siano costretti a monitorare i propri canali, rischiando di essere truffati e perdere i soldi se non lo facessero. Anche se il locktime fosse di due settimane o un mese, ognuno dovrebbe mettere in conto la possibilità di non riuscire ad accedere al proprio wallet anche per un periodo molto più lungo, senza tuttavia riscontrare problemi.

 

10) LA SOLUZIONE DI ELECTRUM: LE TORRI DI GUARDIA

Electrum intende risolvere sia il problema 2 (necessità di validazione della blockchain) che il problema 3 (necessità continua di monitoraggio dei canali) con un software chiamato watchtower. La “torre di guardia” sarà implementata già nella prima release di Electrum, quella per gli utenti più tecnici. La watchtower è un fullnode che scarica l’intera blockchain e monitora i canali con l’obiettivo di far scattare la breach remedy in caso di rilevato tentativo di frode. L’utente può installare la watchtower su un pc di casa sempre connesso a internet, o su un server preso in affitto, dal quale monitorare lo smartphone che usa abitualmente per scambiare Bitcoin. Si potrà poi utilizzare la watchtower non solo per monitorare i propri canali, ma anche quelli di di terze persone, gratuitamente o chiedendo in cambio un contributo, ad esempio un canone mensile oppure una parte dei bitcoin recuperati dal truffatore quando la watchtower intercetta un tentativo di frode. Infine nel 2019 Electrum rilascerà la versione del software pensata per tutti gli utenti, anche quelli meno tecnici, la quale si collegherà al servizio di watchtower offerto dall’azienda Electrum. Questo significa che l’utente potrà usare in sicurezza il wallet SPV Electrum senza avere alcun fullnode, senza validare l’intera blockchain e senza doversi preoccupare di essere periodicamente online a controllare i propri canali. Dovrà fidarsi però di una watchtower. Se non si fida della watchtower di Electrum, potrà collegarsi ad un’altra a piacere (o anche più d’una, presumibilmente). Se infine non si fida di alcuna terza parte, potrà sempre installare una watchtower su una propria macchina, oppure scegliere di fare solo transazioni onchain.

 

11) COSTI DELLE WATCHTOWERS E DINAMICHE DI MERCATO

Le dinamiche economiche fra utenti e watchtowers non sono chiare ad oggi, poiché non esiste un mercato concorrenziale in cui più watchtowers diverse offrono lo stesso servizio a molti utenti, non essendoci per il momento nemmeno wallet SPV con Lightning Network pensati per essere indipendenti dai fullnode (almeno fino al rilascio di Electrum LN). A dire il vero c’è un’eccezione significativa: qualsiasi wallet LN SPV (come Eclaire) usato solo per pagamenti in uscita e non in entrata, è sicuro anche senza un fullnode d’appoggio né un monitoraggio dei canali. Infatti il truffatore può solo trasmettere sulla blockchain uno stato precedente del canale, che nel caso di un canale a senso unico, dove l’utente paga soltanto, significa lasciare più soldi a quest’ultimo. Insomma in quel caso truffare chiudendo un canale è tecnicamente impossibile. Se però si vuole utilizzare un nodo completo, sia per pagare che ricevere, monitorare i canali è importante.

Inizialmente l’utente potrà affidarsi alla watchtower dell’azienda Electrum, stipulando un contratto di abbonamento. Questo permetterà di fare una prima analisi delle dinamiche economiche nel mercato. Può essere che molti utenti utilizzeranno wallet SPV senza watchtowers, se nell’uso quotidiano si rileverà che statisticamente i tentativi di frode sono estremamente sporadici e che, quando avvengono, sono puntualmente intercettati e puniti. Gli utenti potrebbero anche sentirsi particolarmente sicuri a far uso di wallet SPV senza watchtowers specialmente se hanno canali aperti esclusivamente con entità fidate: ad esempio un canale con un amico, uno con la catena di supermercati preferita, uno con Amazon ed e-bay, insomma tutti partners che difficilmente attueranno una frode. E per la teoria dei 6 gradi di separazione potrebbero bastare questi canali per trovare un percorso mediante cui arrivare a transare con chiunque nel mondo.

Quando verrà a crearsi un vero mercato e una più fitta rete di nodi SPV che effettivamente eseguono transazioni LN, sarà più chiaro quale tipologia di watchtower sarà prevalente nell’ecosistema Bitcoin:

  • La wathctower privata:
    si tratterà probabilmente di aziende specializzate nel monitoraggio dei canali. Per funzionare, l’utente passa alla watchtower l’identificativo della transazione di apertura del canale (cioè dello smart contract per come appare in blockchain). In linea teorica, questo fatto ha due lati negativi: anzitutto, il rapporto economico fra l’utente e l’azienda sarà probabilmente un contratto di abbonamento, ad esempio con un canone mensile pagato dall’utente; secondariamente, se la watchtower fosse sotto attacco o presa di mira da un autorità istituzionale, potrebbe rivelare informazioni relative al canale dell’utente, la cui privacy è dunque a rischio. Come dichiarato da Thomas, la release del nuovo Electrum nel 2019 offrirà questo tipo di servizio per quegli utenti di wallet SPV che desiderano una watchtower, ma non sono intenzionati ad installarne una in proprio.
  • La watchtower “crypto-anarchica”:
    l’utente passa in modo anonimo alla watchtower soltanto le transazioni di aggiornamento di stato dello smart contract (le commitment transactions). La watchtower dunque non conosce l’ID della transazione sulla blockchain né l’identità dell’utente, ma salva un grande quantitativo di transazioni offchain, ovvero si salva i cambi di stato degli smart contract. Se un contratto viene violato chiudendo illegittimamente il canale, la watchtower se ne accorgerà poiché vengono spostati dei bitcoin che, secondo una delle tante transazioni nel proprio archivio, non dovrebbero essere spesi; quindi fa scattare la breach remedy e il truffatore viene spogliato di ogni bitcoin nel canale. Il guadagno della watchtower è esclusivamente una percentuale dei bitcoin recuperati quando si intercetta un tentativo di truffa. Con questi bitcoin la watchtower deve coprire il costo di scaricare e salvarsi tutte le transazioni offchain fatte dai nodi che si affidano ad essa. Insomma, per essere economicamente sostenibile, la watchtower deve sperare che ci siano sufficienti tentativi di truffa nella rete per coprire i suoi costi. Motivo per cui non è molto chiaro se questa tipologia avrà molto successo.

Personalmente immagino che in futuro molte watchtower non siano strettamente né di un tipo né dell’altro. Ad esempio, i membri di una famiglia, oppure gli abitanti di un condominio o un quartiere, o i membri di un circolo o associazione potrebbero condividere la stessa watchtower. Magari i dipendenti di un’azienda avranno gratuitamente una watchtower a disposizione, come benefit aziendale, oppure l’avranno i suoi clienti, poiché l’azienda offre quel servizio a scopo promozionale o per sviluppare un sentimento di “loyalty” del cliente; Il che può essere efficace soprattutto per quelle aziende che vedono continui pagamenti con l’utente, come un grosso distributore. Non possiamo neanche escludere l’ipotesi che in futuro ogni famiglia abbia il proprio fullnode con LN sempre connesso alla rete. Dopotutto, 20 anni fa non avremmo mai pensato che praticamente chiunque avrebbe avuto una connessione internet e un personal computer in casa, o che da lì a pochi anni pressoché chiunque avrebbe quotidianamente inviato e ricevuto mail, o gestito la propria identità digitale sui social network. Insomma, i tempi cambiano e le persone si adeguano.

 

12) MAGGIO 2020: AFFRONTARE L’HALVING A TESTA ALTA

Il 21 maggio 2020 ci sarà il prossimo halving di Bitcoin, come ogni 4 anni. La produzione mondiale scenderà da 12,5 a 6,75 bitcoin per ogni blocco, dimezzandosi. Le leggi economiche fondamentali dicono che a parità di domanda, se l’offerta diminuisce, il prezzo aumenta. Teorema che ha avuto la più cristallina delle conferme empiriche nei due halving passati, dal genesis block ad oggi.

Il primo halving è avvenuto il 28 novembre 2012 quando il prezzo di Bitcoin era 12$. Sei mesi dopo, a maggio 2012, il prezzo era più che decuplicato (130$). Da lì a poco avrebbe avuto un’esplosione che ha portato alla grande bolla del 2013 (superando i 1000$ a novembre 2013).

Il secondo halving è avvenuto il 7 luglio 2016 quando il prezzo era 650$. Sei mesi dopo, a gennaio 2017 il prezzo era quasi raddoppiato (oltre 1000$) e da lì a poco avrebbe avuto un’esplosione che ha portato alla grande bolla del 2017 (quasi 20,000$ a dicembre)

Nessuno sa quale sarà il prezzo di Bitcoin, ma se vogliamo tentare una previsione razionale, da qui al 2020 possiamo tenere conto di due soli dati come certezze: 1) la tecnologia Bitcoin sta migliorando, rendendo Bitcoin qualitativamente migliore 2) l’offerta monetaria si dimezzerà. Basandoci su questi due punti fermi, è razionale affermare oggi che il prezzo di Bitcoin probabilmente salirà, è irrazionale dire il contrario. Questa è semplicemente la migliore conclusione cui possiamo arrivare coi dati e le informazioni certe oggi a nostra disposizione. Premesso ciò, nel 2020 ci si può quindi aspettare una nuova ondata di utenti attirati anche dal prezzo in crescita, di conseguenza un boom dell’utilizzo dei servizi Bitcoin e una espansione dei volumi di transazioni. Verso la fine del 2017 la rete e l’ecosistema Bitcoin non erano ancora pronti a gestire quell’enorme afflusso di nuovi entrati, l’impennata del costo medio per transazione su blockchain parlava chiaro:

In quel momento non c’era alcuna alternativa per Bitcoin: o pagavi quelle commissioni, o non transavi. Ma alla prossima corsa folle verso la luna, vogliamo arrivare preparati. La rete Bitcoin e tutti i servizi dovranno essere pronti per accogliere la massa entrante e servizi, wallet ed exchange devono giocare d’anticipo preparando il terreno ai nuovi arrivati. Per il momento il network si sta comportando molto bene con miglioramenti su tutti i fronti:

  • I principali servizi ed exchange fanno batching delle transazioni, abbattendo così il numero di transazioni (quindi il costo di commissione, vedasi grafico sopra), nonostante il numero di pagamenti sia aumentato, mostrando un incredibile efficientamento dell’uso delle risorse
  • L’adozione di SegWit è in costante crescita (da 0 al 50% circa in 1 anno, vedi grafico), il che permette di sfruttare uno spazio aggiuntivo al blocco (seppure il blocksize sia fisso a 1MB) tanto da poter anche raddoppiare la capacità della blockchain
  • I wallet iniziano ad adottare indirizzi bech32 (per primo Electrum e a seguire Bitcoin Core, Samourai, Coinomi, Wasabi e altri) che permettono di efficientare ancora di più lo spazio occupato dalle transazioni (vedi wallet compatibili)

Ma il vero punto nevralgico è Lightning Network, sia per una questione di scalabilità che di maggiore privacy degli utenti. ll wallet Electrum sarà parte fondamentale di questo rinnovamento tecnologico, rappresentando finalmente la vera svolta per Lightning Network? Staremo a vedere. Senza alcun dubbio albertodeluigi.com farà la sua parte, pubblicando una guida dedicata a Electrum LN quando verrà rilasciato ufficialmente il software.

 

Segui gli aggiornamenti quotidiani sulla pagina facebook: https://www.facebook.com/albertodeluigi.news
Iscriviti alla newsletter del blog per ricevere una notifica ad ogni nuovo articolo pubblicato

 

Share this page:
Facebooktwitterredditpinterestlinkedinmail

Potrebbero interessarti anche...

24 risposte

  1. Daniele ha detto:

    W il Sacro Blog!

  2. Alessandro ha detto:

    Scusa la domanda, ma chi tiene in piedi fisicamente il “database” delle transazioni off-chain?

    • Alberto De Luigi ha detto:

      Sono scritte nel tuo wallet e nel wallet dell’utente che ha il canale aperto con te. Qualora ci sia una watchtower, anche nel nodo della watchtower

  3. Francesco Marzolo ha detto:

    Ciao Alberto. Una domanda riguardo le Watchtower (WT) in Lighting Network (LN). Da quello che sai tu o che ti immagini, riprendendo l’esempio del nodo fiducioso che non le usa perché si fida del peer Amazon o altre entità fidate: nel momento in cui con i 6 gradi di separazione si può connettere in LN con chiunque, i suoi canali saranno aperti per nodi interposti con chiunque, non solo con nodi in qualche modo trusted. In questa ipotesi di LN molto pervasivo, i nodi che si sono “fidàti dei peer fidàti” sono ancora al sicuro oppure no?
    In altre parole, ad un livello un po’ più alto, LN può essere un sistema che i piccoli si possono permettere senza WT o in breve WT diventa un prerequisito per chiunque?
    Grazie in anticipo

    • Alberto De Luigi ha detto:

      (scusa il ritardo, mi era sfuggito il tuo commento all’approval) Non devi fidarti del nodo di cui si fida il nodo a cui sei collegato con un canale aperto. Nel senso: se sei collegato ad amazon e per pagare Alice la transazione passa da te ad amazon e da amazon a Mallory, per arrivare ad Alice, se amazon si fa scammare da Mallory il problema non è tuo, ma di amazon, perché è solo amazon che perde soldi.
      Comunque sia, la WT è necessaria solo se 1) non sarai online per più tempo di quanto impostato da te, all’apertura del canale, per poter trasmettere la breach remedy transaction (e potresti aver impostato un tempo molto lungo, ad es. un mese) e solo se 2) dopo che è passato questo lungo periodo di tempo in cui non eri online, un nodo con cui hai un canale diretto (e non il peer de tuo peer) prova a scammarti (e in genere ha parecchi disincentivi a provarci). Comunque sia, avere una watchtower in casa (prefabbricata e già configurata, che va solo collegata) potrebbe diventare qualcosa di molto comune in futuro e, soprattutto, molto poco costoso

  4. Valerio ha detto:

    Come sempre… grazie Alberto!! Articolo bellissimo, chiaro e puntuale… 🙂

  5. Daniele ha detto:

    Aaaaaah, come bramo un tuo articolo sul marasma che sta accadendo tra ABC ed SV! In che epoca viviamo, ragazzi.

  6. Alessandro Thomas ha detto:

    Complimenti! Articolo dettagliato e preciso come sempre!
    Se posso chiedere una curiosità…
    Nelle ultime settimana è stata messa un bel pochetto di liquidità nei canali LN da parte di LNBIG.com di cosa si tratta? qualche benefattore che ce l’ha messa per incentivarne l’uso?

    • Alberto De Luigi ha detto:

      (scusa mi era sfuggito il tuo commento all’approval) più che benefattore è qualcuno che punta ad essere un grande hub, un po’ come bitrefill. Fare routing delle transazioni può essere molto profittevole

  7. Dino ha detto:

    Grande articolo, sto provando da un po il LN con il wallet Bitcoin Lightning Wallet per android, che permette di effettuare sia tx in ingresso che in uscita, per ora non ha avuto nessun tipo di problema e sono riuscito sempre a raggiungere tutti i servizi che ho provato. Conosci questo wallet? se si come lo reputi?

    Grazie.

    • Alberto De Luigi ha detto:

      A prima vista sembra avere tutte le carte in regola. Non l’ho ancora provato. L’unica cosa per cui mantengo un po’ di riserbo è il fatto che sia interamente sviluppato da una persona sola (e non è fra i noti dev del settore, né sembra avere legami particolari con essi). Seppure sia open source non c’è molta peer review da altri esperti, per cui lo testerei con cautela. Non per paura di uno scam, ma proprio per possibili bug. Comunque è interessante la scelta di come viene finanziato il server Olympus, ovvero la watchtower di questo SPV. L’autore e dev di questa app ritiene (giustamente) che le channel breaches siano troppo rare per poter far sopravvivere un servizio di monitoring dei canali soltanto su una percentuale del ricavato quando viene intercettata una frode; soprattutto però, un sistema di questo tipo è un male perché porta incentivi pericolosi: la watchtower avrebbe un vantaggio economico se ci fosse un maggior numero di channel breaches, il che può portare a un conflitto di interessi.
      Allora il metodo di finanziamento del server è diverso, semplice ma forse efficace: 1 satoshi per ogni commitment transaction, ovvero per ogni cambio di balance all’interno di un canale.
      Tu lo stai usando collegato alla watchtower di Olympus oppure non paghi alcun servizio e semplicemente hai la cautela di tornare online ogni 1440 blocchi (ovvero ogni 10 gg circa)?

      • Dino ha detto:

        Io l’ho scoperto tramite bitrefill, che oltre alle ricariche, vende dei canali “vuoti” dove è possibile ricevere pagamenti anche senza possedere btc, loro consigliavano questo wallet.
        Si lo sto usando con il server di olympus, inoltre il wallet fa un backup dello stato del canale su gdrive, in modo tale da recuperare tutto se il cell viene a mancare.

      • Alberto De Luigi ha detto:

        Se lo consiglia Bitrefill potrebbe essere buono davvero. Comunque, per quanto riguarda il servizio, ti riferisci a Thor di Bitrefill. Un’ottima iniziativa. Si paga qualche satoshi per avere un canale aperto con Bitrefill (rimane aperto finché fai transazioni, perché se rimane inattivo viene chiuso dopo 30gg), alimentato da bitcoin messi da Bitrefill, così che puoi ricevere pagamenti su quel canale anche senza aver precedentemente pagato qualcuno usando come via quello stesso canale. Lo linko qui perché può interessare a qualcuno:
        https://www.bitrefill.com/buy/lightning-channel/

      • Dino ha detto:

        Si esatto, io ne ho aperto uno vuoto con thor (bitrefill) e un altro classico con ACQIN (quindi pieno dove non è possibile ricevere pagamenti), poi usando un sito di betting (roulette) si svuota il canale acqin e (in caso di vincita) si preleva e si riempie il thor (il wallet fa creare invoice di ricezione sul canale meno pieno).

  8. Dino ha detto:

    Oggi ho testato la chiusura di un canale, mi sono stati correttamente “rimborsati” i satoshi residui del canale (tolte le fee della tx), sono entusiasta di LN.

  9. Vincenzo ha detto:

    Ciao Alberto, innanzitutto complimenti per gli articoli che scrivi, avrei un piccolo quesito da porre.
    Se ci sarà, come credo tra un paio di anni la massive adoption di BTC su Lightning Network, le transazioni On Chain saranno sempre più rare, e quindi i Miners perderanno interesse, causa diminuizione dei profitti verso quel tipo di business, forse spostandosi su servizi legati alla Lightning. In questo scenario la potenza di calcolo sulla Blockchain dovrebbe diminuire? E la stessa potrebbe subire attacchi?

    • Alberto De Luigi ha detto:

      Ciao, grazie della domanda. Ti rispondo con una metafora. LN è come la metropolitana, paghi l’abbonamento mensile o magari trimestrale per entrare (che è sempre in forma di transazione onchain), ma una volta che sei dentro viaggi dove vuoi. Raramente ti tocca tornare in superficie, magari per allacciarti ad un altra linea metropolitana (se il tuo canale non è sufficiente a raggiungere il destinatario), o per rinnovare l’abbonamento (ricaricare il tuo wallet LN). Se però la strada in superficie è deserta, perché devi andarti a infilare sottoterra? Questo mese potrebbe convenire spostarsi in auto, tanto la benzina la usano in meno e costa un po’ meno, quindi la usi tu. LN è la soluzione a un problema, ovvero i limiti di spazio, ma se non sei in qualche modo limitato, non ti serve nemmeno la soluzione. Ci sarà quindi un equilibrio fra l’utilizzo della rete onchain e offchain. In generale, più è usata l’una, più è usata anche l’altra.
      Considera infine che la normale transazione bitcoin ha sia dei vantaggi che degli svantaggi rispetto a LN, per cui i casi d’uso possono essere diversi.
      In ogni caso, tieni presente che una rete LN che possa servire tutto il mondo sostituendo ogni attuale forma di pagamento monetario richiederebbe molti più megabytes di quanto oggi il blocksize permetta.

  10. Luca De Giglio ha detto:

    oggi volevo darti un piccolo contributo con lightning, ma non ho trovato come farlo.
    Le fee di BTC dal Blue wallet erano il corrispettivo di circa 1,6 €.
    Per caso intendi implementare donazioni in Lightning?
    Grazie, ottimo blog, era una vita che non trovavo qualcosa di questo livello: Home screen sul mio cellulare meritatissimo! 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *