Vai al contenuto
buybitcoinsmart

Glossario / Transazioni e commissioni

Transazione standard

Che cos'è una transazione standard?
Una transazione standard è quella che i nodi ordinari accettano di ritrasmettere e di tenere nella propria mempool, una soglia più severa della semplice validità secondo le regole di consenso.

Due controlli distinti proteggono la rete. Il consenso decide che cosa può contenere un blocco e può cambiare solo con un fork; la standardità decide che cosa il tuo nodo trasmetterà ai suoi peer e cambia a ogni nuova versione rilasciata. Una transazione che non supera il secondo controllo non è invalida, è sgradita, e deve raggiungere un miner per qualche altra via.

Come funziona

La standardità è una lista di controlli che ogni nodo applica per conto proprio, e la versione di quella lista usata da Bitcoin Core si trova in un unico file sorgente, src/policy/policy.cpp.

Le condizioni principali sono queste. Ogni script di output deve corrispondere a un modello riconosciuto: pay to public key hash, pay to script hash, i tre tipi witness, multisig nudo con non più di tre chiavi, oppure un unico output che trasporta dati. La transazione non può superare 400.000 unità di peso, cioè 100.000 byte virtuali, un quarto di un blocco pieno. La sua versione deve rientrare nell'intervallo accettato. La sua commissione deve raggiungere la tariffa minima di ritrasmissione, 1 satoshi per byte virtuale per impostazione predefinita. Nessun output può essere inferiore alla soglia dust, 546 satoshi per un output legacy e 294 per uno SegWit nativo. Gli script di sblocco devono contenere solo push di dati, senza opcode.

Il mancato rispetto di una qualsiasi di queste condizioni produce un errore specifico da sendrawtransaction, che di solito inizia con la parola "non-mandatory-script-verify-flag" o "scriptpubkey", e la transazione non si diffonde mai oltre il nodo a cui l'hai inviata.

Il livello di policy esiste perché la ritrasmissione è gratuita e i blocchi non lo sono. Chiunque può inondare la rete con transazioni che non saranno mai minate, quindi i nodi rifiutano di trasportare forme che sembrano abuso, che sono costose da validare o che realisticamente non possono pagare il proprio costo. La policy è anche il luogo in cui gli esperimenti restano fuori dalla circolazione generale finché l'ecosistema non concorda che sono sicuri, ed è per questo che allentare una regola di policy può essere tanto controverso quanto un soft fork, pur non richiedendo alcun coordinamento.

Dove lo vedi

La maggior parte delle persone incontra la standardità sotto forma di messaggio di errore, e i wallet che lo producono di solito stanno facendo qualcosa di insolito di proposito.

Provare a inviare un output di 300 satoshi farà scattare la regola dust. Costruire un multisig grande come script nudo invece che dentro pay to script hash farà scattare la regola dei modelli. Allegare più dati di quanti ne consenta l'impostazione degli output che trasportano dati di un nodo farà scattare quel limite. Tutti e tre i casi tornano indietro come un rifiuto dal tuo stesso nodo prima che qualcosa raggiunga la rete.

Non standard non significa impossibile, e ormai esiste un mercato per aggirare la cosa. Il 2 febbraio 2023 il pool di mining Luxor ha minato il blocco 774.628 contenente un'unica transazione da 3,94 megabyte che nessun nodo avrebbe ritrasmesso, inviata direttamente al pool. In seguito, nel 2024, Marathon ha trasformato la stessa idea in un prodotto chiamato Slipstream, che accetta transazioni non standard e di dimensioni eccessive per l'inclusione diretta. Se sei un compratore ordinario, non ne avrai mai bisogno, ed essere invitato a usare un servizio del genere è un forte segnale che qualcosa di strano sta succedendo.

Transazione standard vs una transazione valida per il consenso

La validità per il consenso è ciò su cui l'intera rete deve essere d'accordo; la standardità è ciò a cui un singolo nodo sceglie di dare una mano. Una transazione può essere valida per il consenso e non standard, e in quel caso un miner può includerla e ogni nodo accetterà il blocco risultante senza obiezioni. Il contrario non può accadere: nulla che violi il consenso viene mai ritrasmesso, perché comunque non potrebbe mai essere minato. Detto in modo semplice, la standardità è un filtro sul percorso verso il miner, e il consenso è la regola che decide se la storia è stata estesa correttamente.

Da non confondere con

Domande frequenti

Il mio nodo ha rifiutato una transazione come non standard. È invalida?

Non necessariamente. Non standard significa che il tuo nodo si rifiuta di ritrasmetterla, di solito per le sue dimensioni, per la forma del suo script, per un output di dimensioni dust o per una commissione troppo bassa. Un miner potrebbe comunque includerla, ma dovresti raggiungerne uno direttamente.

Chi decide quali transazioni sono standard?

Lo decide ogni operatore di nodo, scegliendo quale software e quali impostazioni eseguire. Bitcoin Core distribuisce un insieme di valori predefiniti e Bitcoin Knots ne distribuisce uno più severo, e la policy effettiva della rete è quella che la maggioranza dei nodi che ritrasmettono accetta di fatto.

Termini correlati

Altro in Transazioni e commissioni

Leggi questa pagina in inglese