Foto: Only background/Shutterstock
Door twee programmeerfouten in een update van het Gains Network konden cryptohandelaren flinke winsten behalen. Volgens enkele ontwikkelaars, die gebruik maken van dezelfde programmeercode zouden hun apps niet dezelfde fouten bevatten.
Zellic ontdekt fouten in specifieke update
Het Gains Network is een opzichzelfstaand ecosysteem gericht op decentralized finance (DeFi) producten op het Polygon-netwerk en Arbitrum-netwerk. Het bedrijf heeft een speciale app ontwikkeld, genaamd “gTrade”. Met deze app kunnen gebruikers handelen met een hefboomwerking. Sinds de lancering in mei 2023 heeft de app al meer dan 25 miljard dollar aan handelsvolume verwerkt.
Op 19 april ontdekte het blockchain beveiligingsbedrijf Zellic de fouten en stelde direct de update-ontwikkelaars Gambit Trade, Holdstation Exchange en Krav Trade op de hoogte. Volgens hen zouden hun updates niet dezelfde programmeerfouten bevatten. Toch zouden andere Gains updates deze fouten nog wel kunnen bevatten.
Volgens Zellic zijn er meerdere apps gericht op DeFi handelen, gebaseerd op de broncode van het Gains Network, waaronder Gambit Trade en Holdstation. Het bedrijf ontdekte de fouten door bestudering van een specifieke update. Om welke update het precies gaat wil het bedrijf niet zeggen.
Twee fouten met grote gevolgen
De fouten in de update zorgden ervoor dat handelaren door middel van koop- en verkooporders 900% winst konden maken, ongeacht de prijs van de cryptomunt waarmee gehandeld werd.
Bij de eerste programmeerfout werd de door de handelaar ingegeven stop-loss prijs geregistreerd als de actuele prijs van de cryptomunt. Normaal rekent de app met het verschil tussen de stop-loss prijs en de actuele prijs uit hoeveel winst of verlies een handelaar heeft behaald. Wanneer de handelaar nu een stop-loss prijs invoerde die hoger dan de actuele prijs lag, dan kon men hier tot wel 900% winst mee behalen.
De andere programmeerfout zat in het sluitingsproces van een trade. Wanneer een handelaar de trade sloot, werd het stop-loss of take profit punt geregistreerd als een variabele met de naam “int”. Deze variabele werd vervolgens gebruikt om de winst in procenten te berekenen. Dus wanneer een handelaar een stop-loss of take profit punt koos, welke precies gelijk was aan de maximale waarde voor een positief getal in Ethereum, konden zij met een hefboom van 9x de maximale 900% winst behalen.
In de software was wel een controle ingebouwd, die controleerde of deze precieze waarde was ingevoerd als stop-loss of take profit. Maar de app voerde deze controle alleen uit bij opening van de trade. Na het openen konden handelaren hun stop-loss of take profit punt dus alsnog aanpassen naar de specifieke waarde.