Decentraliserad finans, även känt som DeFi, är ett begrepp som börjar bli allt mer och mer populärt inom kryptovärlden.
Tanken är att med hjälp av blockkedjor och smarta kontrakt kunna erbjuda en rad nya finansiella produkter och tjänster som tidigare inte varit möjliga att genomföra, likväl att agera som ett alternativt till traditionella och centraliserade tjänster.
En sådan DeFi-plattform är bZx som tillhandahåller en rad tjänster baserade på smarta kontrakt på Ethereums blockkedja.
En av dessa tjänster/produkter är ett slags lån, benämnt ”flash loan” på engelska, där en aktör kan både genomföra ett lån och betala tillbaka lånet inom loppet av en endaste transaktion på Ethereum’s blockkedja, något som kan ta så lite såsom ett par sekunder.
Det intressanta med denna typ av lån är att de inte kräver någon säkerhet av den som begär lånet då ett krav för att lånet skall betalas ut är att lånet betalas tillbaka till fullo innan transaktionen avslutas. Det låter tämligen krångligt – och det är det, så pass till den grad att bZx inte bara en gång, utan totalt två gånger, fick sina kontrakt utnyttjade av smarta hackers inom loppet av fyra dagar.
Hack #1 – hackare tjänar 318 000 dollar på att lura kontrakten
Det första hacket skedde den 14:e februari när en hackare använde sig av multipla DeFi-protokoll för att både låna, korta och sälja av både Ethereum och syntetiska Bitcoins (WBTC) för att slutligen göra en vinst på 1 193 ETH eller 318 000 dollar.
Hackaren lånade 10 000 ETH från protokollet dYdX och använde sedan 5 5000 av dessa ETH för att ta ut ett lån på 112 WBTC (syntetiska Bitcoins på Ethereums blockkedja) på DeFI-protokollet Compound. Därefter skickade hackaren 1 300 ETH till bZx:s tradingplattform Fulcrum där han öppnade en hävstångsposition på 5x mot ETH/BTC-tradingparet för att därefter låna 5 637 ETH från plattformen Kybers Uniswap-system och byta dessa mot totalt 51 WBTC. Detta resulterade i ett enormt slippage vilket möjliggjorde för hackaren att slutligen växla tillbaka de ursprungliga 112 WBTC han lånade mot 6 671 ETH, en vinst på totalt 1 193 ETH eller 318 000 dollar. Slutligen betalades det initiala lånet om 10 000 ETH tillbaka till dYdX där hela karusellen sattes igång. Och det galna är att det hela enbart utspelade sig på några enstaka sekunder!
Hack #2 – hackare använder externa dataorakel för att lura bZx:s smarta kontrakt
Som om inte den första attacken var nog så dröjde det enbart fyra dagar innan bZx:s kontrakt blev utnyttjade igen. Denna gång lyckades hackaren lura till sig 2 388 ETH (uppemot 636 000 dollar) genom att manipulera de underliggande datakällor – ofta benämnda som oracles inom kryptovärlden – för att få de smarta kontrakten att bete sig på ett önskvärt sätt.
Summa summarum försvann nästintill uppemot 1 miljon dollar i dessa attacker under loppet av fyra dagar.