A flashloan alapú, illetve a smart contractokba csomagolt komplexebb DeFi ügyletek az elmúlt hónapokban kétségtelenül komoly szeletet hasítottak ki az ethereum hálózat teljesítőképességéből. Mára az az – egyébként teljesen normális – állapot alakult ki, hogy az Ethereumot elkezdték arra használni, amire az lényegében való. Míg fél évvel ezelőttig a hálózatot javarészt csak az azon futtatott scamek, mlm-en és ponzik… illetve az USDT tranzakciók tették ki (ez utóbbi vajon melyik kategóriába tartozik az előző három közül?), addigra most jó látni, hogy a top gas burnerek listáján jelentős helyet képvisel már az Uniswap, de már az új DeFi megoldások is ott vannak, úgy mint: Curve, Aave vagy éppen a Balancer.
Korábban a flashloanok kapcsán már született egy írásom a médiumon, abban a cikkben inkább ennek a negatív oldalát szedtem csak össze, viszont a flashloan és akár a flashloan nélküli smart contractba csomagolt komplex pénzügyi műveletek azóta is igen népszerűk. Most gondoltam bemutatok néhány beszédesebb példát (sikereseket… kevésbé sikereseket), hátha kedvet tudok vele csinálni néhány olvasónak ahhoz, hogy szunnyadó kreativitását ne csak a random trader botok konfigurálásában élje ki… hanem belépjen a decentralizált arbitrázs piacra is komoly szereplőként.
15.1 ETH -> 17.2 ETH egy szempillantás alatt
A felhasználó úgy csinált 15 ETH-ból 17.2-őt, hogy egyetlen tranzakción belül előbb elcserélte a 15 ETH-t 49,6 YFL-re a Uniswapen, majd ebből vett a Balanceren aLINK-et, amit withdrawolt az Aave-n, ebből lett neki 445 LINK tokene, melyet eladva a Uniswap-en visszakapott 17.2 ETH-t.
Ugye milyen jól hangzik? Na akkor nézzük, hogy mik is ezek a dolgok pontosan:
- Uniswap és Balancer: Két különböző decentralizált exchange (dex), mindkettő nagy forgalmú és nagy likviditású, tehát potenciális eszköze az ilyen jellegű arbitrázsnak.
- Aave: onchain lending platform (DeFi), amin un. kamat hordozó tokeneket lehet létrehozni likviditás biztosítással, mely kamat hordozó tokenek szabadon tradelhetők. A kamat hordozó tokénekről egyébként az előző cikkemben tudsz részletesebben olvasni. Itt a konkrét esetben a contract aLINK-et vásárolt, ami a ChainLink Aave platformon tokenizált (kölcsönadott) verziója.
Ezek tudatában már nem annyira nagy kaland átlátni, hogy mi is történt a contractban. Lényegében az Uniswap ETH->YFL és a Balancer YFL->aLINK árfolyama között volt egy komolyabb arbitrázs ablak, amit bezárva tudott 15 ETH-ból 17.2-őt csinálni a delikvens.
Hogy tud ennyi tranzakció végrehajtódni egyszerre egy contracton belül?
Az Ethereum gyakorlatilag egy hatalmas állapotgép, ahol az összes full node ismeri az összes address és contract aktuális állapotát. Mivel ezek változásai futásidő alatt értékelődnek ki, mely futásidő gyakorlatilag a bányász EVM-jében történik meg, így nem tud ütközés, összefutás, race condition vagy bármilyen egyéb probléma kialakulni, hiszen mindig csak egy aktuális utolsó block és ennek megfelelő aktuális állapottér létezik csak.
Pont ez adja meg arra a lehetőséget, hogy egyetlen contractban képes légy egy adott értéket akár többször is megmozgatni különböző címeken. Az előző pont kapcsán például felmerülhet, hogy mégis hogyan került a megvásárolt 49 YFL token az uniswapról a balancerre? Nos a válasz roppant egyszerű: át lett utalva>
Tehát van arra lehetőség, hogy egyetlen tranzakción belül adjunk-vegyünk (cseréljünk) kriptoeszközöket, majd azokat átmozgassuk egy másik platformra, ahol még ugyanazon tranzakción belül ott is végrehajtsunk műveleteket, melyek eredményét tovább tudjuk mozgatni egy harmadik-negyedik-huszadik platformra.
Ennek határt, igazából csak a gasLimit szab, illetve az, hogy mennyi pénzt vagyunk hajlandók erre elkölteni.
Folytatás…