Vai al contenuto
buybitcoinsmart

Glossario / Privacy e sicurezza

Dust limit

Noto anche come Soglia della polvere.

Che cos'è Dust limit?
Il limite della polvere è l'importo più piccolo che un output bitcoin può contenere prima che i nodi rifiutino di trasmettere la transazione che lo crea, attualmente 546 satoshi per un indirizzo legacy.

I nodi scartano le transazioni che creano output troppo piccoli per valere la pena di essere spesi, il che evita che la rete si riempia di frammenti impossibili da spendere. Bitcoin Core fissa il limite a tre satoshi per byte virtuale della futura spesa: 546 satoshi per un output pay-to-public-key-hash, 294 per native SegWit, 330 per Taproot. Se un wallet rifiuta di inviare un importo, di solito è per questa regola.

Come funziona

Bitcoin Core applica il limite della polvere a ogni output separatamente, e si pone una sola domanda: spendere questo output in futuro costerebbe più di quanto l'output vale?

Il calcolo si trova in GetDustThreshold in src/policy/policy.cpp. Il nodo somma la dimensione dell'output così come è nel registro alla dimensione dell'input che prima o poi lo spenderà, poi moltiplica per DUST_RELAY_TX_FEE, una costante di policy di 3.000 satoshi per kilo-virtual-byte, ovvero 3 sat/vB. Verificalo per i tre tipi di script comuni:

  • Un output pay-to-public-key-hash è di 34 byte e richiede 148 byte virtuali per essere speso, quindi 182 vbyte a 3 sat/vB danno 546 satoshi.
  • Un output native SegWit (bech32, che inizia con bc1q) è di 31 byte e il suo input è scontato a circa 67 vbyte, il che dà 98 vbyte e 294 satoshi.
  • Un output Taproot (bc1p) è di 43 byte con lo stesso input scontato, il che dà 110 vbyte e 330 satoshi.

Due dettagli contano. Primo, questa è policy di trasmissione, non una regola di consenso: un miner che riceve una transazione con polvere fuori dai canali abituali può inserirla in un blocco, e ogni nodo accetterà quel blocco. Secondo, gli output OP_RETURN sono esentati, perché sono dimostrabilmente non spendibili, quindi non c'è nessun input futuro da pagare.

La soglia è anche rimasta ferma mentre il mercato delle commissioni no. Durante un picco a 200 sat/vB, spendere quello stesso output legacy costa circa 29.600 satoshi, quindi è economicamente morto molto prima che la rete lo consideri polvere.

Dove lo vedi

Il limite della polvere compare come messaggio di errore, quasi mai come concetto.

I wallet lo formulano come "amount below dust threshold", "output too small", oppure semplicemente disattivano il pulsante di invio. Bitcoin Core e la maggior parte del software per wallet lo applicano anche in silenzio al resto: se il resto di un pagamento scendesse sotto la soglia, il wallet elimina l'output di resto e consegna quel valore al miner come commissione aggiuntiva invece di creare qualcosa che nessuno può spendere.

Gli exchange stanno comunque molto sopra il limite. I loro minimi di prelievo sono fissati dal loro costo di gestire una richiesta, non dalla policy, quindi incontrerai un minimo di 0,0001 BTC o di 10 dollari molto prima di arrivare a 546 satoshi.

Lightning ha la propria versione della regola. Ogni canale negozia un valore dust_limit_satoshis, e BOLT 2 richiede almeno 354 satoshi sui canali che usano output anchor. Qualsiasi pagamento sotto quella soglia non ottiene alcun output nella transazione di commitment: se il canale si chiude forzatamente mentre un tale pagamento è in corso, l'importo va ai miner come commissione.

Limite della polvere vs polvere

La polvere è un output; il limite della polvere è una regola sugli output. Nell'uso quotidiano, polvere indica qualsiasi output troppo piccolo per valere la pena di essere speso con le commissioni di oggi, una linea che si sposta ogni volta che la mempool si riempie. Il limite della polvere è una costante di policy fissa che non si sposta affatto. Questa differenza è il motivo per cui puoi detenere un output che la rete ha trasmesso senza problemi e comunque trovarlo antieconomico da spendere.

Limite della polvere vs commissione minima di trasmissione

La commissione minima di trasmissione è un minimo sull'intera transazione, impostato per impostazione predefinita a 1.000 satoshi per kilo-virtual-byte, ovvero 1 sat/vB. Il limite della polvere è un minimo su un singolo output, e usa deliberatamente una tariffa più alta di 3 sat/vB affinché un output venga creato solo se sarà ancora spendibile in condizioni leggermente peggiori di quelle in cui è stato creato. Una transazione può superare agevolmente la commissione di trasmissione ed essere comunque rifiutata perché un output da 200 satoshi non ha superato il controllo della polvere.

Da non confondere con

Domande frequenti

Perché il limite della polvere è di 546 satoshi?

Perché 546 è quanto costa spendere un output legacy pay-to-public-key-hash a 3 satoshi per byte virtuale. L'output più l'input che lo spenderà arrivano a 182 byte virtuali, e Bitcoin Core moltiplica questo per la sua commissione di trasmissione della polvere di 3.000 satoshi per kilo-virtual-byte.

Posso ancora spendere un output sotto il limite della polvere?

Sì, se ne possiedi già uno. Il limite blocca la creazione di tali output al momento della trasmissione; non congela gli output che esistono già. Spenderne uno di solito costa in commissioni più di quanto vale, ed è proprio il punto che la regola vuole evidenziare.

Il limite della polvere cambia con le commissioni di rete?

No. È una costante di policy fissa, quindi resta a 546, 294 o 330 satoshi a seconda del tipo di indirizzo, mentre le commissioni reali variano tra 1 e diverse centinaia di satoshi per byte virtuale.

Termini correlati

Altro in Privacy e sicurezza

Leggi questa pagina in inglese