Una Bitcoin Improvement Proposal, o BIP, è un documento tecnico che propone modifiche, idee o miglioramenti al protocollo Bitcoin.
In un sistema distribuito come Bitcoin chi decide se effettuare o meno una modifica al protocollo?
In realtà ognuno è libero di decidere autonomamente ciò che ritiene più opportuno per sé: dato che il codice di Bitcoin è pubblico, ciascun individuo può scegliere quale versione utilizzare e se configurarla per accettare o respingere eventuali aggiornamenti.
Dal 2011, ogni proposta di miglioramento al protocollo viene effettuata attraverso la presentazione di una BIP (Bitcoin Improvement Proposal), cioè un documento tecnico standardizzato che segue delle linee guida per proporre un determinato miglioramento al protocollo Bitcoin o per descrivere una nuova funzionalità da introdurre.
Tutte le BIP completate e proposte fino ad oggi sono pubbliche e disponibili su GitHub.
La prima BIP è stata creata il 19 agosto 2011 dal programmatore britannico-iraniano Amir Taaki. Nella BIP veniva delineato il formato standard del documento, prendendo ispirazione dal sistema Python Enhancement Proposal (PEP) che gli sviluppatori di Python seguono per migliorare il linguaggio di programmazione.
Le BIP più importanti della storia di Bitcoin sono:
- BIP-32: Hierarchical Deterministic Wallets;
- BIP-39: Mnemonic code for generating deterministic keys;
- BIP-141: Segregated Witness;
- BIP-341: Taproot.
Tipi di BIP
- BIP Standards Track: descrive qualsiasi tipo di modifica come un cambiamento al protocollo di rete, una modifica alle regole di validità dei blocchi o delle transazioni, o qualsiasi cambiamento che influisca sull’interoperabilità delle applicazioni che utilizzano Bitcoin;
- BIP informativo: serve per informare i membri della community o fornire linee guida generali o informazioni alla comunità Bitcoin, ma non per proporre una nuova funzionalità;
- BIP procedurali: propone delle modifiche ai processi al di fuori del protocollo Bitcoin.
Essendo open-source, chiunque abbia voglia o capacità può presentare una BIP per migliorare il protocollo Bitcoin.
Quando viene presentata una qualsiasi delle BIP appena descritte, questa attraversa vari stati come – drafted, verified, accepted, rejected o replaced.
Come avviene un aggiornamento?
Il percorso per giungere a un aggiornamento di Bitcoin è molto lungo e complicato proprio perché, mancando un’autorità centrale, tutti (o quasi tutti) devono convergere verso la soluzione ottimale. Ogni aspetto deve essere sicuro, sottoposto a numerosi test e approvato.
L’intero percorso è riassunto di seguito:
- Quando nasce una proposta credibile, la discussione parte generalmente dai forum IRC dove parlano gli sviluppatori.
- L’idea emersa dai forum viene inviata alla mailing list Bitcoin ed elaborata;
- Il passo successivo è la stesura formale della proposta tramite la modalità standardizzata BIP.
- A questo punto su GitHub, dove è pubblicato anche il codice sorgente di Bitcoin Core, gli sviluppatori lavorano su una pull request e scrivono il codice per sviluppare concretamente l’idea.
- Il codice viene applicato alla Testnet di Bitcoin, ovvero una rete di prova in cui le nuove funzioni vengono testate: si tratta di una sorta di simulazione realistica che mostra come si comporterebbe la nuova tecnologia sulla rete principale.
- Una volta approvato, pronto e testato, il codice viene implementato in Bitcoin Core e ne viene pubblicato un aggiornamento.
- Successivamente i miner segnalano l’approvazione della modifica e quando si raggiunge una determinata soglia l’aggiornamento viene confermato.
Come affermato all’inizio, ogni utente della rete può decidere se accettare il nuovo aggiornamento oppure continuare a utilizzare Bitcoin come prima.