Over het algemeen zijn blockchains extreem veilig en kunnen ze niet gehackt worden. Maar ze kunnen wel degelijk aangevallen worden. Eén van de manieren om een blockchain aan te vallen, is met een 51% aanval. In dit artikel leggen we uit wat zo een aanval betekent, en welke gevaren het met zich meebrengt.

Wat is een 51% aanval?

Een 51% aanval is een aanval waarbij de aanvaller een meerderheid van een blockchain’s rekenkracht in handen krijgt. Een 51% aanval wordt ook wel een 51% attack of meerderheidsaanval genoemd. Deze aanval wordt voornamelijk uitgevoerd op blockchains met het proof of work consensus mechanisme.

Aan de hand van het volgende voorbeeld kunnen we een 51% aanval het best uitleggen:

In dit voorbeeld over een 51% aanval op Bitcoin komen een aantal personen en een belangrijke term voor:

  • Karel: frauduleuze bitcoin-miner en gebruiker
  • Sanne: willekeurige bitcoin-miner
  • Elvira: willekeurige Bitcoin-gebruiker
  • Nonce: het getal waarnaar proof-of-work miners op zoek zijn om het volgende blok aan de blockchain toe te voegen. Wie als eerste de nonce vindt, mag het blok toevoegen en verdient een block reward.

Karel vindt als eerst de nonce en stuurt het door hem gecreëerde blok met bijbehorende informatie niet naar alle andere miners, zoals dat hoort. In plaats daarvan stuurt hij het alleen naar Sanne.

In dit blok plaatst Karel een transactie die nooit heeft plaatsgevonden. Volgens deze transactie heeft Elvira 10 bitcoins naar Karel gestuurd. Echter, in werkelijkheid heeft Elvira dit helemaal niet gedaan.

Door deze valse informatie gelooft Sanne nu dat Karel 10 bitcoins van Elvira heeft gekregen. Aangezien de rest van de miners deze foutieve informatie niet hebben ontvangen van Karel, gelooft de rest van de miners niet dat Elvira 10 bitcoins naar Karel heeft gestuurd. Kortom: er ontstaan twee waarheden.

“Er ontstaan twee waarheden”

Stel, op het moment dat Karel zijn foutieve blok deelt, is de blockchain 100 blokken lang. Nadat Karel het foutieve blok gedeeld heeft, is Karel’s versie van de blockchain 101 blokken lang, terwijl die van de andere miners nog steeds 100 blokken lang is. De andere miners hebben namelijk overeenstemming bereikt over de eerste 100 blokken, maar zijn niet op de hoogte van het 101e blok. Aangezien blockchain-software doorgaans de langste blockchain als waarheid ziet, zal deze gevolgd worden totdat de originele weer langer wordt. Doordat een foutieve waarheid geloofd kan worden, zeggen critici dat Bitcoin het Byzantijns generaal probleem niet heeft opgelost.

Zolang Karel als eerst de nieuwe nonce kan blijven vinden, kan hij Sanne voor de gek houden. Bij Bitcoin wordt er grofweg elke 10 minuten een nieuwe nonce gevonden. Elke keer als Karel de nonce als eerst vindt, wordt zijn blockchain één blok langer dan de blockchain van de overige miners, die geen overeenstemming bereiken over dat nieuwe blok. Over Karel’s blokken bereiken zij geen overeenstemming, omdat zij dit nieuwe blok simpelweg niet ontvangen.

Om op lange termijn een blockchain-versie van een bestaande blockchain te kunnen creëren die langer is dan van de rest van de miners, moet je consistent meer dan 50% van de rekenkracht van het netwerk bezitten. In dat geval is de kans dat je de nieuwe nonce als eerst vindt immers boven de 50%.

In de afbeelding hieronder zie je hoe een 51% aanval in essentie verloopt:

51% aanval uitgebeeld voorbeeld

Wat zijn de risico’s van een 51% aanval?

Iemand die een 51% aanval uitvoert, kan op verschillende manieren schade toebrengen aan de blockchain. Echter, er zijn ook een aantal belangrijke dingen waar de aanvaller geen controle over zal krijgen.

Wat kan iemand die een 51% aanval uitvoert?

Iemand die een 51% aanval uitvoert kan transacties of de volgorde daarvan wijzigen in het huidige blok. Ook kan hij ervoor zorgen dat slechts een paar of geen van de nieuwe transacties wordt bevestigd, en dat miners niet meer kunnen minen. Daardoor kan de aanvaller de enige miner van een bepaalde cryptomunt worden.

De meest opmerkelijke macht die een 51%-aanvaller krijgt, is dat hij zijn eigen transacties uit vorige blokken kan terugdraaien. Dit laatste kan alleen bij transacties die zijn gedaan in de periode waarin de aanvaller controle over het netwerk heeft.

Hierdoor kunnen de aanvallers hun cryptomunten dus vaker dan één keer uitgeven. Hoewel blockchains een goede oplossing bieden voor het double-spending probleem, is het via een 51% aanval toch mogelijk om je crypto meer dan één keer uit te geven. Gelukkig wordt het voor de aanvallers steeds duurder om hun transactie terug te draaien, naarmate de betreffende transactie verder in het verleden ligt. In hoe meer blokken de transactie is vastgelegd, hoe meer blokken je moet manipuleren aangezien de blokken aan elkaar verbonden zijn. Dit betekent ook dat je langer de gigantische hoeveelheid rekenkracht moet volhouden.

Wat kan iemand die een 51% aanval uitvoert niet?

De aanvaller van een 51% aanval kan niet de transacties van andere personen terugdraaien, kan er niet voor zorgen dat er geen transacties meer worden toegelaten, kan niet de block reward wijzigen, kan geen cryptomunten bijdrukken en kan ook geen cryptomunten stelen.

Video: 51% aanval en de consequenties daarvan

In deze video wordt nog eens duidelijk uitgelegd wat de gevolgen van een 51% aanval kunnen zijn.

Hoe groot is de kans op een 51% aanval?

De kans op een succesvolle 51% aanval is klein. Hoe klein de kans specifiek is, hangt af van een aantal factoren:

  • de benodigde rekenkracht;
  • de community van de betreffende blockchain;
  • de te behalen beloning;
  • en het protocol van de betreffende blockchain.

De hoeveelheid rekenkracht die nodig is, is misschien wel de belangrijkste factor. Over het algemeen geldt daarom: hoe beter beveiligd de blockchain, hoe duurder de aanval. Een blockchain wordt beveiligd door de hoeveelheid rekenkracht die de miners investeren in het netwerk. Momenteel is Bitcoin de best beveiligde blockchain, waardoor de kans op een 51% aanval het kleinst is bij Bitcoin.

Naast dat de hoeveelheid rekenkracht afhangt van de initiële beveiliging van de blockchain, kan een krachtige reactie van de mining-community een 51% aanval ook flink duurder maken. Op het moment dat een 51% aanval wordt uitgevoerd, en de andere miners reageren daarop door nog meer te gaan minen, wordt het voor de aanvaller duurder om 51% van de rekenkracht te blijven leveren. In feite nemen de kosten van een 51% aanval dus toe naarmate er harder geconcurreerd wordt om de nieuwe nonce te vinden.

“In feite nemen de kosten van een 51% aanval dus toe naarmate er harder geconcurreerd wordt om de nieuwe nonce te vinden.”

Bovendien willen veel 51%-aanvallers geld zien. Ze willen de blockchain kapen zodat ze hun crypto meerdere keren kunnen uitgeven. Echter, op het moment dat een blockchain wordt aangevallen, zal dit direct openbare informatie zijn. Iedereen kan immers altijd zien wat er in een blockchain gebeurt. Veel mensen zullen hun vertrouwen in de betreffende blockchain verliezen, angstig worden en hun cryptomunten verkopen. Het gevolg is dat de prijs van de betreffende cryptomunt zeer hard zal dalen. De aanvaller kan dan dus cryptomunten meerdere keren uitgeven die bijna niets meer waard zijn.

Verder is het protocol van de betreffende blockchain belangrijk. Een goed voorbeeld is de Bitcoin-blockchain. De moeilijkheidsgraad om de nieuwe nonce voor het volgende Bitcoin-blok te vinden, wordt grofweg elke twee weken aangepast. Bitcoin maakt het automatisch moeilijker om de nonce te vinden als het netwerk er gemiddeld korter dan tien minuten over doet om het volgende blok te vinden. Als dit gemiddeld langer duurt dan tien minuten, wordt het makkelijker om de nonce te vinden. In het geval van een 51% aanval moet er veel extra rekenkracht worden ingezet, waardoor de nonce consistent sneller gevonden zal worden. Het Bitcoin-protocol zal dit opmerken en de moeilijkheidsgraad automatisch verhogen. Het resultaat is dat er op korte termijn nog veel meer rekenkracht nodig zal zijn om de aanval vol te houden. De kosten zijn daardoor veel hoger dan de baten.

“De kosten zijn […] veel hoger dan de baten”

Als de aanvaller niet wordt gemotiveerd door geld en een oneindige hoeveelheid geld heeft, zal het Bitcoin-protocol zichzelf aanpassen. Hiervoor zullen de overige nodes in het Bitcoin-netwerk consensus moeten bereiken met betrekking tot de veranderingen in de blockchain. Een hard fork is het resultaat, waarbij de blockchain gesplitst wordt. Miners mogen vervolgens kiezen welke blockchain ze gaan beveiligen: de originele of de blockchain van de aanvaller. De community achter Bitcoin kiest waarschijnlijk voor de originele blockchain, waardoor de aanvaller overblijft met een blockchain waar niemand actief op is.

Er bestaat dus een zeer klein risico op een succesvolle 51% aanval op Bitcoin. De kosten zijn torenhoog en de baten minimaal. Alleen aanvallers voor wie geld geen rol speelt, en puur als doel hebben om Bitcoin kapot te maken, kan een 51% aanval aantrekkelijk zijn. Op die manier kan Bitcoin gedwongen worden een hard fork te ondergaan, welke vervolgens ook weer kan worden aangevallen, etc. Echter, hoe groter en populairder Bitcoin wordt, hoe groter de belangen om Bitcoin in stand te houden.