De Verge hack uitgelegd

Recent is er veel gezegd en geschreven over Verge. Het netwerk zou zijn gehacked, en er zouden veel munten zijn gestolen. Wat is er gebeurd, en wat voor gevolgen heeft het? We hebben het voor je uitgezocht.

Veiligheid

De Verge hack uitgelegd
0%
Peter Slagter
Door Peter Slagter

Op 4 april 2018 heeft de gebruiker ocminer op Bitcointalk een post geplaatst over een fout in Verge (XVG). Achter de gebruikersnaam ocminer gaat de beheerder van de Suprnova mining pools schuil. Hij is zelf een ontwikkelaar (zie bv. zijn Github repository) en kon daardoor de vinger op de zere plek leggen.

Het probleem was dat iemand (of meerdere personen) een manier had gevonden om Verge blocks veel sneller te minen dan normaal; 1 block per seconde. Dat zorgde ervoor dat er veel nieuwe XVG werd aangemaakt. Elk gevonden block geeft een beloning van 1560 XVG. Je kunt je voorstellen dat door deze onbedoelde uitgifte van munten allerlei problemen ontstaan.

Hoe kon dit gebeuren?

Het netwerk van Verge maakt gebruik van proof-of-work. Door middel van mining worden nieuwe munten gegenereerd. De meeste munten die van proof-of-work gebruik maken, zijn gebaseerd op een specifiek algoritme. Sommige munten, zoals Verge, gebruiken een mix van algoritmes (in dit geval Scrypt, X17, Lyra2rev2, myr-groestl, en blake2s). Het doel daarvan is om zoveel mogelijk mensen de mogelijkheid te geven de munt te minen, en daarmee decentralisatie te bevorderen.

De eerste die een block vindt, krijgt daarvoor een beloning in Verge-munten (XVG). Normaliter is elk nieuw gevonden block een ander algoritme. Je kunt dus niet twee Scrypt blocks achter elkaar vinden. Althans - dat was de theorie. Door een combinatie van bugs in de codebase van Verge, was het mogelijk om op hoge frequentie blocks te vinden door gebruik te maken van het Scrypt-algoritme. Véél sneller dan normaal mogelijk is.

Een gevonden block heeft een zogenaamde timestamp - dat is het tijdstip waarop het block gevonden is. Door dat tijdstip aan te passen (te spoofen) naar een tijdstip in het verleden (bv. een uur eerder), kon het XVG-netwerk voor de gek gehouden worden. Dat ging als volgt:

  1. De miner vindt een block, zet het tijdstip terug naar een uur geleden, en verzendt het.
  2. Het XVG-netwerk gaat er nu vanuit dat het laatste block voor het gebruikte algoritme een uur geleden is gevonden. Daardoor is het netwerk ontvankelijk voor een nieuw block van dit algoritme.
  3. De miner vindt het erop volgende block, en verzendt het met de juiste tijd.
  4. Het XVG-netwerk accepteert het block en de miner ontvangt de beloning.

Door gebruik te maken van Scrypt, is deze lus met hoge snelheid te doorlopen. En het gevolg daarvan is dat er veel nieuwe blocks gevonden worden, en er veel XVG is uitbetaald. Schattingen lopen uiteen van 250.000 - 20.000.000 XVG. De laagste schatting komt van Verge zelf, andere cijfers komen van mensen die zelf de transacties op de blockchain hebben uitgeplozen (waaronder ocminer zelf).

Wiens schuld is dit?

Rondom deze vraag is de afgelopen dagen heel wat geschreven, en lopen de meningen (soms sterk) uiteen. Wat ons betreft zijn er meerdere betrokkenen, die elk op hun eigen manier invloed hebben gehad.

Allereerst de ontwikkelaars achter Verge, met in de hoofdrol Justin Vendetta. Wat blijkt is dat twee andere munten, Myriad en DigiByte, beide dezelfde bugs in de codebase hebben gehad. Al in 2014 is dit opgelost door DigiByte. De leidt tot de terechte vragen. Waarom heeft XVG dit niet veel eerder opgelost? En wat is de kwaliteit van de rest van de codebase?
Er worden nu vraagtekens gezet bij de gekozen oplossingsrichting. Volgens ocminer wordt het probleem niet opgelost, en hij heeft daarom besloten de deur voor XVG voorgoed te sluiten:

Suprnova gaat geen XVG/Verge-pools heropenen. Je kan de munt gratis via andere pools minen. Opnames zijn mogelijk, uiteraard.

De achtergrond is dat de "oplossing" die door de ontwikkelaars wordt voorgesteld het probleem niet oplost. Het maakt simpelweg de kans wat kleiner dat het kan gebeuren. De aanval blijft gewoon werken, zij het wat langzamer.

Je kunt stellen dat ocminer zelf ook niet vrijuit gaat, omdat hij niet eerst de ontwikkelaar heeft geïnformeerd. Hij heeft zijn bevindingen direct publiek op Bitcointalk geplaatst, en wellicht heeft dat andere kwaadwillenden ertoe gezet om ook gebruik te maken van deze gaten in Verge.

Ten slotte spelen de personen die daadwerkelijk gebruik hebben gemaakt van de fouten in Verge een belangrijke rol. Het is niet duidelijk wie dit zijn geweest, en het is ook niet duidelijk of er al eerder gebruik is gemaakt van de onderliggende fouten (maar dan op een lagere frequentie).

Hoe is het opgelost?

Er waren meerdere scenario's mogelijk. In ieder geval is het standpunt van Verge dat de munten die middels de 'hack' gevonden zijn in roulatie mogen blijven:

Technisch gezien heeft de aanvaller geen regels (van de broncode) geschonden, en het is een groot probleem voor exchanges aangezien de munten al verplaatst zijn (waarschijnlijk verkocht).

Verge heeft inmiddels aanpassingen gedaan aan de codebase om de gaten te dichten. Of de bugs nu echt verholpen zijn, blijft onduidelijk. Vermoedelijk is het nu enkel moeilijker gemaakt om van de bugs gebruik te maken, en zijn nog aanvullende maatregelen nodig om het goed te dichten. In ieder geval was het naar aanleiding van de wijzigingen nodig om de wallets te updaten; zonder de nieuwe wallet, is het niet mogelijk om het netwerk te synchroniseren. Het wordt daarom een fork genoemd.

Heeft het voor jou gevolgen?

De gevolgen voor mensen met XVG in het portfolio zijn gering. Het enige ongemak is dat je een nieuwe wallet moet downloaden, als je je XVG wilt verzenden. Had je het op een paper wallet staan, is er niets aan de hand.

Er zijn rondom Verge wat ons betreft voldoende redenen om goed na te denken over wat je met je XVG holdings doet. Denk aan:

  1. Deadlines worden regelmatig gemist. Door hype is Verge enorm gegroeid (met name door de tweet(s) van John McAfee), maar het team van ontwikkelaars is klein.
  2. De ontwikkelaar achter Verge heeft verschillende posts gemaakt over het moeten betalen van belastingen, met kort daarop het verzoek aan de community om te doneren. Het aankondigen van de partner waarop de fundraiser is gebaseerd is vervolgens verplaatst naar 17 april - de dag ná tax day in Amerika. Deze gebeurtenissen hoeven niets met elkaar te maken te hebben, maar het wakkert wel allerlei geruchten aan. Het is op z'n minst onhandig, en het leidt tot allerlei controverses.
  3. De kunde van de ontwikkelaar en de kwaliteit van de Verge codebase staat ter discussie. Zo leidde de eerste poging om deze problemen op te lossen ogenschijnlijk per ongeluk (in ieder geval onaangekondigd) tot een hard fork.
  4. De market cap van Verge is puur op basis van wat Verge biedt (zowel functioneel als technisch) lastig te plaatsen.

Zorg er in ieder geval voor dat je het nieuws rondom Verge blijft volgen. Installeer de nieuwste wallet, en markeer 17 april in je agenda. Onderzoek de roadmap van Verge, en beoordeel of de aankondiging daadwerkelijk de fundraiser en de hype waard is geweest.

Wil je zelf verder lezen? Dan is deze thread op Bitcointalk een goed startpunt. Succes!

Iedereen heeft een mening

Onder de noemer Opinie schrijven we regelmatig over een spraakmakende podcast, video of tweetstorm. We zijn het niet noodzakelijkerwijs eens met de spreker of schrijver, maar vinden het interessant genoeg om te delen, duiden en ondertitelen.

Dit artikel heeft deze tags

Over de auteur

Peter Slagter

Peter Slagter

Hoofdredacteur en medeoprichter van LekkerCryptisch. Voorliefde voor techniek en economie, met in het bijzonder de overlap tussen die twee. Vind het leuk om complexe onderwerpen toegankelijk te maken voor een breed publiek.