De Block Size discussie

Published by The Crypto Invstor on

De block size discussie is één van de meest eindeloze discussies in cryptoland. Het is een discussie die cryptofanaten in twee kampen heeft verdeeld en in 2017 zelfs heeft geleid tot een hard fork van Bitcoin waaruit Bitcoin Cash is geboren.

In deze blog post leg ik je uit waar de block size discussie over gaat. Ook leg ik je uit welke argumenten de cryptofanaten die vóór grote blocks zijn aandragen en welke argumenten cryptofanaten die tegen grote blocks zijn aandragen. Maar allereerst leg ik je uit wat een block is en welke functie de block size heeft.

Block size uitgelegd

Zoals velen natuurlijk weten maken cryptocurrencies gebruik van een onderliggend blockchain netwerk. Als we het woord blockchain vertalen en opknippen krijgen we letterlijk “een ketting van blokken”. Een block kan worden gezien als een bundel met transacties. Elke transactie die wordt uitgevoerd wordt gevalideerd door een aantal nodes (gebruikers) op het netwerk. Deze transactie wordt vervolgens met andere transacties gebundeld in een block en toegevoegd aan de blockchain. Wanneer een block is toegevoegd aan de blockchain dan zijn de transacties binnen dit block een vast gegeven.

Elk block heeft een maximum block size. Dit is simpelweg een limiet wat aangeeft hoe veel transacties er maximaal in een block gebundeld kunnen worden. Bij de introductie van Bitcoin bepaalde de ontwikkelaar Satoshi Nakamoto dat blocks maximaal 1 mb groot mogen zijn. Miners binnen het Bitcoin netwerk zijn vrij om een block tot een bepaalde hoogte te vullen met transacties zolang deze niet boven de 1 mb uitkomt. Blocks die groter zijn dan 1 mb werden geweigerd door het netwerk.

Waarom is er een maximale block size?

De voornaamste reden voor de introductie van een maximale block size is het tegengaan van flooders. Als er geen maximale block size zou zijn dan zou men theoretisch het netwerk van de desbetreffende cryptocurrency vol kunnen vuren met miljarden microtransacties. Dit zou ervoor zorgen dat het complete netwerk spaak loopt en dat andere transacties veel te traag verwerkt worden.

Daarbij zorgt een maximale block size ook voor het in stand houden van consensus. Doordat er een maximale block size is weten de nodes op het netwerk welke blocks sowieso al niet valide zijn. Als je een block aanbiedt van 3 terabyte wordt deze door het netwerk al bij voorbaat afgekeurd. De nodes hoeven dan niet in de legitimiteit van de transacties te duiken.

Als laatste draagt de maximale block size bij aan de decentralisatie van de mining pools. Als er geen maximale block size zou zijn dan zouden grote mining pools hun kracht kunnen bundelen om het netwerk te vullen met zulke gigantische blocks dat kleine pools het minen van de gigantische niet meer kunnen bijhouden. Zo verdwijnen kleinere pools en wordt de macht binnen het netwerk verdeeld onder steeds minder spelers.

De limitaties van een maximale block size

Zoals ik je net heb uitgelegd bepaalt een block size hoe veel transacties er maximaal in een block passen. Echter, om de snelheid waarmee nieuwe Bitcoin gemined worden continu te houden is er ook een block time. De block time bepaalt om de hoeveel minuten er een block gecreëerd kan worden en aan de blockchain kan worden toegevoegd. Deze block time wordt in stand gehouden door de mining difficulty. Als de miners op het netwerk te snel gaan met het creëren van een block dan wordt het creëren van een block door het netwerk dusdanig moeilijker gemaakt dat het langer duurt. Als de miners te traag gaan dan is dit proces omgekeerd.

Kortom, we hebben nu twee variabelen:

  1. Een maximaal aantal transacties dat in een block past als resultaat van de block size.
  2. Een vooraf gedefinieerde tijd die miners erover moeten doen om een block aan de blockchain toe te voegen.

Stel, je hebt een block time van 1 uur en er passen maximaal 10.000 transacties in een block. Dan kan het netwerk dus maximaal 10.000 transacties per uur verwerken. Dit is waar er problemen ontstaan omtrent de block size. Want de vraag luidt nu:

“Wat gebeurt er als er meer dan 10.000 transacties per uur moeten worden verwerkt?”

Op deze vraag zijn twee mogelijke antwoorden. Het ene gevolg is lange wachttijden voor de verwerking van transacties en het tweede gevolg is hoge transactiekosten. Als het netwerk meer transacties aangeboden krijgt dan er verwerkt kunnen worden dan kunnen miners gaan kiezen welke transacties ze verwerken. Uiteraard zullen miners er altijd voor kiezen om transacties te verwerken van personen die bereid zijn om extra te betalen voor een snelle verwerking van hun transactie. Dit heeft als gevolg dat de gemiddelde transactiekosten omhoog gaan. Personen die niet bereid zijn om extra transactiekosten te betalen moeten hierbij accepteren dat hun transactie blijft liggen. Dit kan soms wel uren tot dagen duren.

Schaalbaarheid en cryptocurrency

Twee unieke punten waarmee cryptocurrencies zich profileren zijn razendsnelle verwerking van transacties en lage transactiekosten. Echter, in drukke tijden gaat dit voor sommige cryptocurrencies zoals Bitcoin niet helemaal op. Om de bovengenoemde problemen tegen te gaan moet er dus een mogelijkheid komen om meer transacties per uur te kunnen verwerken. Oftewel, de schaalbaarheid van het netwerk moet worden verhoogd.

Zoals ik eerder heb uitgelegd zijn er twee factoren die de schaalbaarheid van het netwerk bepalen: de block size en de block time. Om de schaalbaarheid te vergroten zou je enerzijds de block time kunnen verlagen zodat er meer blocks per uur gecreëerd kunnen worden. Met eenzelfde block size zou dit betekenen dat er per uur meer transacties verwerkt worden. Echter, het verlagen van de block time heeft flinke nadelen zoals een hogere orphan rate en frequentere forks. Gezien deze nadelen blijft er tussen block time en block size maar één optie over: het vergroten van de block size. Grotere blocks bieden natuurlijk ruimte voor meer transacties en verhogen zo de schaalbaarheid van het netwerk.

De block size discussie

Als het gaat over de block size discussie dan is die van Bitcoin natuurlijk de meest prominente. In de eerste jaren van Bitcoin waren er al wel wat angsten over de schaalbaarheid van het netwerk maar nog geen tastbare problemen. Echter, in 2016/2017 begon het Bitcoin netwerk deze problemen steeds meer te voelen. Tijdens de crypto gekte eind 2017 liepen de transactiekosten op het Bitcoin netwerk door deze problemen zelfs op tot in de tientallen euro’s.

Het verhogen van de block time heeft echter niet alleen maar voordelen. Er zijn helaas ook veel nadelen waarvan een afname van de decentralisatie het grootste nadeel is. Net als een verlaging van de block time zorgt grotere blocks ervoor dat de machtsverhoudingen schever worden. Grotere pools/miners krijgen meer macht binnen het netwerk en de macht van kleinere miners/pools neemt af.

Het unieke van een cryptocurrency als Bitcoin is decentralisatie. Bitcoin is van iedereen en iedereen zou het moeten kunnen minen. Echter, door het vergroten van de block size komt er meer macht bij grote miners/pools en minder macht bij kleine miners/pools. Dit is niet alleen slecht vanuit een filosofisch oogpunt omtrent decentralisatie maar kan zelfs ook desastreus zijn. Als één mining pool namelijk meer dan 51% van de macht binnen een netwerk heeft dan zou deze mining pool een 51% aanval kunnen uitvoeren en het netwerk kunnen kapen.

Kortom, een netwerk als die van Bitcoin kent een groot dilemma waarbij men moest kiezen tussen schaalbaarheid en decentralisatie. Het voorstel om de block size van het Bitcoin netwerk te vergroten van 1 mb naar 2 mb verdeelde daarom ook de Bitcoin community in twee kampen. De discussie liep zo erg spaak dat er maar één oplossing over bleef. Dit was een oude Bitcoin met een block size van 1mb en een nieuwe Bitcoin met een block size van 2 mb. Deze nieuwe Bitcoin werd geboren uit een hard fork en staat nu bekend als Bitcoin Cash.

Alternatieve oplossingen voor schaalbaarheid

Een deel van de Bitcoin community pleitte voor het vergroten van de blocks om zo een betere schaalbaarheid te creëren. Echter, de tegenstanders van het vergroten van de block size realiseerden zich natuurlijk wel dat het probleem rond schaalbaarheid aangepakt moest worden. Echter, zij pleitten voor andere manieren om de schaalbaarheid te vergroten.

Eén van deze manieren was de introductie van Segregrated Witnesses, oftewel SegWit. SegWit is een Bitcoin protocol update die oorspronkelijk was bedoeld om een ander probleem tegen te gaan. De SegWit update voerde een wijziging door in de manier waarop data is opgeslagen in een block. Een bijwerking hiervan is dat transacties lichter werden. Hierdoor passen er meer transacties in een block wat leidt tot een hogere schaalbaarheid. SegWit is op 23 augustus ingevoerd op het Bitcoin netwerk. Echter, de volledige adoptie ervan verloopt traag. Deze trage adoptie was vervolgens weer een argument voor de pro block size kant om de noodzaak van grotere blocks aan te kaarten.

Kortom, de block size discussie kent een complex achterliggend probleem en een voortdurende afweging tussen schaalbaarheid en decentralisatie. Een cryptocurrency als Bitcoin heeft zowel schaalbaarheid als decentralisatie nodig als bestaansrecht.