Hoe werkt de ontwikkeling van Bitcoin en wat zijn BIPs?
Bitcoin wordt open source ontwikkeld, maar hoe werkt dat
eigenlijk? Wat zijn BIPs? En hoe wordt bepaald welke code wordt gewijzigd
of toegevoegd? In dit artikel lichten we het proces toe.
Bij open source software is de broncode openbaar. Iedereen mag de code
gebruiken in een eigen project of bijdragen aan het bestaande project. In
het geval van Bitcoin gebeurt de open source ontwikkeling op Github.
Daar vind je de code van de Bitcoin Core software. Als je rond
klikt tref je ook details over hoe de code in de loop der tijd is aangepast
en een lijst met ontwikkelaars die hebben bijgedragen.
Iedereen kan in principe een voorstel doen om de code aan te passen. Zo'n
voorstel wordt dan door de andere ontwikkelaars bekeken en beoordeeld. Als
er genoeg draagvlak voor is wordt de aanpassing goedgekeurd en in de
daadwerkelijke code doorgevoerd.
Proces
Het proces begint allereerst met een korte omschrijving van een idee.
Daarin stelt een initiatiefnemer (meestal de bedenker) een ruwe versie van
het idee voor, om te peilen wat anderen ervan denken. Dat wordt meestal
gedaan via de Bitcoin development mailing list.
Als er genoeg interesse blijkt te zijn, is de volgende stap het indienen
van een BIP: een Bitcoin Improvement Proposal. Dat is een standaard format
voor voorstellen om het proces te stroomlijnen. In een BIP wordt het idee
uitgebreider omschreven en zo nodig toegelicht met voorbeelden. De BIP
krijgt vervolgens een nummer en een subpagina op Github.
Op deze subpagina kan men uitgebreid over het voorstel discussiëren en
gezamenlijk werken aan de nodige aanpassingen in de code. Code kan worden gewijzigd, verwijderd of nieuwe code kan worden toegevoegd. De aanpassingen
worden niet direct doorgevoerd in de daadwerkelijke code, maar in een soort
kopie zodat het eerst uitvoerig kan worden getest. Als het naar behoren
werkt en er consensus onder de ontwikkelaars ontstaat, dan kan daarna
geprobeerd worden om de BIP te activeren.
Activatie
De manier van activatie verschilt, afhankelijk van het soort BIP. Een BIP
kan namelijk ook simpelweg een set richtlijnen zijn en dan is publicatie
voldoende.
Soms gaat het om wijzigingen in het protocol zelf. Dan is er altijd veel
aandacht voor
Andere keren introduceert een BIP nieuwe standaarden of aanvullende functionaliteit bovenop het bestaande Bitcoinprotocol. Het is dan aan de verschillende projecten om te kiezen of hun project de BIP zal ondersteunen.
In alle gevallen wordt een BIP dus niet opgelegd, maar is het succes
afhankelijk van bottom-up adoptie. Projecten kiezen zelf of ze een BIP
ondersteunen of niet.
Lang niet iedere BIP is succesvol en veel komen nooit verder dan een
voorstel. Soms zijn er bezwaren, introduceert het nieuwe risico's of vindt
men het niet nuttig of noodzakelijk genoeg. Aangezien succes afhankelijk is
van de mate van adoptie, slaagt een BIP meestal alleen als het breed omarmd
wordt. Daarvoor moet het nut duidelijk zijn en er niets (meer) op aan te
merken zijn.
Bitcoin Core
De Bitcoin Core software neemt een speciale rol in. Het is de oudste en
meestgebruikte open source software voor Bitcoin nodes, met de meeste
ontwikkelaars.
De software is vanwege het netwerkeffect invloedrijk voor de
adoptie en ondersteuning van BIPs op het Bitcoinnetwerk. Ondersteuning door
Bitcoin Core betekent namelijk dat een groot en belangrijk deel van het
netwerk de BIP ondersteunt. Andere projecten volgen daarna vaak het
voorbeeld op.
De ontwikkeling van Bitcoin Core verloopt ongeveer op dezelfde manier.
Zodra een BIP gereed is voor activatie kan er worden gediscussieerd over
ondersteuning door Bitcoin Core om daarna eventueel te werken aan de code voor een
implementatie.
Dat wordt opnieuw bekritiseerd, totdat er consensus ontstaat
en er geen doorslaggevende bezwaren meer zijn. Daarna voegt een
BIPs
Zelf een kijkje nemen tussen de BIPs? De lijst vind je op Github. Hieronder
een aantal suggesties:
- BIP-2: Hierin staat het format voor BIPs omschreven
- BIP 32: Hierarchical deterministic wallets
- BIP 39: Seed phrases
- BIP 114: Merkelized Abstract Syntax Tree (MAST)
- BIP 125: Replace By Fee (RBF)
- BIP 141: SegWit
- BIP 340: Schnorr signatures
- BIP 341: Taproot
Meer leren over Bitcoin? Neem dan eens een kijkje in de bitcoingids of bij het thema Educatie.