Glossario / Lightning e layer 2
Riserva del canale
- Che cos'è la riserva del canale?
- La riserva del canale è la parte del saldo di un canale Lightning che ciascuna delle due parti non può spendere, trattenuta a garanzia perché imbrogliare con una vecchia transazione di commitment costi sempre qualcosa.
Entrambe le parti stabiliscono una riserva l'una per l'altra all'apertura del canale, e nessuna delle due può scendere sotto di essa finché il canale resta aperto. BOLT 2 suggerisce l'1 per cento del totale del canale e richiede che la riserva sia almeno pari al dust limit, che non può scendere sotto 354 satoshi. Un wallet che mostra 100.000 satoshi ti lascerà spendere poco meno, e quella differenza non è un bug.
Come funziona
La riserva del canale è impostata dal tuo peer, non da te: il campo channel_reserve_satoshis che un nodo invia è il minimo che il nodo all'altro capo deve conservare come pagamento diretto.
Il campo è un numero a 64 bit nel messaggio open_channel, di tipo 32, e di nuovo in accept_channel, di tipo 33, quindi un canale aperto in questo modo porta due riserve, che non devono coincidere. La motivazione della specifica ne indica lo scopo: ciascuna parte mantiene la propria riserva "so it always has something to lose if it were to try to broadcast an old, revoked commitment transaction" (così ha sempre qualcosa da perdere se tentasse di trasmettere una vecchia transazione di commitment revocata). Senza la riserva, chi perde una disputa sul canale non rischia nulla pubblicando un saldo obsoleto e sperando che nessuno guardi.
Due controlli tengono il numero entro limiti sensati. Una riserva deve essere almeno pari al dust limit pertinente, e il canale fallisce subito se il dust limit è il maggiore dei due, perché una riserva che può essere eliminata come polvere non protegge nulla; il canale fallisce anche se entrambi i saldi di apertura sono pari o inferiori alla riserva, lasciando nulla di spendibile. Esiste un'eccezione perché all'inizio solo chi finanzia detiene denaro: un canale nuovo non deve soddisfare entrambe le riserve contemporaneamente, e il protocollo si accontenta di progredire verso di esse.
I canali a finanziamento duale rinunciano al campo. Nel channel establishment v2, open_channel2 e accept_channel2 omettono channel_reserve_satoshis, e la riserva è fissata all'1 per cento della somma dei due contributi di finanziamento, arrotondata per difetto a un satoshi intero, o al dust limit se questo è maggiore. Lo splicing segue lo stesso principio: preleva denaro da un canale attivo e ciò che resta dalla tua parte deve superare la riserva per la nuova capacità. Chi paga le commissioni on-chain sopporta una deduzione in più, poiché, salvo che siano stati negoziati commitment senza commissione, chi finanzia copre la commissione del commitment al di sopra della propria riserva, più un buffer consigliato pari al doppio di quel tasso di commissione.
Dove lo vedi
La riserva del canale è la ragione abituale per cui la cifra spendibile di un wallet Lightning è inferiore al suo saldo.
Su un saldo grande la differenza è invisibile, su uno piccolo no. Una riserva del 1 per cento su un canale da 200.000 satoshi è di 2.000 satoshi, quindi un wallet che vi detiene 2.300 satoshi può inviarne 300 e rifiuta qualsiasi importo superiore, con un errore di routing, non con una spiegazione. Lo stesso limite minimo è presente in ogni canale di sconosciuti che il tuo pagamento attraversa, ed è in parte per questo che le rotte falliscono vicino alle estremità di un canale. Gli operatori dei nodi lo incontrano come il saldo che non si muove mai: apri un canale da 1.000.000 satoshi, fagli passare tutto ciò che puoi, e gli ultimi 10.000 satoshi restano fermi finché il canale non si chiude.
La parte da ricordare: questo denaro è ancora tuo. Torna alla chiusura, cooperativa o forzata, meno la commissione di chiusura. Confrontalo con ciò che un wallet Lightning in autocustodia addebita per farti spazio: la nostra recensione di Phoenix registra 1.000 satoshi per creare un canale, e quella cifra, una volta pagata, è persa. Una riserva è capitale bloccato.
Riserva del canale vs dust limit
La riserva del canale e il dust limit sono soglie minime sotto un importo, provenienti da livelli diversi. Il dust limit è la politica di relay di bitcoin sugli output: sotto di esso un output costa più da spendere di quanto contiene, quindi i nodi rifiutano di inoltrare la transazione che lo crea. La riserva è una regola sui saldi dei canali, scritta nella specifica Lightning per rendere costoso imbrogliare, e vincola solo due peer. BOLT 2 li collega in una sola direzione, richiedendo che una riserva sia almeno pari al dust limit perché l'output che la paga resti trasmissibile; nulla spinge il dust limit verso l'alto, verso la riserva.