Glossario / Protocollo e aggiornamenti
Bitcoin Improvement Proposal
Noto anche come BIP.
- Che cos'è un Bitcoin Improvement Proposal?
- Un Bitcoin Improvement Proposal è un documento di progettazione numerato che descrive una modifica a bitcoin o uno standard che i wallet devono seguire, senza alcuna autorità per imporlo.
Specificato nel BIP-2.
I BIP sono il modo in cui bitcoin mette le cose per iscritto. Chiunque può presentarne uno, un editor assegna il numero e il repository ne contiene ormai diverse centinaia, in stati che vanno da Draft a Final a Withdrawn. I numeri trapelano nei prodotti che usi: le 12 parole generate dal tuo wallet sono BIP39, e l'indirizzo che ne ha derivato proviene da BIP84 o BIP86.
Come funziona
Il processo dei BIP è un sistema di archiviazione, non un organo di governo.
È stato preso in prestito da Python. Amir Taaki ha scritto il BIP-1 nel 2011, sul modello delle proposte di miglioramento di quel progetto, e Luke Dashjr lo ha sostituito con il BIP-2 nel 2016 per rendere più precise le definizioni di ciò che significa ogni stato e delle prove necessarie per avanzare. Il percorso non ha nulla di glamour: esponi l'idea in pubblico, assorbi le critiche, apri una pull request sul repository bitcoin/bips e attendi che un editor controlli la formattazione e assegni un numero.
Le proposte sono di tre tipi. I documenti Standards Track coprono tutto ciò che riguarda l'interoperabilità del software, dalle regole di consenso ai formati degli indirizzi. I documenti Informational registrano un progetto o una convenzione senza chiedere a nessuno di fare qualcosa. I documenti Process descrivono il processo stesso. Ognuno porta uno stato, che passa da Draft e Proposed verso Final o Active, e molti terminano invece in Withdrawn, Rejected o Replaced.
Ciò che il numero non conferisce è l'autorità. Un BIP assegnato è una voce di indice, non un'approvazione, e del resto non esiste alcun organo che potrebbe approvarlo. L'adozione avviene separatamente e su base volontaria: qualcuno scrive il codice, i revisori lo sezionano, un'implementazione lo distribuisce e gli utenti scelgono di eseguire quella versione. Moltissime modifiche a Bitcoin Core non hanno alcun BIP, e moltissimi BIP non sono mai stati implementati da nessuno.
Perché questo conta quando compri bitcoin
I numeri dei BIP compaiono nei menu dei wallet, e scegliere quello sbagliato è un modo comune per concludere che i tuoi bitcoin sono spariti.
L'esempio che coglie di sorpresa è il ripristino con la frase di recupero. BIP39 ha standardizzato la lista di parole, 2048 voci, e la regola per trasformare 12 o 24 di esse in una chiave principale, ed è per questo che una frase annotata da una marca può essere digitata in un'altra. Ciò che BIP39 non standardizza è dove il wallet cerca i tuoi bitcoin. BIP44 deriva indirizzi legacy che iniziano con 1, BIP49 deriva indirizzi SegWit annidati che iniziano con 3, BIP84 deriva indirizzi SegWit nativi che iniziano con bc1q e BIP86 deriva indirizzi Taproot che iniziano con bc1p. Se ripristini una frase in un software che usa per impostazione predefinita un percorso diverso, il saldo mostra zero mentre i bitcoin restano intatti sotto il percorso che hai effettivamente usato. Scrivi il percorso di derivazione sulla stessa scheda del tuo backup e il problema non si presenta mai.
Anche i formati degli indirizzi hanno la stessa ricaduta pratica. Bech32 è nato da BIP173 e bech32m da BIP350, e il supporto è arrivato in momenti diversi in tutto il settore, ed è per questo che alcune piattaforme non potevano inviare a un indirizzo bc1p per un lungo periodo dopo l'attivazione di Taproot. Prima di un prelievo consistente, invia una piccola somma e conferma che il formato di destinazione sia accettato. Anche le transazioni bloccate hanno un numero: l'aumento della commissione tramite replace-by-fee è stato specificato in BIP125, e un wallet che lo implementa ti risparmia di attendere una stima della commissione fatta in un momento sbagliato.
Tratta il numero come un'etichetta, non come una garanzia. BIP70, il protocollo di pagamento, è stato implementato da BitPay e Coinbase e sembrava il futuro dei pagamenti ai commercianti; Bitcoin Core lo ha dichiarato obsoleto nella versione 0.19 e lo ha rimosso nella 0.20, e oggi non lo usa nessuno. Un BIP documenta che qualcuno ha riflettuto con attenzione. Se qualcuno lo esegue ancora è una domanda separata che vale la pena porsi.
Da BIP340 al blocco 709.632: come una proposta diventa regola
Taproot è l'illustrazione più chiara dell'intero percorso, perché ogni sua fase è datata.
Il progetto è stato pubblicato come tre documenti collegati, BIP340 per le firme Schnorr, BIP341 per il tipo di output Taproot e BIP342 per le nuove regole di script, scritti da Pieter Wuille con Jonas Nick, Tim Ruffing e Anthony Towns. Sono stati integrati nel repository a gennaio 2020 dopo circa due anni di discussione pubblica. L'integrazione non ha cambiato nulla in bitcoin: significava che i documenti avevano un numero.
L'implementazione e la revisione hanno poi richiesto gran parte di un anno, e la discussione su come attivare le regole diversi mesi in più, con due meccanismi concorrenti sul tavolo. Il compromesso, noto come Speedy Trial, è arrivato in Bitcoin Core 0.21.1 a maggio 2021. I miner hanno segnalato la disponibilità entro una finestra definita, il lock-in è stato raggiunto il 12 giugno 2021 e le regole sono diventate applicabili al blocco 709.632 il 14 novembre 2021. Sono circa 22 mesi da un documento numerato a una regola applicata, e il documento non ha fatto nulla di quel lavoro: lo hanno fatto gli operatori dei nodi che eseguivano il codice.
Bitcoin Improvement Proposal vs regole di consenso
Un Bitcoin Improvement Proposal è documentazione; le regole di consenso sono ciò che i nodi applicano effettivamente. Le due cose si sovrappongono solo quando una proposta è stata implementata e adottata, e il divario in ciascuna direzione è istruttivo. BIP70 ha un numero e non applica nulla da nessuna parte. Il limite di 21 milioni non ha alcun BIP, perché precede il processo e vive unicamente nel codice. Quando vuoi sapere cosa fa bitcoin, leggi il software o le regole che applica; quando vuoi sapere cosa ha proposto qualcuno, leggi il BIP.
Bitcoin Improvement Proposal vs soft fork
Un Bitcoin Improvement Proposal è un documento; un soft fork è un evento di distribuzione che restringe le regole che tutti seguono. La maggior parte dei BIP non sono fork di alcun tipo: BIP39 non ha mai toccato il protocollo, e nemmeno lo schema URI di BIP21 che consente a un link di pagamento di aprire il tuo wallet. Quando un soft fork avviene davvero, di solito servono diversi BIP per descriverlo, più un altro per il meccanismo di attivazione stesso, dato che BIP9 e BIP8 esistono solo per definire come funziona la segnalazione. Confondere le due cose porta le persone a dire che bitcoin è cambiato quando è stata pubblicata una proposta, cosa che di norma avviene anni prima e a volte è falsa per sempre.