Glossario / Transazioni e commissioni
Byte virtuale
Noto anche come vbyte, vB, sat/vB.
- Che cos'è il byte virtuale?
- Il byte virtuale è l'unità in cui i wallet prezzano le transazioni, pari a un quarto del peso di una transazione arrotondato per eccesso, così ogni quotazione delle commissioni si legge in satoshi per vbyte.
Specificato nel BIP-141.
I wallet potrebbero quotare le commissioni in unità di peso e non menzionare mai più i byte, ma il byte virtuale mantiene intatta la vecchia aritmetica: una transazione senza dati witness ha un vsize esattamente uguale alla sua dimensione in byte. Un blocco ne contiene 1.000.000 di byte virtuali. Leggere una quotazione in sat/vB è il modo per distinguere una commissione di prelievo equa da una gonfiata.
Come funziona
La dimensione virtuale nasce da una sola riga di aritmetica: prendi il peso, dividi per quattro, arrotonda per eccesso.
Lo scarto tra quel numero e la serializzazione grezza è dove si perdono i soldi. Un pagamento che spende un input segwit nativo in due output occupa 222 byte sulla rete, pesa 561 unità di peso e viene prezzato come 141 byte virtuali. Moltiplica i 222 per la tariffa scelta invece dei 141 e hai pagato circa il 57 per cento di troppo. Gli explorer mostrano le due cifre una accanto all'altra e le etichettano size e vsize, e scegliere quella sbagliata è l'errore aritmetico più comune nella stima delle commissioni.
L'arrotondamento avviene una sola volta, alla fine. Le parti non vengono in numeri interi: un input Taproot a percorso di chiave misura 57,5 vbyte, quindi un totale intermedio può fermarsi su una mezza unità. Due wallet che costruiscono la stessa spesa possono quindi divergere di un solo vbyte senza che nessuno dei due sbagli. Bitcoin Core espone tutte e tre le viste della stessa transazione, size, vsize e weight, così puoi verificarne qualunque tu stesso.
Gli stimatori delle commissioni parlano la stessa unità in forma mascherata. estimatesmartfee risponde in bitcoin per kilo-virtual-byte, quindi una tariffa restituita di 0,00005000 significa che 5.000 satoshi comprano 1.000 byte virtuali, cioè 5 sat/vB. Ogni fascia di una dashboard della mempool, ogni cursore di un wallet e ogni messaggio di rifiuto relativo a una soglia di relay sono espressi allo stesso modo.
Dove lo vedi
I byte virtuali decidono quanto costa davvero un prelievo da un exchange, e vale la pena fare il calcolo prima di accettare una commissione fissa.
Prendi una piattaforma che raggruppa: un input che finanzia 100 prelievi di clienti in un'unica transazione. A 31 vbyte per output segwit nativo, più 68 per l'input e circa 11 di overhead, il tutto è all'incirca 3.179 vbyte. A 5 sat/vB costa 15.895 satoshi, ovvero circa 159 satoshi per ciascuna delle cento persone incluse. Un costo fisso di 0,0001 BTC addebita a ognuna di esse 10.000 satoshi per quello spazio, più di sessanta volte la loro quota. Il rapporto si inverte in un momento di congestione: a 100 sat/vB lo stesso batch costa 3.179 satoshi a testa, e la commissione fissa diventa un sussidio. Le commissioni di prelievo fisse sono una scommessa, e nei giorni tranquilli vince il banco.
La stessa unità prezza le tue operazioni di manutenzione. Raggruppare piccole quantità di bitcoin viene addebitato quasi interamente in base al numero di input, quindi un consolidamento di dodici input segwit nativi in un solo output è di circa 858 vbyte, qualunque siano gli importi in gioco. Fallo a 2 sat/vB e costa meno di 2.000 satoshi. Fallo durante un picco delle commissioni e costa cinquanta volte tanto per un lavoro identico.
Byte virtuale vs unità di peso
Un byte virtuale e un'unità di peso misurano gli stessi dati su scale che differiscono di un fattore quattro, e l'arrotondamento è l'unico punto in cui smettono di essere intercambiabili. I limiti di consenso sono scritti in peso, ed è per questo che il tetto di un blocco è indicato come 4.000.000 unità. Le interfacce sono scritte in vbyte, perché 8 sat/vB è più facile da tenere a mente di 2 satoshi per unità di peso. La funzione ceiling fa sì che una transazione di 561 unità di peso venga addebitata come 141 vbyte invece che come 140,25, quindi paghi tre quarti di un byte che non hai mai usato. Leggere una specifica ti mette in unità di peso; pagare qualsiasi cosa ti mette in vbyte.