Om du följde Bitcoin under 2017 så hörde du säkert talas om massor av olika ”BIPs” såsom BIP 148 och BIP 91. En BIP, eller Bitcoin Improvement Proposal, är ett överenskommet sätt att kommunicera idéer om förbättringar eller nya funktioner inom Bitcoin. Eftersom Bitcoin inte har något formellt styre så har det här kommit att bli en semi-formell process för att föreslå en idé, samla in feedback och skapa konsensus. Inspirationen till detta kommer från bl.a. programmeringsspråket Python som använder en liknande process vid namn Python Enhancement Proposals.
Det finns 3 olika typer av BIPs:
- Standards Track BIP – Förändringar i nätverksprotokollet, validering av block och transaktioner eller annat som påverkar interoperabiliteten. Alltså, sådana förändringar som skulle påverka alla olika implementationer av Bitcoinprotokollet.
- Informational BIP – Generella guidelines, rekommendationer mm. Dessa berör alltså inte själva Bitcoinprotokollet utan ofta något runtomkring som t.ex. BIP 32 som beskriver Hierarchical Deterministic Wallets, ett sätt att strukturera Bitcoinplånböcker.
- Process BIP – Förändringar i BIP-processen eller andra processer.
Innan man skapar en BIP rekommenderas man att undersöka tidigare, liknande idéer samt att ta upp sin idé för diskussion, t.ex. på Bitcoins mejllista för utvecklare. När man känner sig övertygad om att idén har en chans att bli accepterad är det dags att skapa ett utkast till en BIP och posta den till samma lista. Efter ytterligare diskussion där kan man ge sig på att formellt formulera sin BIP och sedan skapa en s.k. pull request för att få den inkluderad i BIPs Git repository.
Författaren kan själv ändra status till Deferred (uppskjuten) eller Withdrawn (tillbakadragen). Statusen ‘Proposed’ ska sättas först när författaren anser den komplett och det finns en fungerande implementation (om detta är applicerbart). ‘Active’ eller ‘Final’ innebär lite olika saker beroende på vilken typ av BIP det är men indikerar i princip att förändringen är genomförd.
Om du stöter på en BIP i diskussioner eller artiklar och vill förstå vad det handlar om så finns den kompletta listan på https://github.com/bitcoin/bips/. Här hittar man många intressanta förslag, från idéer som efter flera år inte lämnat draft-stadiet till de som nu blivit genomförda. Varje BIP har en länk till en diskussionstråd så det är lätt att gräva djupare i ämnet om man vill.
Nästan hälften av alla förslag har faktiskt status Draft och man kan väl ana att de flesta inte kommer att tas i mål. När den stora blockstorleksdebatten pågick som bäst skapades en mängd olika BIPs så bara på detta tema finns minst 6 olika förslag med Draft-status. Diskussionen kring dem är dock så gott som död.
- BIP 102 – Block size increase to 2MB
- BIP 103 – Block size following technological growth
- BIP 104 – ‘Block75’ – Max block size like difficulty
- BIP 105 – Consensus based block size retargeting algorithm
- BIP 106 – Dynamically Controlled Bitcoin Block Size Max Cap
- BIP 107 – Dynamic limit on the block size
I kommande artiklar kommer vi att gå igenom BIPs som har spelat stor roll för Bitcoin eller pågående förslag som verkar intressanta.