Vai al contenuto
buybitcoinsmart

Glossario / Lightning e layer 2

Uscita anchor

Che cosa sono le uscite anchor?
Le uscite anchor sono le due vie di fuga da 330 satoshi collegate a una transazione di commitment Lightning, una legata alla chiave di ciascuna controparte, così l'una o l'altra può alzare la commissione di una chiusura firmata in anticipo.

I canali anchor danno a ciascun partner una minuscola uscita che solo lui, all'inizio, può spendere, puramente come appiglio per un successivo aumento di commissione. BOLT 3 fissa l'importo a 330 satoshi e, dopo 16 blocchi, chiunque può svuotare un anchor che nessuno ha reclamato. Se gestisci un wallet Lightning, tieni da parte dei bitcoin on-chain, perché l'anchor non può pagare una commissione da solo.

Come funziona

Un'uscita anchor custodisce 330 satoshi dietro la chiave di funding di una controparte del canale, e il motivo per cui un commitment ne porta due invece di un unico appiglio condiviso è un attacco.

Lo script è breve: la chiave pubblica di funding, OP_CHECKSIG, OP_IFDUP e poi un ramo OP_NOTIF che contiene OP_16 e OP_CHECKSEQUENCEVERIFY. La tua firma lo apre subito. Sedici blocchi dopo la conferma del commitment, un witness vuoto lo apre a chiunque, ed è così che BOLT 3 impedisce che il resto abbandonato si stabilizzi per sempre nell'insieme delle monete attive. Quella via conta solo se le commissioni scendono abbastanza da rendere conveniente svuotare 330 satoshi.

Un anchor per parte è il progetto contro il pinning. Se dai a entrambe le parti un unico appiglio condiviso, la controparte può agganciarvi una transazione figlia grande e a bassa commissione, gonfiando la famiglia di transazioni non confermate finché il tuo aumento di commissione non risulta fuori portata e il commitment manca la scadenza per cui era stato trasmesso. BOLT 3 attribuisce a una modifica in Bitcoin Core 0.19 il merito di far funzionare la difesa degli anchor separati, e blocca ogni anchor su una chiave di funding. È anche il motivo per cui ogni altra uscita di un simile commitment porta un blocco di sequenza, compresa to_remote.

Niente di tutto questo è gratis. Gli importi dei due anchor escono dal saldo di chi finanzia, 660 satoshi in totale, e il peso di base da cui si calcola il prezzo di una transazione di commitment sale da 724 a 1124 unità di peso. Quello che chi finanzia ottiene sono transazioni HTLC di secondo stadio che non portano alcuna commissione: con option_anchors la loro commissione deve essere zero, e sono firmate con SIGHASH_SINGLE più SIGHASH_ANYONECANPAY, così aggiungi il tuo input al momento della trasmissione e paghi la tariffa in vigore allora. BOLT 9 la elenca ai bit 22 e 23, come tipo di commitment con anchor e transazioni HTLC a commissione zero.

Dove lo vedi

Le uscite anchor diventano visibili su un block explorer nel momento in cui un canale Lightning si chiude senza collaborazione, come due delle uscite da 330 satoshi ciascuna che sembrano un errore di qualcuno. BOLT 3 ne omette una solo quando nessun HTLC è in corso e il saldo di una parte è sotto il limite dust.

Quale delle nostre 41 recensioni di wallet ti mette davanti a una di queste dipende dalla custodia. Phoenix, valutato 4,0 qui, esegue un vero nodo Lightning in autocustodia sullo smartphone, e la nostra recensione riporta che il recupero dopo una chiusura forzata richiede circa 720 blocchi, quindi l'anchor è tuo da gestire. Muun, valutato 3,8, è anch'esso in autocustodia, ma i suoi pagamenti Lightning possono richiedere un submarine swap che si regola on-chain. Wallet of Satoshi, valutato 2,7, è in custodia per impostazione predefinita. Un'uscita da 330 satoshi non può finanziare una transazione figlia, quindi aumentare la commissione significa spendere l'anchor insieme a dei bitcoin che avevi già.

Uscita anchor vs anchor effimero

Un'uscita anchor è spendibile da una specifica chiave di funding per i suoi primi 16 blocchi, mentre un anchor effimero è senza chiave dal primo secondo e non custodisce alcun valore che valga la pena difendere.

I più recenti canali zero_fee_commitments di BOLT 3, con i feature bit 40 e 41, sostituiscono la coppia con un unico shared_anchor costruito sullo script standard pay to anchor: OP_1 seguito dai due byte 0x4e73, speso con un witness vuoto da chiunque. Il suo importo è 240 satoshi, il limite dust standard per quello script, e scende solo quando ne resta meno, cosa che la regola dell'ephemeral dust consente perché allora il commitment non paga commissione. I due rispondono alla stessa minaccia da estremi opposti: gli anchor con chiave battono il pinning dando a ciascuna parte una leva che nessun altro può azionare, quello senza chiave lo batte lasciando il commitment non minabile finché qualcuno non vi aggancia la commissione.

Da non confondere con

Domande frequenti

Mi servono bitcoin on-chain per usare un canale Lightning con anchor?

Sì, se gestisci tu stesso i canali. Un anchor è di 330 satoshi, troppo poco per pagare la transazione che lo spende, quindi alzare la commissione su una chiusura significa unire l'anchor a dei bitcoin separati di cui già disponi. I wallet Lightning in custodia detengono i canali stessi, quindi la questione non ti riguarda.

Perché BOLT 3 consiglia un limite dust più alto sui canali anchor?

Poiché con option_anchors le transazioni HTLC di secondo stadio non pagano commissione, il loro peso non conta più nel decidere se un piccolo HTLC ottiene una propria uscita, quindi BOLT 3 raccomanda di alzare dust_limit_satoshis su questi canali per mantenere conveniente spendere le uscite che compaiono davvero.

Chiunque può spendere un'uscita anchor?

Sì, dopo 16 blocchi. Lo script consente a chiunque di svuotare un anchor non reclamato con un witness vuoto una volta che la transazione di commitment è a 16 blocchi di profondità, il che impedisce che uscite abbandonate da 330 satoshi restino per sempre nell'insieme delle monete attive. Vale la pena farlo solo quando le commissioni sono molto basse.

Leggi anche

Termini correlati

Altro in Lightning e layer 2

Leggi questa pagina in inglese