Vele mensen zien blockchain als een van de veiligste (of zelfs dé veiligste) technologie van deze tijd. Maar zelfs de aller veiligste technologie heeft soms last van kwetsbaarheden. Omdat iedere blockchain vaak veel waarde bevat (transacties van cryptomunten), is het ook een groot doelwit voor hackers. De bekendste aanval op een blockchain zijn misschien wel de Double Spend Attacks. Maar wat is een Double Spend Attack? En zouden we ons er zorgen over moeten maken?
Bekijk snel
Wat is een Double Spend Attack?
Wanneer een blockchain kwetsbaar is voor een Double Spend Attack, kunnen gebruikers een cryptomunt meerdere keren gebruiken. Op deze manier kan iemand dus iets uitgeven wat hij eigenlijk helemaal niet meer in zijn bezit hoort te hebben. In dit geval is de transactie al eerder door het netwerk gevalideerd, maar is de gebruiker toch in staat om de cryptomunt nog een keer te laten valideren door het netwerk.
Het grote gevaar van een Double Spend Attack is dat het tot inflatie kan leiden. Er zit namelijk veel minder waarde aan een cryptomunt wanneer deze vaker gebruikt kan worden.
Hoe kan iemand een Double Spend Attack uitvoeren?
Het uitvoeren van een Double Spend Attack is niet makkelijk, maar wanneer je hier verstand van hebt, ook helemaal niet zo moeilijk. Eerst zal de blockchain kwetsbaar moeten zijn voor zo'n soort aanval. Dat is het geval wanneer transacties op hetzelfde moment worden gevalideerd.
Stel je eens voor dat ik 1 NEO in mijn bezit heb, deze naar jou stuur in een transactie. Vervolgens stuur ik ook 1 NEO naar een vriend van mij. Beide transacties worden het netwerk in gestuurd, en blijven wachten tot ze gevalideerd worden door de nodes in het netwerk. Het netwerk zal controleren of ik wel genoeg NEO in mijn bezit heb om de transactie te kunnen maken. Wanneer dit niet het geval is, wordt de transactie geweigerd. Op het moment dat beide transacties op hetzelfde moment gevalideerd worden, zal het netwerk niet zien dat ik eigenlijk maar 1 NEO had.
Op het moment dat het netwerk niet kwetsbaar is voor zo'n aanval, worden transacties een voor een gecontroleerd. Op deze manier wordt de transactie die ik naar jou heb gedaan wél gevalideerd, en de transactie die ik naar mijn vriend heb gedaan geweigerd. Ik heb namelijk geen NEO-munten meer over nadat ik mijn munt naar jou heb gestuurd.
Soorten Double Spend Attacks
Er zijn verschillende soorten Double Spend Attacks. Iedere soort heeft zo weer zijn eigen manier waarop de aanval wordt uitgevoerd en hoeveel slachtoffers er kunnen vallen. De belangrijkste drie zijn de Finney Attack, Race Attack en 51% Attack.
Finney Attack
Bij een Finney Attack is de aanvaller een miner in het netwerk van de blockchain. Op het moment dat de aanvaller (de miner dus) een transactie maakt, zorgt hij ervoor dat hij zijn eigen transactie kan minen. Wanneer hij dit heeft gedaan, stuurt hij de transactie echter nog niet naar het netwerk van de blockchain.
Vervolgens gebruikt hij precies dezelfde munt in een tweede transactie. Opnieuw zorgt hij ervoor dat hij deze transactie kan minen, waarna hij beide transacties het netwerk in stuurt. Op deze manier kan hij cryptomunt meerdere keren gebruiken.
Race Attack
De tweede soort is de Race Attack. Bij een Race Attack worden er ook twee transacties op hetzelfde moment in het netwerk gestuurd, alleen is de aanvaller niet per se een miner. De aanvaller gebruikt namelijk twee verschillende machines om de transacties mee te versturen.
In de eerste transactie stuurt hij de munten naar een slachtoffer toe, die de transactie zal accepteren. Denk bijvoorbeeld aan een webshop waar software wordt verkocht. Vervolgens verstuurt de aanvaller op hetzelfde moment precies dezelfde munten in een transactie naar het netwerk. Het netwerk zal deze transactie niet accepteren. Maar niet alleen de tweede transactie wordt geweigerd, ook de eerste transactie wordt in dit geval niet meer goedgekeurd. En dat terwijl de aanvaller zijn product al heeft gekregen. De webshop is dus in dit geval het slachtoffer geworden, omdat zij niks zullen ontvangen.
51% Attack
De bekendste soort van de Double Spend Attacks is de 51% Attack. Deze aanval is alleen mogelijk wanneer een blockchain gebruik maakt van het Proof of Work consensus algoritme. Het consensus algoritme is de technologie die ervoor zorgt dat transacties kunnen worden gevalideerd door het netwerk van de blockchain.
Een transactie wordt pas goedgekeurd wanneer minimaal 51% van het netwerk achter deze keuze staat. Wil maar 50% van het netwerk de transactie goedkeuren? Dan gaat dat helaas niet gebeuren.
Op het eerste gezicht lijkt dit een veilige manier van werken, maar het kan zo ook zijn nadelen hebben. In veel blockchains werken miners samen in zogeheten miner pools. Zo bundelen zij hun krachten om als eerste de transacties te kunnen goedkeuren. Daar ligt nou net het gevaar.
Wanneer zo'n miner pool meer dan 51% van het netwerk bezit, zijn zij in de meerderheid. Dat betekent dat ze ook transacties kunnen goedkeuren, die eigenlijk helemaal niet goedgekeurd hadden mogen worden. Zo kunnen ze ook cryptomunten meerdere keren uitgeven, en deze vervolgens steeds opnieuw goedkeuren. Ook kunnen ze historische data in de blockchain aanpassen.
Zo'n soort aanval kost ontzettend veel energie, omdat een aanvaller heel veel machines nodig heeft om minimaal 51% van het netwerk in zijn bezit te hebben. Maar zoals gezegd, kan het ook gedaan worden door middel van miner pools. Het kost idem dito veel energie om zo'n aanval te laten slagen.
Zou je je zorgen moeten maken om Double Spend Attacks?
Bijna iedere blockchain is beveiligd tegen bovenstaande aanvallen. Daarom hoef je je bij de grote en bekende cryptomunten ook geen zorgen te maken over Double Spend Attacks. Er zijn echter wel genoeg mensen die vinden dat Bitcoin niet veilig genoeg meer is omdat de kans groot is dat ze ooit slachtoffer worden van een 51% Attack. In het netwerk van Bitcoin zitten namelijk veel pools. Vaak zijn het ook steeds dezelfde pools die de transacties valideren.
Bij een nieuwe blockchain is de kans op een Double Spend Attack echter een stuk groter. Je zou hier dan ook rekening mee kunnen houden wanneer je besluit om te investeren in een relatief nieuwe blockchain, door bijvoorbeeld eerst goed onderzoek te doen naar de beveiliging van de blockchain.