Replacement cycling vulnerability

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

La Replacement cycling vulnerability è una vulnerabilità che può consentire, in presenza di determinate condizioni, di far effettuare un attacco contro chi gestisce canali lightning network con potenziale perdita di fondi.

Sono interessati solo i nodi che utilizzano i canali lightning per effettuare il routing di pagamenti su lightning network.

Gli utenti che utilizzano i propri canali solo per effettuare e ricevere pagamenti non sono interessati.

Dopo la divulgazione della vulnerabilità, sono stati effettuati degli aggiornamenti delle implementazioni dei nodi lightning network per includere mitigazioni per l'attacco.

Il termine replacement si riferisce al Transaction replacement, o Sostituzione della transazione, ovvero alla possibilità di sostituire una transazione nella mempool prima che questa venga confermata nella block chain.

È possibile utilizzare la sostituzione della transazione per rimuovere uno o più input di una transazione multi-input dalla mempool.
Come esempio, un attaccante malintenzionato che chiamiamo Mallory trasmette una transazione con due input, che spendono gli utxo A e B.
Successivamente Mallory sostituisce quella transazione con una versione alternativa con un unico input che spende solo l'utxo B. Dopo questa sostituzione, l'utxo A e tutti i dati in esso inclusi sono stati rimossi dalle mempool di ogni nodo che ha elaborato la sostituzione.
Mallory può sfruttare questo comportamento se vuole rimuovere un input dalla mempool dei nodi.
In particolare, se Mallory condivide il controllo su un output con un utente vittima dell'attacco che chiamiamo Bob, può aspettare che Bob spenda l'output, sostituire la sua spesa con una sua spesa che contenga un input aggiuntivo e quindi sostituisca la sua spesa con una transazione che non spende più il loro risultato condiviso.
Questo è un replacement cycle, un ciclo di sostituzione.
I miner continueranno a riscuotere le commissioni di transazione da Mallory, ma c'è un'alta probabilità che né le spese di output di Bob né quelle di Mallory vengano confermate in prossimità del momento in cui Bob trasmette la sua spesa.
Questo comportamento che possiamo considerare una vulnerabilità è particolarmente importante nel caso ad esempio di Lightning Network che utilizza gli HTLC Hash Time-Locked Contract, ma anche di altri protocolli, perché determinate transazioni devono avvenire entro determinate finestre temporali per garantire che gli utenti che inoltrano i pagamenti non perdano denaro.


aggiornato il 2023-10-26