Glossario / Transazioni e commissioni
Unità di peso
Noto anche come WU.
- Che cos'è un'unità di peso?
- Un'unità di peso è l'unità contabile che ha sostituito il byte nel limite di dimensione dei blocchi di bitcoin, permettendo a SegWit di aumentare la capacità senza un hard fork applicando ai dati di firma un quarto del prezzo.
Specificato nel BIP-141.
I nodi vecchi contano i byte di un blocco senza i dati witness e rifiutano tutto ciò che supera 1.000.000, mentre i nodi nuovi contano il peso e rifiutano tutto ciò che supera 4.000.000. Entrambe le regole sono soddisfatte dagli stessi blocchi, ed è il trucco che ha reso Segregated Witness un soft fork quando si è attivato al blocco 481.824 ad agosto 2017. Tutto ciò che paghi per spostare bitcoin è prezzato in questa unità o in un quarto di essa.
Come funziona
L'unità di peso esiste perché i nodi che eseguono software diversi devono concordare su quando un blocco è pieno, anche quando non guardano gli stessi byte.
A un nodo che non è mai stato aggiornato non vengono inviati affatto i dati witness. Vede il blocco senza i dati witness e applica il tetto che ha sempre applicato, 1.000.000 byte. Un nodo aggiornato ricompone l'intero blocco e applica un tetto di 4.000.000 unità di peso. Se si applicano quattro unità per ogni byte non witness e un'unità per ogni byte witness, i due controlli non possono mai discordare: qualsiasi blocco entro il budget di peso, una volta tolti i dati witness, resta anche sotto un megabyte. Una regola che non fa mai altro che restringere ciò che il software vecchio accetta già è esattamente ciò che è un soft fork, e questo modo di prezzare è ciò che ha permesso all'aumento di capacità di stare dentro un soft fork.
La scelta di un quarto non è stata arbitraria. I byte witness sono firme, e le firme sono la parte di una transazione che un nodo può scartare una volta che la spesa è sepolta; non entrano mai nell'insieme degli UTXO, l'unica struttura che ogni macchina che valida deve tenere a disposizione per sempre. Prezzarle poco ha spinto i wallet verso un formato che fa crescere più lentamente l'insieme costoso, e lo ha fatto rendendo la scelta responsabile anche quella economica.
Un secondo budget si misura sulla stessa scala e riceve molta meno attenzione. BIP141 limita un blocco a 80.000 unità di operazione di firma, con le operazioni legacy contate quattro volte, così un blocco pieno di multisig di vecchio stile può esaurire le verifiche di firma prima di esaurire lo spazio.
La capacità è quindi un intervallo, non un numero. Un blocco di soli pagamenti legacy non può comunque superare 1.000.000 byte, mentre uno ricco di dati witness può avvicinarsi a quattro megabyte, e la maggior parte si colloca tra uno e due perché la maggior parte dei blocchi è un misto.
Dove lo vedi
Le unità di peso sono stampate accanto a ogni blocco su ogni explorer e sono il numero su cui un pool di mining ottimizza davvero.
Il posto più chiaro in cui compaiono è in una frase che ha smesso di essere vera ad agosto 2017. Bitcoin non ha un limite di blocco di un megabyte; ha un budget di quattro milioni di unità, e la barra di riempimento che vedi su un explorer è misurata rispetto a quel budget. I pool compongono un modello riempiendo il budget con le transazioni candidate che pagano meglio e tenendone da parte una porzione per la transazione coinbase, così un blocco minato di solito arriva appena sotto il tetto invece che esattamente sul tetto.
Le unità di peso sono anche il tema nascosto della discussione più rumorosa su bitcoin. Conservare dati nello spazio witness costa un quarto di quanto costano gli stessi byte altrove, ed è proprio per questo che le iscrizioni vivono lì. Il dibattito se quei dati appartengano alla catena è, sotto il rumore, un dibattito su un rapporto scelto quando è stato scritto BIP141, nel 2015.
Per chi compra e conserva, l'unità si incontra indirettamente. Non digiterai mai un peso in un wallet, ma è la ragione per cui spendere un output di vecchio formato costa più che spenderne uno moderno.
Unità di peso vs peso del blocco
Un'unità di peso è il righello; il peso del blocco è una misurazione presa con esso. Anche le transazioni hanno un peso, e la cifra di un blocco è la somma delle sue transazioni più l'intestazione e i contatori, ed è per questo che le due parole non sono intercambiabili. La confusione diventa costosa quando qualcuno legge la cifra di 4.000.000 come una soglia consentita per singola transazione. Non lo è: la policy di relay respinge una singola transazione standard molto prima che si avvicini al tetto del blocco, e il consenso misura solo il blocco.