
Hoe veilig is de Gulden Blockchain?
Gebaseerd op een artikel van Malcolm MacLeod, Lead ontwikkelaar bij Team Gulden BV.
Maak kennis met Guldens uiterst efficiënte en veilige tweede generatie blockchain.
Ruwweg een jaar geleden heeft het Team Gulden een zogenaamde Whitepaper uitgebracht. Hierin werd o.a. besproken hoe PoW2 (Guldens tweede generatie blockchain technologie, red.) de veiligheid van het netwerk naar een voor de cryptowereld ongekend hoog plan moest tillen. Aangezien de whitepaper een nogal technische uiteenzetting van zaken is, en daarnaast ook vele andere thema’s aansnijdt, focussen we in dit artikel op de implicaties die PoW2 heeft op de veiligheid van het Gulden netwerk. Is het nog te kraken, en wat zou je daarvoor nodig hebben? En daarnaast, hoe energie zuinig is deze technologie ten opzichte van een eerste generatie blockchain zoals Bitcoin?
Een blockchain project, of het nu een munt als Gulden is of anderzijds, staat of valt natuurlijk met het vertrouwen dat deze techniek niet te hacken of te vervalsen is. Elk blok in de keten is na goedkeuring door het netwerk onherroepelijk en niet meer te veranderen. Daarmee garanderend dat de informatie opgeslagen in de blokken ten aller tijden te vertrouwen is.
Dat gezegd hebbende is er bij eerste generatie blockchains echter een belangrijk aandachtsgebied. Dit staat bekend als het “double spend” probleem of een 51% aanval. In gewoon Nederlands betekent het dat een munt twee keer uitgegeven kan worden door een hacker door de blockchain te manipuleren. Iets wat hackers maar al te graag zouden willen doen en wat dan ook regelmatig gebeurd.
Hoe werkt een double spend aanval:
-De aanvaller/hacker koopt iets online van jou en creëert daarvoor twee geldige transacties: één die het gevraagde geld naar jouw adres stuurt en de andere naar een eigen adres.
-Hij stuur jou de eerste transactie, terwijl hij de tweede voor je verborgen houdt.
-Jij geeft de goederen of diensten aan hem, in de veronderstelling dat je betaalt bent.
-Hij zorg ervoor dat de tweede transactie (die aan hem betaalt) en niet de eerste transactie (die aan jou betaalt) in het laatste geminde blok komt en dus als legitiem beschouwt wordt. Daarmee is het geld wat hij jou stuurde waardeloos geworden. Deze laatste stap is uiteraard moeilijk uitvoerbaar, maar niet onmogelijk!
Een voorbeeld:
-
- We gebruiken het oude Gulden netwerk als voorbeeld.
-
- Deze had een hashrate (mate van computerkracht die ingezet wordt voor het minen) van 600gh/s. Hierbij even een kanttekening ter volledigheid: Het oude Gulden netwerk was al reeds beter beveiligd dan een regulier PoW netwerk door het gebruik van een checkpoint server. Dit ligt echter verder buiten de scope van dit artikel.
-
- Een koers van 1 Gulden = 0.046 Euro.
- En een scrypt hash huurprijs van 0.45 Euro per gh/s per uur. Het is heden ten dagen simpel om hashrate in te huren per uur. Daarmee kan men dus de computerkracht huren die nodig is om een aanval uit te voeren. Hoe meer hash ik tot mijn beschikking heb, desto meer blokken kan ik minen.
Met bovenstaande uitgaanspunten kunnen we een aantal scenario’s doorlopen:
- Als je de transactie als geldig accepteert voordat er een blok wordt gemined dat de transactie bevat (een zogenaamde 0-confirmatie transactie), dan is het enige wat de hacker hoeft te doen: er voor zorgen dat hij het volgende block mined met zijn alternatieve transactie in dat blok. M.a.w, de betaling aan jou is daarmee ongeldig geworden, en de betaling aan hemzelf is dan de enige die verwerkt is en als legitiem is bestempeld door het netwerk.
- Als je de transactie accepteert na een enkele bevestiging (een 1-confirmatie transactie), dan moet de aanvaller ervoor zorgen dat hij 2 blokken gemined heeft voordat het netwerk een ander blok mined, om ervoor te zorgen dat zijn alternatieve transactie doorgang krijgt. -En zo verder voor 3,4,5…confirmaties.
Als de aanvaller tevreden is met een aanval die slechts een deel van de tijd slaagt, kan hij een aanval uitvoeren op een 0-confirmatie transactie met gebruik van weinig hashrate. Bijvoorbeeld een kans op succes van ~10% voor slechts ~60 gh/s of iets dergelijks. Hij kan anderzijds ook een aanval proberen met een redelijk hoge (maar nog steeds niet gegarandeerde) kans op succes door het inhuren van een veelvoud van de netwerk hashrate. Bijvoorbeeld 1800 gh/s.
De eenvoudigste manier om succes te garanderen is om meer dan 50% van de hashrate te verkrijgen. Hiermee kan hij in plaats van één blok te manipuleren proberen om meerdere blokken sneller te minen dan het netwerk; op dit punt is een aanval statistisch gezien gegarandeerd en slechts een kwestie van tijd. Dit is dan ook een meer praktische aanval in termen van slagingskans en wordt daarom veelvuldig toegepast in de echte wereld.
Kortom: De gemakkelijkste en meest gegarandeerde manier om een PoW-munt te manipuleren is dus domweg voldoende hashpower inzetten om meer dan 51% te verkrijgen (een beetje marge is waarschijnlijk aan te raden om zeker te zijn).
Met de hashrate van 600 gh/s uit ons voorbeeld kan een aanvaller eenvoudigweg 800 gh/s huren – tegen een kostprijs van slechts 360 Euro voor een periode van 1 uur om de aanval uit te voeren. Bijkomend voordeel is dat hij dan ook de mining rewards opstrijk van ca. 110 euro. Geld wat normaliter naar de miners gaat als beloning voor het minen, maar nu dus aan hem vervalt!
Met circa 24 geminde blokken in een uur, is 20 confirmaties c.q. blokken niet echt veiliger dan 1 confirmatie, oplopend tot bijvoorbeeld 100 of 200 confirmaties, zoals sommige Exchanges handhaven. De kosten van de aanval zal met meer confirmaties enigszins duurder worden door de toenemende benodigde hashrate huurtijd, maar zelfs dan is een eerste generatie blockchain nog lang niet immuun voor aanvallen.
Dit is duidelijk een verre van ideale situatie, en het ergste is dat er in wezen geen manier is om te zeggen dat een aanval op het punt staat plaats te vinden, het komt gewoon uit het niets.
Let op: Bovenstaand is tot op heden op veel PoW munten van toepassing en zijn deze daarom als zeer onveilig te beschouwen- in het bijzonder als ze een lage hashrate hebben. Zoals al eerder opgemerkt was Gulden hier al langer tegen beveiligd middels de checkpoint server techniek.
Wat voegt Gulden’s PoW2 technology toe aan PoW?
Dus hoe is de situatie veranderd sinds de uitrol van het Gulden 2.0 netwerk?
Het Gulden tweede generatie netwerk bestaat uit twee partijen die nauw samenwerken. De miners en de witnesses, waarbij de witness, zoals het woord al aangeeft, de miner controleert als getuige. Pas als de witness akkoord gaat, wordt het geminde blok aan de keten toegevoegd.
Een witness kan iedereen zijn. Er is daarvoor geen zware rekenkracht c.q. hashpower nodig. Enige eis die gesteld wordt is dat een witness 24/7 beschikbaar moet zijn om te kunnen getuigen. Dit impliceert dat de witness-rekening altijd online moet zijn. Vandaar dat hiervoor kleine mini computertjes als een Raspbery Pi gebruikt worden met een laag stroomverbruik. Net als de miner die een vergoeding krijgt voor zijn werk en inzet van computerkracht en dus stroomrekening, krijgt ook een witness een vergoeding voor het controleren van de miner. De verhouding ligt daarbij op 80/20 NLG per blok. Daar staat tegenover dat een witness rekeninghouder zijn Gulden voor langere tijd vast moet zetten. Vergelijkbaar met een deposito rekening. Dat heeft voor de veiligheid van het Gulden netwerk een uiterst belangrijke reden, maar daar komen we zo op.
Terug naar ons voorbeeld: Wat betekent dit voor een aanvaller?
De basis blijft ongewijzigd. Om een 0-confirmatie transactie aan te vallen moet de aanvaller nog steeds 1 of meer van de volgende blokken sneller minen dan het netwerk. Voor 1-confirmatie transacties 2 of meer blokken en voor 2-confirmaties 3 of meer blokken en ga zo maar door.
Voor een niet-gegarandeerde aanval op een 0-confirmatie transactie verandert er heel weinig aan de veiligheid, ervan uitgaande dat een aanvaller wil aanvallen met slechts één blok en een kans van 10% tot 50% op succes – alles wat hij hoeft te doen is de juiste hoeveelheid hashrate verkrijgen om de aanval te proberen. Als hij het blok als eerste kan minen zal een witness het goedkeuren. Er is zodoende geen specifieke extra bescherming voor een 0-confirmatie transactie in dit geval. Een nul confirmatie transactie is dus nooit aan te raden en wordt dan ook vrijwel niet gebruikt in de praktijk.
Als de aanvaller een >50% kans op succes wil, of een 1-confirmatie (of hoger) wil aanvallen, dan is dit het punt waar de zaken iets anders beginnen te worden dan voorheen. Om dit te doen zal de aanvaller namelijk zijn eigen witness-rekeningen moeten openen, en omdat elke witness maximaal eenmaal per 100 blokken kan getuigen is het noodzakelijk dat de aanvaller 1 witness-rekening heeft per confirmatie dat hij wil aanvallen.
Om op dit moment één enkele witnessrekening aan te maken die 1% van het gewicht van het netwerk bezit, zou een aanvaller 500.000 NLG (ca. 23000 euro) voor een periode van 1 maand moeten vastzetten – dit zou hem een kans van 1% geven om getuige te zijn van elk blok dat hij mined.
Voorbeeldje
Als hij 100x het netwerk hash (50 th/s) zou verwerven, zou hij ongeveer 100 blokken kunnen minen voordat het netwerk een blok mined. Aangezien hij 1% kans heeft om de geselecteerde witness te zijn voor elk van deze blokken, zou het hem een redelijke maar niet gegarandeerde kans geven om een blok voor het hoofdnet te minen en te witnessen.
De totale kosten: ca.23.000 euro (witness) plus ca.23.000 euro (minen) komt op ca.46.000 euro in totaal. Dit is een facto 128 keer duurder dan een aanval op een eerste generatie netwerk zoals we dat in ons eerdere voorbeeld uitgerekend hadden. Naast deze hogere kosten komt de aanval met extra “ongemak” voor de aanvaller. Hij moet immers 23.000 euro van zijn geld voor minimaal een maand vast zetten in een witness-rekening in een munt die hij net heeft aangevallen….
Daarmee is de aanvaller er nog niet want er zijn nog een aantal problemen waar hij tegenaan loopt:
- 50 th/s hashrate is, of meer waarschijnlijk, overschrijdt de totale hoeveelheid scrypt hashrate beschikbaar voor verhuur – vooral tegen de opgegeven prijs. Het daadwerkelijk verwerven van 50 th/s zal daarom waarschijnlijk aanzienlijk duurder zijn.
- Om de aanval uit te voeren moet de aanvaller eerst 500’000 Gulden verwerven – dit is een aanzienlijk bedrag en zal de marktprijs daardoor waarschijnlijk stijgen. Een marktprijsstijging zal op haar beurt de hashrate weer verhogen. Als we hiervoor corrigeren, komen we uit op iets meer dan 30.000 euro (witness).
- Deze onzekere factoren betekenen dat de aanvaller grote hoeveelheden Gulden moet verwerven om vervolgens te ontdekken dat hij niet meer genoeg geld of hash kracht kan huren om de aanval daadwerkelijk uit te voeren.
Rekening houdend met het bovenstaande lijkt het waarschijnlijk dat de werkelijke kosten meer dan 80’000 euro, zo niet meer, zullen bedragen.
Het bovenstaande voorbeeldje beschouwt slechts een 1-confirmatie aanval. Voor 2-confirmaties heeft hij 2 witness-rekeningen nodig van 500’000 Gulden per stuk. Met 3-confirmaties zijn we in een regio waar we 150 th/s en/of ruim 1.500.000 NLG nodig hebben. Dit zou betekenen dat enorme hoeveelheden hash moet worden ingehuurd, wat enorm duur en moeilijk te doen is: Ter vergelijk, de grootste scryptmunt heeft 300 th/s aan netwerk hashrate momenteel.
Conclusie is dat met 2 of 3 confirmaties, zelfs met de huidige vrij bescheiden hashrate van 500 gh/s, de kosten van het aanvallen van transacties op het Gulden-netwerk onbetaalbaar duur worden tot het punt dat het niet praktisch haalbaar is. Dit is concurrerend met veel grotere munten die veel grotere hashrates hebben.
Eerder hadden we al gezien dat bij een op PoW gebaseerde eerste generatie valuta het aanvallen van 20 bevestigingen niet noemenswaardig duurder was dan het aanvallen van 2 of 3 bevestigingen. In tegenstelling dus tot Gulden waarbij 20 confirmaties betekent dat de aanvaller minstens 20 witness-rekeningen van 1% netwerkgewicht of in totaal 10’000’000 NLG (ca 460’000 euro markteffecten en miningkosten buiten beschouwing genomen) zou moeten hebben. Dit vast gezet op witness-rekeningen samen met een exorbitante hoeveelheid hashrate, die waarschijnlijk 200-300 th/s of zelfs hoger moet zijn, nagelang het effect op de prijs.
Dit is echter niet het einde van de pijn voor de aanvaller. Gulden 2.0 heeft nog een aantal mechanismes ingebouwd gekregen die het leven van de aanvaller zuur maken. Witnesses zijn namelijk verplicht om regelmatig getuige te zijn om actief te blijven. Daarnaast zijn ze ook in “cool down”, dus niet actief, voor een periode van 100 blokken nadat ze voor het laatst getuige waren. Een aanvaller met 20 accounts moet dus niet alleen deze accounts aanmaken, maar ook orkestreren dat alle accounts zich allemaal in dezelfde delicate periode van: – niet in “cool down” bevinden- maar ook niet op het punt staan inactief te worden omdat ze te lang niet getuige waren. Met witness-rekeningen die daarnaast ook nog eens op willekeurige en niet van te voren te bepalen momenten moeten getuigen is het onmogelijk voor de aanvaller dit te realiseren. Dit betekent bijna onvermijdelijk ook dat een of meer van zijn accounts niet zullen kunnen getuigen, ook al zijn ze geselecteerd om dat te doen.
Verder, om een aanval langer dan 100 blokken vol te houden -rekening houdend met de cool down periode- zou de aanvaller meer dan 100 accounts moeten hebben; bijvoorbeeld 101 accounts met elk 200’000 NLG (0,02% van het netwerkgewicht elk – 20% van het netwerkgewicht in totaal) – met een totale kostprijs van 20’200’000 NLG. En omdat je nooit 100% van het netwerkgewicht kunt verkrijgen, zou hij een werkelijk enorme hoeveelheid hashkracht van meer dan 500 th/s nodig hebben. Dit overtreft alle scrypt hash die momenteel actief in alle scrypt valuta’s bij elkaar!
Ondanks de hoge kosten zal dit de aanvaller alleen een kans op succes geven en geen garantie! Als hij halverwege de aanval zou merken dat het niet gaat lukken zou het voor hem te laat zijn om er iets aan te doen. Bij een mislukte aanval verliest de aanvaller onomkeerbaar al het geld dat aan het minen c.q. hashpower van de aanval is besteed!
Detectie van aanval
Hoewel het nog niet bestaat, is het absoluut mogelijk en onvermijdelijk om een monitoringsysteem te bouwen dat witnesses in de gaten kan houden – statistische anomalieën die erop wijzen dat meerdere of meer van dergelijke accounts in het verleden hebben geprobeerd om hun vensterperiodes te synchroniseren; de datum of zelfs het financieringsadres van witness-rekeningen die daarmee overeenstemmend gedrag van witness-rekeningen uit het verleden en verschillende andere netwerkfactoren die de ontwerper van een dergelijk systeem geschikt acht.
Zo’n dienst kan gemakkelijk worden gebruikt om gebruikers te waarschuwen voor zelfs maar een klein risico op een succesvolle aanval – voordat de aanval wordt uitgevoerd. Dus bovenop PoW², waarbij het in principe al onpraktisch is om aan een aanval te beginnen, is het daadwerkelijk mogelijk om een poging te detecteren, en dus te stoppen terwijl deze aan de gang is! En omdat de aanvaller niet precies weet wat de criteria zijn die een dergelijk monitoringsysteem zou gebruiken zal het erg lastig zijn om het te omzeilen.
(Opmerking: De aanvaller kan de valutakosten van sommige van de bovenstaande aanvallen enigszins verlagen door te kiezen voor de maximale periode van 3 jaar in plaats van de kortere periode van 1 maand – dit resulteert in een hoger netwerkgewicht. Het is echter de vraag of een aanvaller al dan niet grote hoeveelheden valuta voor zo’n lange periode vast wil leggen).
Op omkoperij gebaseerde aanvallen
Er bestaat een potentieel goedkopere manier om grotere PoW eerste generatie munten aan te vallen en dat is omkoping. Als de hashrate sterk geconcentreerd is tussen slechts enkele grote ‘pools’ (zoals bij veel grotere valuta’s), dan is het omkopen van een of meer grote pools (of de eigenaar van die pools) en het op deze manier minen een mogelijke manier om dezelfde aanval uit te voeren, maar met minimale kosten.
PoW² is hier echter veerkrachtig tegen, omdat witnesses niet worden gebundeld en talrijk zijn en moeilijk op te sporen of om te kopen.
De effecten van de prijs op de veiligheid
De prijs van een op PoW gebaseerde valuta heeft een directe invloed op de veiligheid van de valuta, aangezien minen meestal met winstoogmerk wordt gedaan. Een verdubbeling van de prijs betekent in feite het dubbele aan netwerk hashrate.
Hetzelfde effect geldt voor een PoW² tweede generatie munt, maar omdat de basiskosten hoger zijn, is het effect nog groter.
Op basis van de huidige prijsstelling en onze analyse in de vorige paragraaf kunnen we zien dat Gulden bij 2-3 confirmaties al dichtbij Litecoin qua veiligheid komt, en bij 20 tot 100 confirmaties deze ruimschoots overstijgt. Dit ondanks dat Litecoin de munt is met de 7de grootste marktkapitalisatie en een huidige marktprijs van 54,78 euro.
Gulden overtreft momenteel, tegen huidige prijzen, de meeste valuta’s al in veiligheid met een paar confirmaties en bijna allemaal met een beetje meer. Maar de Guldenprijs hoeft slechts te verdubbelen van 0,046 naar 10 eurocent om nog veel grotere valuta’s zoals Bitcoin voorbij te streven.
PoW² biedt aanzienlijke zekerheid tegen zelfs lage prijzen en dit wordt alleen maar beter naarmate de prijs stijgt.
Duurzaamheid en elektriciteitsverbruik
Valuta’s zoals Bitcoin worden geconfronteerd met een enorm probleem. Om hetzelfde niveau van veiligheid te behouden hebben ze hun (hoge) prijs nodig om gelijk te blijven of voortdurend te blijven stijgen over tijd. Dit is op de lange termijn niet houdbaar, omdat niets voor altijd kan toenemen.
Dit betekent uiteindelijk dat het netwerk zijn hoogste veiligheidsniveau heeft bereikt en dat het in de loop van de tijd steeds minder veilig zal worden; als dit nu niet het geval is, dan zal dit op een bepaald moment in de toekomst welhaast zeker het geval zijn.
Een andere kritiek op de PoW-munten is het massale stroomverbruik. Bitcoin wordt door sommigen geschat op 200.332.771 KWh per dag. Bij 500 gh/s op het scrypt-algoritme is het stroomverbruik van Guldens waarschijnlijk slechts rond de 19200 KWh per dag en toch is het nog steeds in staat om vergelijkbare veiligheidsniveaus te bereiken.
Conclusie
PoW² plaatst Gulden in een unieke situatie waarbij het de eerste tweede generatie blockchain technologie in huis heeft, die bij lage koersen en een laag energie verbruik toch een hoge mate van veiligheid kan garanderen.