Bitcoin Schaalbaarheid

Alles over het schaalprobleem van Bitcoin

Heeft Bitcoin een schaalprobleem?

Ja, dat is er. Het is nog niet opgelost en wordt alleen maar erger met tijd.

Bitcoin draait op de software die is uitgevonden door een programmeur (of groep programmeurs) die bekend staat als Satoshi Nakamoto in 2007-09. Desondanks de vele verbeteringen die in de loop van tijd zijn gedaan door ontwikkelaars aan de Bitcoin software, is de basiscode nog steeds vrij gelijk aan wat het 8 jaar geleden was – en sommige van de originele limieten zijn er ook nog steeds.

Het probleem is dat het huidige landschap van het Bitcoin ecosysteem er compleet anders uitziet dan hoe het was in de beginjaren van cryptocurrency. Het aantal mensen dat meedoet is gegroeid van een tiental enthousiastelingen naar meer dan 10 miljoen dagelijkse gebruikers.

Die groeiende gebruikersbasis brengt ook een groeiend aantal dagelijkse transacties met zich mee, wat er nu al honderdduizenden per dag zijn. De realiteit is echter dat het Bitcoin netwerk, in zijn huidige vorm, niet in staat is om al deze transacties snel genoeg uit te voeren.

Waarom kan Bitcoin al die transacties niet aan?

Het probleem ligt aan één specifieke parameter genaamd “block size limit.” De huidige limiet is niet voldoende voor de steeds groeiende transacties.

Om te beginnen een snelle en basis introductie hoe Bitcoin werkt, voor diegenen die dat niet weten. Alle transacties die ooit plaats hebben gevonden in het Bitcoin netwerk – of ooit plaats zullen vinden – worden opgeslagen op een openbare en onveranderbare ledger (grootboek) dat de “Blockchain” wordt genoemd.

Zoals je misschien al geraden had a.d.h.v. van de naam, is de Blockchain een serie aaneengeschakelde blokken. Elk blok is een cryptografische verzegelde collectie van alle transacties die in de laatste 10 minuten hebben plaatsgevonden. Elk nieuw blok wordt permanent toegevoegd aan het einde van de Blockchain zodat elke gebruiker altijd kan checken of een bepaalde transactie daadwerkelijk heeft plaatsgevonden.

Terug in 2010 introduceerde Nakamoto een limiet van 1 mb op de grootte per blok, wat betekent dat elk blok dat groter is dan 1 mb automatisch door het netwerk als ongeldig worden afgewezen. Dit was een veiligheidsmaatregel die ontworpen was om potentiele DoS aanvallen van hackers te voorkomen waarbij zij (oneindig) grote blokken over het netwerken verstuurden met als doel om het plat te leggen.

Deze beslissing heeft echter op lange termijn een negatief effect gehad op de transactie capaciteit van het netwerk.

Elke transactie bevat belangrijke data: de afzender, de ontvanger, de hoeveelheid Bitcoins, etc. Die data heeft ruimte nodig, die vrij insignificant voor één enkele transactie. Maar als er honderden transacties per minuut plaatsvinden, dan wordt het een heel ander verhaal.

De huidige limiet van 1 megabyte per blok kan realistisch gezien 3 tot 7 Bitcoin transacties per seconde aan. Het probleem is dat dit nu al niet voldoende is voor de grootte van het huidige netwerk. En het wordt alleen maar erger hoe meer gebruikers erbij komen.

Wat zijn de resultaten van deze limiet op de grootte per blok?

Een toename van gemiddelde transactietijden en fees. In principe wordt Bitcoin geleidelijk een functionele analoog van het huidige systeem van bankoverschrijvingen.

Op een gemiddelde dag redt het Bitcoin netwerk zich prima. Echter wordt het lastiger tijdens de pieken wanneer gebruikers soms wel enkele uren of meer dan een dag moeten wachten tot hun transactie compleet is.

Daarnaast is de snelheid waarmee Bitcoin miners een specifieke transactie verwerken direct afhankelijk van hoe hoog de fee is die de afzender heeft ingesteld voor elke transactie. Dit creëert een markt van transactie fees: als gebruikers willen dat hun transacties snel verwerkt worden, dan zullen ze steeds hogere fees moeten betalen om met elkaar te concurreren.

In de beginjaren waren de commissies slechts een fractie van een cent. Vandaag moet je echter een fee betalen van enkele centen of zelfs dollars als je je Bitcoins snel wil verzenden.

Zowel de transactietijden als de fees zijn geleidelijk aan het toenemen in de laatste paar maanden, waardoor Bitcoin meer begint te lijken op een functionele tegenhanger van bankoverschrijvingen. En dit is een existentieel gevaar voor cryptocurrency: als we al een populairder en meer wijdverspreid alternatief hebben, waarom zouden we Bitcoin dan überhaupt gebruiken?

Is er een oplossing voor het schaalprobleem?

Er zijn veel oplossingen voorgesteld, maar vandaag de dag is er nog geen een van geïmplementeerd.

Het schaalprobleem wordt al een flinke tijd onder de loep genomen. Ongetwijfeld waren de eerste 2 serieuze pogingen om het op te lossen de BIP 100 en de BIP 101, waar BIP staat voor Bitcoin Improvement Proposal. Ze werden geïntroduceerd in 2015 respectievelijk door de Bitcoin Core developers Jeff Garzik en Gavin Andresen.

Beide hadden het doel om de block size limit te verhogen en beide oplossingen waren ‘hard-fork’, wat betekent dat als ze geïmplementeerd zouden worden, de oudere versies van het Bitcoin netwerk incompatibel zouden worden met het nieuwe netwerk. Het verschil tussen de 2 oplossingen was dat BIP 100 de block size limit instelbaar wilde maken voor miners, terwijl BIP 101 simpelweg de limiet van 1mb naar 8mb wilde verleggen.

Er vonden veel verhitte discussies plaats in de hele Bitcoin community in 2015 over welk voorstel geïmplementeerd moest worden. Het had echter geen zin, omdat zowel BIP 100 als BIP 101 beide niet op merkbare wijze in het netwerk zijn uitgevoerd.

De geschiedenis lijkt zichzelf te herhalen en momenteel zijn er weer twee oplossingen die strijden voor goedkeuring van de community: Bitcoin Unlimited en SegWit. Het probleem van onvoldoende capaciteit is nu echter veel dringender dan het was in 2015 en toch is er nog geen duidelijke leider in deze verhitte, sterk gepolitiseerde strijd tussen de twee voorstellen.

Wat is het plan van BU en SegWit om Bitcoin op te schalen?

Bitcoin Unlimited wilt helemaal af van de block size limit, en het over te laten aan de miners om tot een consensus te komen. SegWit daarentegen wilt de grootte per blok verhogen tot 4 megabytes door sommige gegevens die niet cruciaal zijn voor de transacties te verwijderen uit elk blok.

Bitcoin Unlimited is een directe evolutie van de vorige niet-succesvolle pogingen om het block size debat op te lossen. Merkende dat de ideeën om de limiet te verhogen of om het aanpasbaar te maken, weinig ondersteuning kregen, wilt BU helemaal af doen met de limiet. In de plaats daarvan kunnen miners zelf blokken maken van willekeurige grootte en deze over het netwerk uitzenden – zodat de blokken met elkaar kunnen concurreren voor een plek op de Blockchain.

SegWit biedt een andere oplosing. Het was origineel ontworpen om een niet gerelateerd probleem op te lossen – “transactie malleability” (een bug waarbij het soms lijkt alsof transacties dubbel worden uitgevoerd). In het kort: om dit probleem op te lossen moesten er een aantal niet cruciale gegevens, zogenaamde “witness data,” verwijderd worden uit de transacties en van de Blockchain af.

Dit zorgde voor een toename van de blok grootte tot wel 4MB, ook al schatten de meeste experts die dicht bij de ontwikkeling staan dat het netwerk waarschijnlijk zal vestigen rond een blok grootte van 2MB na het uitbrengen van SegWit.

Er is nog een manier waarop SegWit de transactie capaciteit zou kunnen verhogen, al is het niet op een directe manier. Door de transactie malleability op te lossen zal het Bitcoin netwerk veilig genoeg zijn om off-the-Blockchain applicaties te maken, zoals het Lightning Network. Dat zou Bitcoin transacties nog veel goedkoper en sneller maken dan ooit tevoren.

Waarom is BU nog niet geïmplementeerd?

Er zijn veel tegenstanders. Het belangrijkste argument is dat BU Bitcoin meer gecentraliseerd zou maken.

Sommige mensen verwachten dat de afschaffing van de block size limit zoals voorgesteld door Blockchain Unlimited zal zorgen voor een ongecontroleerde “Blockchain bloat”. Momenteel is de grootte van de hele Blockchain meer dan 100 gigabytes en dat is met 3 tot 7 transacties per seconde. Vergelijk dat even met de limiet van Visa met 24.000 transacties per seconde en je begrijpt het probleem al snel.

Het is berekend dat als de block size limit verhoogd zou worden tot het punt waarop het voldoende is voor wereldwijd gebruik, de Blockchain zou groeien tot enkele petabytes, zo niet meer.

Dat zou leidden tot meer centralisatie van Bitcoin; alleen grote bedrijven zouden de opslagruimte, rekenkracht en bandbreedte kunnen veroorloven om zulke enorme hoeveelheden gegevens te verwerken. En dat gaat in tegen de filosofie van Bitcoin als het geld dat door haar eigen gebruikers wordt beheerd.

En waarom SegWit nog niet?

Eigenlijk om dezelfde reden als voor BU.

SegWit is ook geen perfecte gedecentraliseerde oplossing. Op zichzelf zal het de blok capaciteit verhogen op korte termijn tot ongeveer 2 megabytes, en later tot 4 megabytes. Afhankelijk van de groei van het netwerk in de toekomst zal dit genoeg zijn voor een paar jaar of misschien wel tientallen jaren.

Echter zal vroeg of laat de limiet weer bereikt worden, en zal de capaciteit weer moeten worden verhoogd. De waarde van SegWit op lange termijn ligt in het oplossen van de transactie malleability bug. Die maakt het mogelijk om de doorgang van het netwerk te verhogen door sidechain applicaties uit te voeren zoals het Lightning Network – en laten die applicaties nu juist gecentraliseerd zijn.

Het Lightning Network kan het beste beschreven worden als een onderling verrekeningssysteem dat bovenop de Blockchain gebouwd is. Eerst zullen Bitcoins van verschillende gebruikers gestort worden op een apart betaalkanaal via een reguliere Bitcoin transactie, wat ongeveer 10 minuten – of langer, afhankelijk van het aantal transacties in het netwerk – duurt om te bevestigen. Hierna zullen alle betalingen binnen dat betaalkanaal uitgevoerd worden van de Blockchain af en kunnen ze onmiddellijk en zeer goedkoop – of zelfs gratis – verwerkt worden door een betrouwbare derde partij.

Het moment dat alle deelnemers van een betaalkanaal het eens zijn over de distributie van de Bitcoins, kunnen ze het nettoresultaat terugsturen naar de Blockchain, en het Bitcoin netwerk kan de geldigheid van de transacties bevestigen.

Het enige probleem hier voor veel mensen in de crypto community is dat er geen merkbaar verschil is tussen een “onderling verrekeningssysteem onderhouden door een betrouwbare derde partij” en banken – centrale autoriteiten die overbodig gemaakt zouden worden door Bitcoin.

Gaat deze crisis snel opgelost worden?

Bitcoin wordt met de dag minder bruikbaar – en voor een ecosysteem dat meer dan $160 miljard waard is, is dat geen situatie die nog lang door kan gaan. Het zal dus snel opgelost moeten worden, enerzijds of anderzijds.

Beide kanten van het SegWit vs. BU debat hebben argumenten die de andere oplossing als schijnbaar onverenigbaar met de kernwaarden van Bitcoin neerzetten.

Het conflict heeft naast een technologische, ook een politieke grond. Beide partijen claimen dat de andere partij de groei van Bitcoin probeert te ondermijnen of het onder controle wilt nemen. Er zijn ook theorieën die aandringen dat de andere kant een informatiestrijd voert die in het geheim door belanghebbenden wordt gefinancierd (Blockstream voor SegWit en Roger Ver voor BU). Uiteraard heeft elke kant gelijk in hun verhaal en is hun oplossing natuurlijk de “meest voor de hand liggende.”

Als we naar de cijfers kijken, dan lijkt het erop dat er sprake is van een gelijkspel.  De uiteindelijke beslissing zal gemaakt worden door de meerderheid van de miners in het Bitcoin netwerk. En op het moment lijkt het erop dat hun ondersteuning geen duidelijke voorkeur heeft. SegWit lijkt de favoriet te zijn in de race maar Bitcoin Unlimited heeft ook vaak genoeg op kop gelegen in het verleden.

Er is echter ook een groot deel van het netwerk – iets minder dan 50% – dat nog niet expliciet zijn mening heeft gegeven voor een van de voorstellen. Het is dus mogelijk dat het uiteindelijke resultaat wordt beslist doordat zij een kant zullen nemen. Maar ze kunnen ook zwijgen totdat de concurrerende oplossingen hun conflict oplossen.

Wat als niemand een stap terug doet en het gelijkspel voortzet?

Zelfs als geen kant de leiding neemt, kan er alsnog een compromis worden bereikt.

Er is een derde manier, die niet onmogelijk is en waarschijnlijk het meest voordelig uit zal pakken voor het netwerk. Een toename van de block size limit en de implementatie van SegWit sluiten elkaar niet zomaar uit, en er is een groeiende beweging in de community die vindt dat een compromis tussen de twee oplossingen een goed idee is.

In feite was die overeenkomst al bijna een keer bereikt. Beide partijen zaten rond de tafel in februari 2016 in Hong Kong met vertegenwoordigers van Bitcoin Core, de mensen achter SegWit en een aantal belangrijke mining bedrijven, waarvan de meeste voor een toename in blok grootte waren. Beide partijen leken een overeenkomst te hebben bereikt – om door te gaan met SegWit, en een toename te maken om de block size limit naar 2mb te verleggen.

Helaas is de Hong Kong overeenkomst niet nageleefd – de ontwikkelaars van Bitcoin Core hebben de blok grootte niet vergroot in de laatste versie van SegWit, en de miners hebben het gebruik hiervan dus ook afgewezen.

Maar de praktijk heeft aangetoond dat een consensus tussen de twee partijen mogelijk is en dat er een oplossing bestaat waarmee iedereen tevreden zou zijn. Er is nog hoop dat een politieke confrontatie plaats zal maken voor samenwerking – en dat we Bitcoin nog krachtiger zullen zien groeien dan ooit tevoren.