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 backwards compatibility backwards compatibility Achterwaartse compatibiliteit. Dat houdt in dat nieuwere versies compatibel zijn met oudere versies. zodat upgraden optioneel blijft en deelnemers die niet upgraden niet worden buitengesloten.

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  maintainer maintainer Een maintainer is een persoon met rechten om code samen te voegen en andere administratieve taken uit te voeren. Een maintainer heeft geen sturende rol, maar een ondersteunende. De rol wordt wel eens vergeleken met de rol van een digitale conciërge. de vernieuwde code uiteindelijk samen met de bestaande. De oudere code blijft nog wel beschikbaar en bruikbaar. Ook hierbij is upgraden dus in feite optioneel.

BIPs

Zelf een kijkje nemen tussen de BIPs? De lijst vind je op Github. Hieronder een aantal suggesties:


Meer leren over Bitcoin? Neem dan eens een kijkje in de bitcoingids of bij het thema Educatie.


Belangrijke thema’s in dit artikel. Klik op een thema en ontdek meer.