Transaction pinning

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

Il Transaction pinning, pinning delle transazioni, è un metodo per rendere proibitivo l'aumento delle fee, abusando delle protezioni dei nodi contro gli attacchi che possono sprecare larghezza di banda, CPU e memoria. Questo può rendere più difficile la gestione delle commissioni nei protocolli di contratto multiparte (come Lightning Network).

I nodi come Bitcoin Core che permettono di sostituire le transazioni con RBF, o di impacchettarle con transazioni figlio a tariffa più alta CPFP, pongono restrizioni su tali sostituzioni per prevenire vari attacchi DoS. Tuttavia, quando due o più persone hanno la possibilità di effettuare il fee bump di una transazione, questo rende possibile che uno di loro possa bloccare, pin, la propria versione di una transazione a uno dei limiti e impedire agli altri partecipanti di utilizzare il fee bump.

Alcuni dei limiti che possono essere abusati per consentire il pinning delle transazioni sono:

  • La regola #3 del BIP125 RBF richiede che una transazione sostitutiva paghi una commissione assoluta (non solo feerate) più alta della somma delle commissioni pagate dalla transazione sostituita e da tutti i suoi figli. Ciò può consentire a un aggressore di allegare una transazione di grandi dimensioni e a bassa feerate alla transazione che vuole bloccare, costringendo qualsiasi aumento delle commissioni a pagare per la sostituzione della transazione figlia di grandi dimensioni. Ad esempio, con le impostazioni predefinite di Bitcoin Core del 2019, un aggressore può richiedere a un partecipante onesto di pagare un minimo di 0,001 BTC per effettuare il fee bump di una transazione (o anche importi maggiori in alcuni casi).
  • Le limitazioni sulla dimensione massima dei pacchetti impediscono l'uso di CPFP se una transazione ha più di 101.000 vbyte di figli o altri discendenti in una mempool, o ha più di 25 discendenti o antenati. Ciò può consentire a un aggressore di bloccare completamente il fee bumping creando la quantità massima di transazioni figlio. Se l'attaccante deve creare tali transazioni per altri motivi (ad esempio perché gestisce un servizio a pagamento per gli utenti), questo attacco può essere gratuito. Per alcuni protocolli di contratti a due parti (come l'attuale Lightning Network), questo problema è mitigato dal CPFP carve out.


aggiornato il 2022-12-27