-

Wat is het schaalbaarheidsprobleem van Bitcoin en hoe wordt dit opgelost?

In de laatste twee maanden van 2017 sloeg de gekte toe in de cryptomarkt. De koers van bitcoin brak record na record en bereikte een voorlopig hoogtepunt dat net iets boven de twintigduizend dollar lag. De populariteit maakte het schaalbaarheidsprobleem van Bitcoin zichtbaar.

De explosie van media-aandacht leidde namelijk tot miljoenen nieuwe gebruikers en met hen miljoenen extra transacties. Toen gebeurde er iets wat door kenners al geruime tijd werd voorzien: het Bitcoin netwerk liep tegen de grenzen van zijn capaciteit aan. Met een maximumcapaciteit van grofweg zeven transacties per seconde raakte het netwerk overbelast.

Hoe werkt dat precies? Bitcoin transacties worden verspreid over het netwerk en verzameld in een zogeheten lokale transactie pool. Vervolgens worden de transacties in bundels van maximaal 1 MB verwerkt in een blok en toegevoegd aan de blockchain. De blockchain is dus simpelweg een chronologische keten van blokken met transactiedata.

Één zo’n blok heeft een maximale grootte van 1 MB en de gemiddelde bitcoin transactie is grofweg 250 b groot, daarnaast verwerkt het netwerk gemiddeld 1 blok per 10 minuten. Dit vertaalt zich terug naar die eerder genoemde zeven transacties per seconde. Maar wat nou als er tientallen of honderden transacties per seconde worden gedaan?

Wie betaalt, bepaalt

Het Bitcoin netwerk maakt gebruik van een soort veilingsysteem. Gebruikers kunnen tegen elkaar opbieden om hun transactie sneller verwerkt te laten worden. De miners besluiten uiteindelijk welke transacties zij in een blok opnemen en vervolgens aan de blockchain toevoegen. Vanuit het oogpunt van de miner is het logisch dat hij de transactie pakt die de hoogste fee betaalt. Deze fee gaat rechtstreeks naar de miner en is naast de blockreward de enige reden waarom er überhaupt miners zijn.

Niemand verplicht je ertoe om een hoge fee te betalen. Maar als je weigerde om een competitieve fee met je transactie mee te sturen dan kon het gebeuren dat je dagen, of soms wel weken, moest wachten voordat een miner je transactie in een blok verwerkte en deze ‘definitief’ werd. Als je bitcoins kocht bij één van de Nederlandse cryptocurrency brokers en de coins naar je wallet liet versturen als langetermijninvestering was er niets aan de hand. Maar veel gebruikers stuurden hun coins naar een exchange om er vervolgens actief mee te gaan handelen. Derde partijen wachten altijd tot je transactie een aantal confirmaties heeft omdat ze dan pas met zekerheid kunnen zeggen dat de transactie onomkeerbaar is.

Zo kon het dus gebeuren dat je voor een snelle confirmatie van je transactie eind december een fee van twintig dollar of meer moest betalen. Nu is dat voor voor transacties met een waarde van tienduizenden euro’s nog wel acceptabel maar voor kleine transacties absoluut niet.

Deze ‘network congestion’ zorgde bij een aantal gebruikers voor de nodige frustratie en tegenstanders van Bitcoin maakte van de mogelijkheid gebruik om de digitale valuta af te schrijven als een serieus alternatief voor het bancaire systeem. Als het Bitcoin netwerk al moeite had met deze relatief lage aantallen transacties, hoe kan het dan ooit opschalen naar de benodigde capaciteit voor een wereldwijd betaalnetwerk, zo redeneerden zij.

De kans bestaat dat deze personen over niet al te lange tijd hun woorden zullen moeten terugnemen. Op de achtergrond, buiten het zicht van de spotlights en de koersstijging die iedereen bezighield, werd (en wordt) er iedere dag weer aan de software gesleuteld om tot oplossingen te komen. Dit werk wordt verricht door een steeds grotere groep van softwareontwikkelaars die zich niet laat leiden door de waan van de dag en vaak zonder dat ze daarvoor betaald worden aan het verbeteren van de Bitcoin software werken.

Welke oplossingen adresseren het schaalbaarheidsprobleem?

Voor het opschalen van de transactiecapaciteit is een aantal mogelijkheden. Deze mogelijkheden kunnen we grofweg onderverdelen in on chain scaling en off chain scaling.

On chain scaling

Bij on chain scaling wordt er naar manieren gezocht om meer transacties in de blockchain kwijt te kunnen. Dit kan op een creatieve en elegante manier door meer transacties in een blok van 1MB te verwerken, hier is Segwit een voorbeeld van. Of op een minder elegante manier door simpelweg de blocksize te verhogen, zoals Bitcoin Cash heeft gedaan.

SegWit

SegWit is een afkorting voor Segregated Wittness, vrij vertaald gedeelde getuige. Dit slaat op de handtekening die bij elke transactie in een blok wordt meegestuurd. Die handtekening is deel van het blok en neemt in die zin ook bytes in.

Dat zit zo: een blok op de blockchain is 1MB. Daarvan is een deel gereserveerd voor zogenaamde overhead, de handtekening valt in die overhead. De rest van die 1 MB bestaat uit informatie over de transactie zelf.

Wat SegWit doet is die overhead uit het blok halen. Zo is er extra ruimte voor meer data over de transacties zelf; ofwel, er passen zo meer transacties in één blok.

Die overhead wordt als een extended blok aan het einde van het reguliere blok geplaatst. Dit zorgt ervoor dat het blok + extended blok samen groter zijn dan 1MB.

Sinds augustus 2017 ondersteunen alle bitcoin miners SegWit en mogen zij transacties zonder SegWit weigeren.

Verhogen van blocksize

Niet iedereen binnen de bitcoin community is het eens met SegWit. Velen zagen namelijk heil in het vergroten van de blokgrootte. De gedachte luidt: ‘Hoe groter het blok, des te meer transacties tegelijkertijd verwerkt kunnen worden.’ Dit zorgde voor een controverse in de bitcoin community.

Om dit verschil in inzicht het hoofd te bieden kwam er op 1 augustus 2017 een hard fork op de blockchain van bitcoin. Dat betekent eigenlijk dat een chain zich afsplitst en verder gaat als eigen blockchain en eigen munt. Bitcoin Cash (BCH) werd geboren. Het grootste verschil met Bitcoin is de grootte van het blok.

De blokken van Bitcoin bleven 1MB terwijl de blokken van BCH in eerste instantie 8MB waren. Inmiddels is een BCH-blok 32MB. Dit betekent dat er meer transacties in een blok kunnen maar ook dat de blockchain vele malen groter kan worden.

Op den duur is het niet meer te doen om de volledige BCH-blockchain op een normale computer te downloaden en zullen vooral miners met heel erg veel computerkracht hiermee werken. Dat heeft weer gevolgen voor het decentrale karakter van de munt. 

Off chain scaling

Bij off chain scaling kijken we naar manieren om extra lagen bovenop de blockchain te bouwen en op deze laag allerlei transacties met elkaar te doen. Vervolgens zouden deze transacties gebundeld kunnen worden en als één transactie op de blockchain worden verstuurd.

Lightning Network

In 2015 verscheen er een whitepaper aan de hand van Thaddeus Dryja en Joseph Poon. Hierin werden de contouren van het Lightning Network beschreven.

Bij het Lightning Network vinden transacties niet meer plaats op de blockchain zelf, maar in een extra laag over de blockchain heen. Deze lagen worden channels (kanalen) genoemd. Het Lightning Network houdt bij welke transacties er binnen deze kanalen plaatsvinden, en verstuurt het eindsaldo naar de blockchain als een kanaal wordt gesloten.

In plaats van dat elke transactie los wordt verstuurd, kan er nu een blok met meerdere transacties tegelijkertijd worden toegevoegd aan de blockchain.

Twee bedrijven kunnen een channel tussen elkaar openen. Deze geven ze een waarde mee, bijvoorbeeld twee bitcoin. Dat betekent dat zij per transactie maximaal twee bitcoin naar elkaar kunnen sturen. Maar deze twee bedrijven zijn niet de enige met een channel. Een derde bedrijf kan ook een channel hebben met één van deze bedrijven en op haar beurt ook weer een channel met een ander bedrijf. Zij kunnen allemaal gebruik maken van elkaars channels. Zo worden transacties verricht zonder dat de blockchain hiermee belast wordt.

Pas als een channel gesloten wordt dan verdwijnt de eindstand als transactie in een memorypool. Een miner kan vervolgens deze transactie verwerken in een blok en vereeuwigen op de blockchain.

Het Lightning Network is dit jaar geïmplementeerd en er wordt al mee geëxperimenteerd en op betaald. Het netwerk bestaat bij de gratie van het aantal actieve nodes en dat aantal groeit gestaag.

Is dit genoeg?

Mocht de situatie zoals die zich voordeed aan het eind van 2017 zich herhalen dan lijkt bitcoin volwassener en beter om te kunnen gaan met een hoog aantal transacties in korte tijd. Daarnaast zijn SegWit en het Lightning Network niet de enige oplossingen waar naar gekeken wordt. Dat is ook het mooie aan bitcoin als protocol; het is programmeerbaar en daardoor adaptief. De bitcoincommunity is actief en constant op zoek naar meer efficiëntie.

 

Deel dit bericht

Plaats een reactie

Uw e-mailadres wordt niet op de site getoond