commitment transaction

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

Una commitment transaction è una transazione Bitcoin firmata da entrambi i partner di un canale Lightning Network, che rappresenta l'ultimo saldo del canale, ma questa transazione non viene immediatamente salvata sulla blockchain on-chain.

Ogni volta che viene effettuato o inoltrato un nuovo pagamento utilizzando il canale Lightning, il saldo del canale si aggiorna e viene firmata una nuova commitment transaction con due output spendibili, uno per ogni partner.

Le commitment transaction garantiscono che non sia necessario fidarsi del proprio partner del canale per recuperare il balance del canale in caso di problemi.

Nel caso di un canale tra Alice e Bob, entrambi i partecipanti mantengono una copia della commitment transaction firmata da entrambi. La chiusura normale di un canale viene effettuata tramite una closing transaction firmata in accordo da entrambi i partner. Tuttavia, sia Alice che Bob possono unilateralmente chiudere il canale in qualsiasi momento inviando una commitment transaction alla blockchain Bitcoin. La rete non è in grado di distinguere se la commitment transaction trasmessa sia la più recente o una più vecchia, ma l'invio di una versione più vecchia e quindi obsoleta della transazione è considerato un comportamento scorretto e può essere sanzionato dall'altro partner attraverso una penalty transaction o transazione di penalità, che gli permette di rivendicare tutti i fondi del canale per sé.

Le commitment transaction sono asimmetriche, in quanto spendono il saldo del partner che ha iniziato la chiusura forzata su un contratto di arbitrato, mentre i fondi dell'altra parte vengono inviati immediatamente al suo wallet. Ciò consente al partner che non ha avviato la chiusura forzata di contestarla.

Le fee della commitment transaction vengono impostate durante la negoziazione della transazione, e non possono essere modificate senza entrambe le firme; poiché non si possono conoscere quali saranno le fee in futuro per consentire di confermare la transazione in tempo, possono essere impostate con un importo significativamente più alto, fino a cinque volte, rispetto alle stime al momento della negoziazione.

La commitment transaction include output aggiuntivi per eventuali HTLC in sospeso, rendendola più grande in termini di byte rispetto a una closing transaction di chiusura reciproca.
Di solito questo non sarebbe troppo grave.
Ma se c'è un congestionamento della rete, con molti HTLC in attesa che devono essere inclusi nella transazione, la transazione può avere delle dimensioni tali che con un mercato di fee molto alto potrebbero portare ad avere delle fee superiori all'intero balance del canale.


aggiornato il 2022-08-27