version
versione
version
versione
Difficoltà: intermedio
Argomento: tecnologia
DEFINIZIONE
Il campo version, version number o nVersion, è un campo presente come componente nel block header e nelle transazioni, con diversi scopi.
È un numero di 4 byte (32 bit). Il formato utilizzato per la sua rappresentazion è di tipo little-endian, ovvero inizia dal byte meno significativo (estremità più piccola) per finire col più significativo.
Il valore 01000000 rappresenta version = 1.
Blocchi
Nel contesto dei blocchi, nVersion viene utilizzato per segnalare la versione del formato di un blocco. Svolge un ruolo cruciale nell'attivazione dei soft fork, in cui specifici bit all'interno del campo nVersion vengono usati per indicare il supporto dei miner agli aggiornamenti del protocollo. Ad esempio, BIP9 descrive un meccanismo in cui singoli bit del campo nVersion vengono impiegati per segnalare la disponibilità a nuove funzionalità o regole, permettendo un approccio più granulare nell'implementazione dei soft fork.
Transazioni
All'interno delle transazioni, nVersion indica la versione del formato della transazione in uso. Questo consente di apportare modifiche retrocompatibili alla struttura delle transazioni senza interrompere il funzionamento della rete esistente.
Nelle transazioni Bitcoinche indica la versione del formato della transazione.
Questa versione può cambiare nel tempo per introdurre nuove funzionalità o modifiche al protocollo Bitcoin.
Valori attualmente utilizzati sono:
- 1 (Introdotto dalla prima versione di Bitcoin) → Supporto per transazioni di base.
-
2 (BIP 68, 2016) → Introduzione del Relative Locktime per migliorare i canali di pagamento. È stato usato per segnalare la disponibilità di transazioni SegWit.
-
Version 1: È la versione originale e più comune delle transazioni Bitcoin, introdotta fin dall'inizio del protocollo.
- Version 2: Introdotta con BIP68, BIP112 e BIP113, abilita nuove funzionalità come:
- Lock-time relativo (usando nSequence)
- Verifica della firma con CHECKSEQUENCEVERIFY
- Support per il consenso basato sul tempo mediano dei blocchi
Coordinamento: nVersion può anche essere impiegato per coordinare varie funzionalità, come l'interpretazione di altri campi, ad esempio nSequence nel contesto dei relative time locks. È in corso un dibattito su come i bit di nVersion e nSequence vengano valorizzati e gestiti, considerando sia l'ottimizzazione dello spazio che l'estensione delle capacità.
aggiornato il 2025-02-07