51% aanval
Een aanvaller die meer dan 50% van de rekenkracht van het netwerk controleert, kan gedurende de tijd dat hij de controle heeft, de transactievolgorde veranderen, transacties uitsluiten en eigen transacties te wijzigen of terugdraaien.
Kans en impact
Het wordt het steeds moeilijker voor een enkele entiteit om dat te doen. De rekenkracht van het Bitcoin-netwerk ligt nu al ver voor op die van de snelste supercomputers ter wereld samen.
Wat een aanvaller kan doen als het netwerk eenmaal is overgenomen, is vrij beperkt. In geen geval kan een aanvaller valse munten maken, transacties vervalsen of geld van iemand anders afpakken. De mogelijkheden van een aanvaller zijn beperkt tot het terugnemen van hun eigen geld dat ze zeer recent hebben uitgegeven, en het voorkomen dat transacties van anderen een bevestiging krijgen. Een dergelijke aanval zou zeer veel geld kosten, en voor zulke kleine voordelen is er weinig rationele economische stimulans om zoiets te doen.
Bovendien zou dit aanvalsscenario alleen uitvoerbaar zijn zolang het actief aan de gang is. Zodra de aanval stopt, zou het netwerk weer normaal functioneren.
Wat kan de aanvaller doen
- transacties ongedaan te maken die hij verstuurt terwijl hij de controle over heeft. Dit heeft het potentieel om double-spend transacties te doen; transacties die voorheen al in de blokketen te zien waren, terug te draaien, waarbij alle munten die een geschiedenis delen met de teruggedraaide transactie beïnvloed worden;
- bevestigingen terug te draaien voor elke transactie die eerder al in de blokketen te zien was, terwijl hij de controle heeft;
- te voorkomen dat sommige of alle transacties bevestigingen krijgen;
- te voorkomen dat sommige of alle andere mijnwerkers geldige blokken delven.
Wat kan een aanvaller niet doen
- transacties van anderen terugdraaien zonder hun medewerking (tenzij hun muntgeschiedenis is beïnvloed door een dubbele uitgave);
- voorkomen dat transacties worden verzonden (ze zullen worden weergegeven als 0/onbevestigd);
- het aantal munten wijzigen dat per blok wordt gegenereerd;
- munten creëren uit het niets;
- munten verzenden die niet van hem zijn;
Merk op dat de bovenstaande beperkingen alleen gelden voor het perspectief van Bitcoin zoals gezien door volledige nodes. Sommige lightweight nodes werken door miners absoluut te vertrouwen; vanuit het perspectief van Bitcoin zoals gezien door lightweight nodes, kunnen miners BTC stelen, enz. Dit is een van de redenen waarom lightweight nodes minder veilig zijn dan full nodes.
Andere aanvallen met veel rekenkracht
Met minder dan 50% zijn dezelfde soort aanvallen mogelijk, maar met minder dan 100% kans op succes. Iemand met slechts 40% van de rekenkracht van het netwerk kan bijvoorbeeld een 6-diep bevestigde transactie met een 50% succeskans ondervangen.
Het is veel moeilijker om historische blokken te veranderen en het wordt exponentieel moeilijker naarmate je verder teruggaat. Zoals hierboven genoemd staat het veranderen van historische blokken je alleen toe om transacties uit te sluiten en de volgorde ervan te veranderen. Als miners historische blokken te ver terug veranderen, zullen volledige nodes met ingeschakelde pruning niet verder kunnen, en zullen afsluiten; de netwerksituatie zou dan waarschijnlijk handmatig ontward moeten worden (b.v. door de software te updaten om deze keten af te wijzen, ook al is hij langer).
Aangezien deze aanval niet veel macht over het netwerk geeft, wordt verwacht dat de rationele miners dit niet zullen proberen. Een op winst beluste miner zou altijd meer moeten winnen door gewoon de regels te volgen. En zelfs iemand die het systeem wil vernietigen zou andere aanvallen aantrekkelijker kunnen vinden. Het meest waarschijnlijke scenario waarin deze aanval zou worden toegepast is waarschijnlijk dat een regering Bitcoin onder controle probeert te krijgen door een meerderheid van de hashingmacht te verkrijgen (direct of door regels op te leggen aan particulieren). Dan zou deze regering de hierboven genoemde macht over transactiecensuur kunnen gebruiken om dingen te doen als:
- Verzetten tegen transacties van gestolen munten, waardoor die munten vernietigd worden. Als de munten duidelijk gestolen zijn, bestaat het risico dat deze actie door de Bitcoin-gemeenschap wordt aanvaard, maar dit zou een zeer schadelijk precedent scheppen. Als het mogelijk wordt om munten op deze manier op een zwarte lijst te zetten, dan is het een glibberig pad naar het op een zwarte lijst zetten van andere "verdachte" munten.
- Voorkomen van alle transacties van onbekenden, zodat iedereen zich moet registreren bij de overheid om transacties te kunnen doen.
De gepaste reactie op een langdurige aanval van miners is een Hardfork om de proof-of-work functie te veranderen. Dit ontslaat alle bestaande miners, en laat geheel nieuwe toe om hen te vervangen.