6 Forks en 51%-aanvallen
In de begindagen minede Satoshi zijn eerste bitcoins door gebruik te maken van de CPU in zijn computer. Aangezien de moeilijkheid oorspronkelijk erg laag was, bleek het relatief goedkoop om die munten te produceren.
Met tijd, begonnen mensen te sleutelen aan de software om te minen en werd het efficiënter. Uiteindelijk werd software geschreven die gebruik maakte van gespecialiseerde grafische apparatuur (GPU’s), gewoonlijk gebruikt door gamers, om te minen.
Met GPU’s werd minen een heel stuk efficiënter. De moeilijkheidsgraad ging snel omhoog om de grote hoeveelheden hash-rate van de GPU’s bij te benen. Minen met een CPU werd onrendabel.
Na de komst van GPU mining werd de efficientie van miners nog verhoogd door de product van Application Specific Integrated Circuits (ASIC’s). Deze computerchips doen maar 1 ding: de bitcoin sha256 hash-functie uitvoeren. Ze kunnen enkel dit algoritme en bleken opnieuw een orde van grootte meer efficiënt dan GPU’s. De grafische kaarten voor gamers werden snel onrendabel om te minen, net zoals gebeurde met CPU’s. Iedere paar jaar komt een nieuwe generatie ASIC’s naar buiten die beter werken dan de vorige versies.
De eerste miners op het netwerk spendeerden slechts enkele centen aan elektriciteit om hun bitcoin te produceren. Terwijl de prijs omhoogging, en meer miners zich aansluiten bij het netwerk, ging de moeilijkheidsgraad van het minen omhoog en werd het duurder en duurder om bitcoins te produceren. Vandaag hangt de prijs rond de $8.000 per BTC en spenderen miners duizenden dollars per geproduceerde bitcoin.
Mining pools
Een probleem met bitcoin mining is dat het niet-deterministisch is, zoals het rollen met een dobbelsteen. Dit betekent dat je een grote hoeveelheid geld kunt uitgeven aan elektriciteit en nooit een geldig blok vinden.
In 2010 werden zogenaamde mining pools al populair om het probleem van variabiliteit te verbeteren. Een mining pool is een manier om het risico te delen, vergelijkbaar met een verzekering.
Alle miners dragen bij aan een pool. Het lijkt alsof ze 1 grote miner zijn op het netwerk. Wanneer iemand in die pool een geldig blok vindt, wordt de beloning gedeeld met iedereen die bijdroeg, proportioneel verdeelt volgens de hash-rate die ze bijdroegen. Dit stelt ook kleine mining-operaties in staat om beloningen te verdienen voor de kleine hoeveelheid rekenkracht die zij bijdragen. In ruil voor de dienst die zij aanbieden, nemen pool een stukje van de beloning.
Het concept van mining pool introduceerde enige centralisatie. Gebruikers sloten zich aan bij de grotere en bekendere diensten. Maar de gebruikers van de pools zijn wel eigenaar van hun hash-rate. Ze kunnen op elk moment veranderen naar een nieuwe mining pool.
Er bestaat historisch precedent voor individuele miners die een pool verlaten omdat die te groot is geworden. In 2014 zat bijna de helft van de rekenkracht op het netwerk bij Ghash.io. De miners zagen in hoe gecentraliseerd dit werd en gingen vrijwillig over op andere diensten.
Hoewel de relatief gecentraliseerde mining pools vandaag een realiteit zijn, worden constant verbeteringen voorgesteld om de mining-technologie beter te maken, zoals bijvoorbeeld BetterHash. Met deze verbetering zouden individuele miners meer controle hebben over welke transacties ze precies willen minen, zonder hiervoor afhankelijk te zijn van coördinatie van hun mining pool.
51%-aanvallen
Centralisatie in mining pools leidt tot bezorgdheid dat enkele van de grote pools zouden kunnen samenspannen om een 51%-aanval uit te voeren op het netwerk. Vandaag hebben de vijf grootste identificeerbare pools meer dan 50% van de totale mining hash-rate. Laat ons onderzoeken hoe zo’n aanval wordt uitgevoerd en welke gevaren eraan verbonden zijn.
Wanneer je net meer dan 50% van de rekenkracht in handen hebt, kan je de meerderheid van de toevoegingen aan het grootboek domineren. Je kan immers de zwaarste ketting produceren, mits je de aanval even kan volhouden. Herinner je dat Nakamoto Consensus stelt dat nodes altijd de zwaarste cumulative proof-of-work chain moeten accepteren die ze kennen.
Hier is een voorbeeld van een simpele 51%-aanval:
Stel dat heel het netwerk bitcoin hasht aan 1000 hashes per seconde.
Je koopt een heleboel mining hardware en elektriciteit om 2000 hashes per seconde te produceren. We hebben nu 66% van de totale hash-rate (2000 van de 3000 hashes per seconde).
Je begint een ketting te minen met enkel lege blokken.
Binnen twee weken publiceer je de ketting van lege blokken. Omdat je veel sneller was dan de eerlijke miners, zal jouw versie twee keer zo veel proof-of-work bevatten. De aankondiging van jouw versie op het netwerk zal alle andere nodes doen overgaan op een reorg waarin alle transacties uit de laatste 2 weken ongedaan worden gemaakt.
Naast het minen van lege blokken, waardoor de chain onbruikbaar wordt, is het ook mogelijk om een dubbele-uitgaven aanval uit te voeren:
Stuur bitcoin naar een handelsbeurs
Ruil om naar USD en haal de dollars af.
Op een later tijdstip kan je de chain publiceren zonder de transactie naar de handelsbeurs uit stap 1 hierboven.
Je herschreef de geschiedenis van het grootboek en bezit nu zowel de originele bitcoins als de dollars.
De energieconsumptie van bitcoin’s hash-rate is ongeveer equivalent met dat van een gemiddeld land. De benodigde hardware en elektriciteit verwerven om zo’n aanval uit te voeren is enorm duur. Schattingen tonen dat het ongeveer $700.000 dollar per uur kost om een 51%-aanval uit te voeren. Die kost blijft snel stijgen. Deze schatting neemt de reactie van eerlijke miners, wat de kost van de aanval nog zou opdrijven, niet in rekening.
Daarnaast is ook nog eens zeer moeilijk om een dubbele-uitgaven aanval succesvol af te ronden zonder vingerafdrukken achter te laten die duidelijk maken wie je bent. Tenslotte, je zou een hoeveelheid energie van een gemiddeld land aan het opgebruiken zijn, na miljoenen dollars aan hardware aan te kopen, en je moet een handelsbeurs vinden waar je miljoenen dollars kan uitcashen om de aanval te doen slagen.
Maar stel dat een kwaadaardige partij, met ongelimiteerde budgetten, zoals een overheid, zou beslissen om dit te doen en erin slaagt om de aanval vol te houden zodat het effect op het netwerk meer dan gewoon wat overlast is. Dan nog zou het netwerk in principe kunnen reageren door de proof-of-work functie te veranderen (naar iets anders dan sha256). Hierdoor zou alle bestaande bitcoin mining hardware, die de aanvaller ook gebruikt, nutteloos worden. Die machines dienen specifiek om sha256 hashes te doen. Maar het aanpassen van het proof-of-work algoritme moet je zien als een laatste redmiddel en alle eerlijke miners zouden eveneens in de klappen delen. Toch zou het netwerk overleven.
Naast de onwaarschijnlijkheid van de aanval, geeft het hebben van de meerderheid van de hash-rate je nog altijd het recht niet om dingen te doen die nog belangrijker zijn:
Je kan geen munten uit het niets creëren die de regels van uitgifteschema schenden. Aangezien dit de consensusregels van de blokbeloning zou overtreden, worden de blokken gewoon verworpen, zelfs al hadden ze genoeg proof-of-work.
Je kan geen munten uitgeven die niet van jou zijn. Het is onmogelijk om een geldige digitale handtekening hiervoor te leveren.
De nodes die bitcoin accepteren voor betalingen zouden het netwerk eerlijk houden in het aanzicht van een oneerlijke meerderheid van miners door simpelweg de regels van bitcoin toe te passen. Aldus is een 51%-aanval eerder hinderlijk dan een veiligheidsrisico. Waarschijnlijk is het worst-case scenario hier dat een overheid met een goed gevulde portemonnee, bitcoin probeert onbruikbaar te maken. Maar zo’n aanval kan niet eeuwig duren. Wanneer bitcoin herstelt van een aanval zoals beschreven, zou het enkel haar veerkracht benadrukken en een nog groter probleem worden voor zij die het willen aanvallen.
Hoewel bitcoin tot dusver nog nooit met succes aangevallen is met een 51%-aanval, hebben we wel voorbeelden van andere blockchain die veel minder hash-rate hebben die hen beveiligd. In deze gevallen waren de beurzen het slachtoffer van de aanval en verloren ze geld aan munten met lage hash-rate die ze in de eerste plaats nooit hadden moeten aanbieden op hun platform.