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.
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.