Dual funding

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

Su Lightning Network, i canali sono aperti e finanziati attraverso la transazione chiamata Funding Transaction. Questa transazione nella implementazione iniziale veniva creata e finanziata solo dal nodo che avviava il canale.

È stata in seguito introdotto il Dual Funding, o Collaborative fund, una tecnica utilizzata per aprire un canale che coinvolge due parti che contribuiscono entrambe con una quantità di fondi nella creazione del canale.

In un DFC, Dual Funded Channel, entrambe le parti hanno la possibilità di inviare e ricevere fondi immediatamente una volta aperto il canale.

Prima dei dual funded channels, il modo in cui gli utenti LN si connettevano alla rete era aprire un canale privato e finanziarlo direttamente. Il problema di questo approccio è che a volte porta a canali sbilanciati. I canali sbilanciati si verificano quando solo un lato del canale dispone di fondi. Sono un problema per gli utenti perché possono tradursi in ritardi nei pagamenti, in quanto l'altra parte deve spostare fondi prima di poter inviare un pagamento.

Il dual funding è utile perché permette a entrambe le parti di avere una maggiore flessibilità nell'utilizzo del canale e di ridurre il rischio di perdere i fondi investiti nel canale.

Possiamo indicare tre vantaggi principali dei DFC:

  • È possibile creare un canale con una capacità doppia rispetto ai fondi disponibili. Ad esempio, se avete a disposizione 1 milione di SAT, potete aprire un canale da 2 milioni.
  • Il canale appena aperto è immediatamente bilanciato. Quindi, seguendo l'esempio precedente, potrete inviare 1M e ricevere 1M sul vostro nuovo canale da 2M.
  • Si dividono i costi di apertura del canale.

Tuttavia, il dual funding richiede una maggiore cooperazione e coordinazione tra le due parti per gestire il canale in modo efficace, non tutti i software gestiscono l'apertura di un canale Dual Funded, e in alcuni casi sono necessari dei tool aggiuntivi.

Il Dual funding consiste nella creazione di un canale di pagamento per LN in cui entrambe le parti possono contribuire con fondi. Il protocollo sottostante, chiamato protocollo di creazione del canale versione 2, può essere utilizzato anche per l'apertura negoziata di single funded channels, ma il suo scopo motivante è quello di fornire supporto al Dual funding.

Le prime analisi di LN hanno stabilito che sarebbe stato molto più semplice costruire un software in cui l'utente che richiede l'apertura di un canale di pagamento contribuisse con tutti i fondi a quel canale e pagasse tutte le sue commissioni onchain, chiamati single funded channels. In questo modo si evitava che gli aggressori potessero aprire liberamente o a basso costo nuovi canali, bloccare i fondi della controparte e poi far pagare alle vittime le commissioni onchain per riavere i loro soldi.

Per gli spender, i single funded channels funzionano benissimo. Non appena un canale viene aperto, l'utente può iniziare a spendere i propri fondi con tutti i vantaggi di velocità, efficienza e privacy offerti da LN. Ma i receiver che aprono un nuovo canale a finanziamento singolo non possono utilizzarlo per ricevere fondi finché non li hanno spesi. Questo crea problemi ai merchant che vogliono accettare pagamenti su LN, ma che non sono ancora in grado di pagare una quantità uguale di costi su LN.

Una soluzione a questo problema è quella di permettere ai canali di avere un Dual funding, consentendo immediatamente di spendere in entrambe le direzioni una volta aperto il canale. Non è necessario che i canali a Dual funding inizino con la stessa quantità di fondi da entrambe le parti, quindi un commerciante che vuole essere in grado di ricevere una quantità significativa di bitcoin può avere bisogno di contribuire solo a una piccola parte della capacità totale del canale.

Il protocollo a Dual funding può essere utilizzato anche per aprire nuovi single funded channels. Questo può avere dei vantaggi quando le parti partecipanti vogliono utilizzare la capacità del protocollo di comunicare le preferenze dei nodi e trovare valori reciprocamente accettabili per i vari parametri del canale.

Il Dual funding può essere utilizzato in combinazione con le nuove proposte di annuncio dei nodi che possono aiutare gli acquirenti e i venditori di capacità inbound a trovarsi reciprocamente in modo decentralizzato.

Il Dual funding richiede che ogni parte riveli la proprietà di uno dei propri UTXO all'altra parte. Come altri protocolli in cui ciò è richiesto (come coinjoin e payjoin), questo può essere abusato da un aggressore per ottenere informazioni su chi possiede quale UTXO. Sono stati discussi diversi approcci per limitare questo problema.


aggiornato il 2022-12-09