Aanval op Bitcoin eenvoudiger dan gedacht
Het blijkt eenvoudiger dan gedacht om het Bitcoin-netwerk aan te vallen, en daarmee de regels van het netwerk te veranderen. Dat hebben onderzoekers van de Universiteit Twente eind vorige week gepresenteerd op een internationale conferentie. Met slechts 20 % van alle rekenkracht op het netwerk is in een paar dagen een succesvolle aanval uit te voeren, berekenden informatici van de Twentse universiteit.
Bitcoin (met grote ‘B’) is de naam van het netwerk waarop alle gebruikers van de cryptomunt bitcoin (kleine ‘b’) zijn aangesloten. Het netwerk maakt gebruik van blockchaintechnologie, waarbij alle individuele transacties verschijnen op blokken die aan elkaar worden gekoppeld. Op die manier ontstaat een soort kruimeltjesspoor in de tijd, waarop voor altijd te zien blijft wie op welk moment welk bedrag aan een ander overmaakte.
De grootte van zo’n blok (gebruikers spreken van een block) is echter beperkt, namelijk 1 MB. Daardoor past er maar een beperkt aantal transacties op elk blokje én daardoor is de capaciteit voor het doen van transacties op het Bitcoin-netwerk erg beperkt: zo’n zeven per seconde. Dat is erg laag vergeleken met bijvoorbeeld de duizenden transacties per seconde die creditcardmaatschappijen kunnen doen.
Daarom wil een deel van de Bitcoingemeenschap graag de capaciteit van de blokken uitbreiden. Daarvoor is echter een meerderheid van stemmen nodig en die is er tot nu toe niet gekomen, omdat de rest van de deelnemers het bij het oude wil laten.
Nu laten onderzoekers van de Universiteit Twente als eersten zien dat voor een verandering helemaal geen meerderheid nodig is. Met ongeveer 20 % van de rekenkracht op het Bitcoin-netwerk zou je binnen een paar dagen een aanval kunnen uitvoeren om veranderingen af te dwingen.
Dieper
Om beter te begrijpen hoe dat werkt, moeten we eerst wat dieper duiken in de werking van de blockchain en het minen, het goedkeuren van transacties. Ten eerste doen gebruikers voortdurend aanvragen voor transacties. Computers op het netwerk staan constant te rekenen aan ingewikkelde sommetjes die, als ze zijn opgelost, een transactie goedkeuren (valideren). De miner krijgt hiervoor een klein bedrag in bitcoins. Per dag worden er op het Bitcoin-netwerk ruim 200.000 transacties gedaan. Kijk maar eens op de website blockchain.info die alle statistieken bijhoudt.
Het goedkeuren van transacties vindt op verschillende plekken tegelijk plaats, en daardoor komt het regelmatig voor dat tegelijk twee nieuwe blokken het leven zien. Doordat het tijdstempel hetzelfde is, kunnen de blokken niet achter elkaar in de keten worden gezet, maar is een zogeheten fork ontstaan, een splitsing.
‘Dit is een volkomen normaal proces. Een kleine splitsing ontstaat en aan beide ketens kunnen nieuwe blokken worden aangeregen’, vertelt onderzoeker Ansgar Fehnker van de Universiteit Twente. Echter, doordat alleen het maken van blokken aan de langste keten wordt beloond, groeit deze keten verder en blijft de andere keten maar een kort stompje. Na ongeveer zes blokken in de langste zijketen, mag je deze voortaan als de hoofdketen beschouwen en zijn de transacties pas echt zeker. ‘Dat is de reden dat ik mensen altijd adviseer om even te wachten met het uitgeven van net ontvangen bitcoins. Pas na ruim een uur weet je zeker dat die transactie gegarandeerd is.’
Dit is de normale gang van zaken, maar je kunt die zes blokken in een zijtak ook met opzet en in het geniep uitvoeren. Dan mobiliseer je een groepje miners, die vaak al samenwerken in een pool. Met die gebundelde rekenkracht ga je stiekem nieuwe blokken maken met de nieuwe, gewenste regels. Dat is niet zichtbaar voor de buitenwereld.
En dan komt de crux: als je achter de schermen voldoende nieuwe blokken achter elkaar hebt gerealiseerd, publiceer je die in één keer. Je voegt dus in één keer een lange zijtak toe aan de bestaande blockchain. De kortere zijtak heeft nu dus geen enkele kans om te winnen en er is dus plotsklaps een definitieve vertakking gerealiseerd, waarin de nieuwe regels gelden.
Uit de berekeningen van de Twentenaren komt dat zo’n 20 % van de miners (lees: rekenkracht) al voldoende moet zijn om zo’n stiekeme afsplitsing voor elkaar te krijgen. Daarmee duurt het nog altijd een paar dagen om aan de benodigde zes, zeven blokken te komen. ‘Je hebt bij elk blok maar zo’n 20 % kans. Het blijft een soort loterij, dus je moet het een aantal dagen proberen’, aldus Fehnker. Hier krijg je een indruk van de groepjes - pools - waarin miners zich verenigen om hun computers samen te laten werken aan de berekeningen.
Theoretisch
Het werk van de Twentse onderzoekers is vooral een theoretische studie, waarbij het ging om het wiskundige bewijs van deze mogelijkheid. Het is nog maar de vraag of bitcoin-miners deze moeite willen nemen, alleen om andere afspraken te forceren. ‘De meesten zijn inderdaad heel braaf en laten hun computers gewoon rekenen voor het goedkeuren van transacties. Zij houden zich keurig aan de regels, want zo verdienen ze geld’, zegt Fehnker.
En mocht het toch komen tot een aanval van een minderheid op de regels van het Bitcoin-netwerk, dan is het maar de vraag of dat onopgemerkt kan plaatsvinden. Want als 20 % van de computers hun rekenkracht een paar dagen inzet voor een aanval, dan kan die processing power tijdelijk even niet worden gebruikt om transacties goed te keuren. Daardoor zullen transacties eventjes (nog) iets langer duren en dat zouden mensen kunnen merken.