Come Taproot rende il Lightning Network più privato ed efficiente.
Nel mese di febbraio la comunità Bitcoin ha dedicato molte energie a discutere di come Taproot, un soft fork attivato dalla rete alla fine del 2021, possa migliorare il Lightning Network in termini di privacy e costi. Ma andiamo con ordine: cos’è il Lightning Network e perché Taproot potrebbe rappresentare una svolta?
Lightning Network – cos’è e come funziona
Il Lightning Network è una soluzione “layer 2” costruita sopra Bitcoin, pensata per rendere le transazioni più rapide ed economiche. Funziona aprendo dei canali di pagamento tra due utenti che vogliono scambiarsi fondi frequentemente.
Supponiamo che Alice e Bob vogliano aprire un canale. Per farlo, pubblicano una transazione on-chain che invia soldi ad un indirizzo speciale, un multisig 2-di-2. Una volta confermata la transazione, il canale è operativo e Alice e Bob possono iniziare a scambiarsi pagamenti off-chain. Quando decidono di chiudere il canale, pubblicano un’altra transazione on-chain che distribuisce i fondi alle rispettive parti.
Ciò permette ad Alice e Bob di scambiarsi potenzialmente infiniti pagamenti utilizzando solo due transazioni on-chain: una per aprire il canale e una per chiuderlo. In tal modo, non solo si riducono drasticamente i costi delle transazioni, ma si aumenta anche la privacy, dato che Alice e Bob possono scambiarsi fondi off-chain senza dover pubblicare ogni singolo pagamento sulla blockchain.
Tuttavia, c’è un aspetto da tenere presente: l’apertura e la chiusura di un canale possono risultare riconoscibili on-chain. In alcuni casi, come nelle chiusure non cooperative, le transazioni sono particolarmente evidenti; in altri, come nelle aperture e nelle chiusure cooperative, sono meno facilmente individuabili, ma comunque distinguibili rispetto alle “classiche” transazioni single-sig.
Canali privati o pubblici
Una volta aperto il canale, Alice e Bob possono scegliere se tenerlo privato, cioè non far sapere alla rete Lightning della sua esistenza, oppure annunciarlo, permettendo ad altri utenti di usarlo per instradare pagamenti. Grazie alla presenza di tanti canali annunciati, Charlie e Daniela possono scambiarsi fondi anche senza avere un canale diretto tra loro.
Quando Alice e Bob annunciano il loro canale, mandano un messaggio alla rete dicendo:
“Ciao, siamo Alice e Bob e abbiamo aperto un canale. Ecco l’ID della transazione di apertura: <txid>”.
Taproot e i miglioramenti della privacy
Taproot ha introdotto un nuovo tipo di firma in Bitcoin, chiamata firma di Schnorr. Le firme di Schnorr sono particolarmente interessanti perché permettono di usare un trucco crittografico chiamato MuSig.
MuSig consente a più firmatari di produrre insieme una singola firma, che appare come una normale firma generata da un solo utente. Quindi, anche se un canale Lightning usa un multisig N-di-N, la firma risultante è indistinguibile da quella di una singola chiave. In altre parole, agli occhi di un osservatore esterno, una transazione di apertura o chiusura di un canale Lightning basata su Taproot+Musig può apparire come una qualsiasi altra transazione Bitcoin.
Il risultato è un enorme miglioramento in termini di privacy, perché rende difficile distinguere le transazioni Lightning da quelle ordinarie. O quasi…
Domande aperte
Ricordate cosa abbiamo detto prima? Quando Alice e Bob aprono un canale e vogliono renderlo pubblico, devono annunciare alla rete l’ID della transazione di apertura. Pertanto, anche se la transazione on-chain sembra una normale transazione Taproot, l’annuncio stesso rivela che si tratta di un canale Lightning, compromettendo parzialmente la privacy.
Al momento, l’unica implementazione Lightning che supporta i canali Taproot è LND, ma permette di aprire solo canali privati: il protocollo per annunciarli non è ancora pronto, ed è proprio su questo protocollo che ci sono state varie discussioni nel mese di febbraio.
Infatti, esiste una proposta per ampliare il protocollo di annuncio per supportare Taproot. Con tale proposta, quando Alice e Bob vogliono aprire un canale, invierebbero un messaggio alla rete Lightning del tipo:
“Ciao, siamo Alice e Bob e abbiamo aperto un canale taproot. Ecco l’ID della transazione di apertura: <txid>”.
Qui entra in gioco un’interessante proposta avanzata dal developer Johan Halseth: e se, invece di includere l’ID della transazione di apertura nell’annuncio, si usasse una prova zero-knowledge? Tale prova dimostrerebbe che la transazione è avvenuta e che l’UTXO corrispondente (l’output non speso) è ancora valido (ovvero che il canale è aperto), senza rivelare quale sia la transazione stessa.
Il messaggio di apertura diventerebbe quindi:
“Ciao, siamo Alice e Bob e abbiamo aperto un canale Taproot. Ecco una prova del fatto che abbiamo aperto il canale, ma che non rivela quale sia veramente la transazione di apertura: <prova zero-knowledge>.”
Questa specifica soluzione non richiederebbe cambiamenti alla rete Bitcoin, ma solo una tecnologia chiamata Utreexo, al momento ancora in sviluppo.
Dove siamo oggi?
La discussione su come integrare al meglio Taproot nel Lightning Network è ancora in corso. Molti sviluppatori stanno valutando quali primitive crittografiche abbia più senso utilizzare.
Nonostante l’entusiasmo, però, siamo ancora lontani dal vedere Lightning sfruttare appieno il potenziale di Taproot – Bitcoin non è finito! C’è ancora tantissimo spazio per miglioramenti e innovazioni.
In altre parole, il meglio deve ancora venire!