Joaca cu slippage pe DEX

 După cum am văzut, în articolul anterior despre AMM (Automated Market Maker și arbitrajul pe DEX), pe DEX (Decentralized Exchange) totul este controlat de algoritm, atât prețul de achiziție cât și slippage-ul. Dacă pe CEX (Centralized Exchange) mai ai un control al prețului de achiziție, prin ordine limit, pe DEX lucrurile stau un pic diferit. Tot prin aceste tipuri de ordine, pe CEX se poate reduce slippage-ul până la zero. Pe DEX, orice tranzacție se realizează cu un slippage mai mic sau mai mare, în funcție de cantitatea de monedă tranzacționată. În cele ce urmează, vom detalia întregul proces.

Să vedem mai întâi ce reprezintă slippage-ul. Slippage-ul reprezintă diferența dintre prețul din momentul în care s-a plasat un ordin de piață (market order) și prețul la care s-a executat ordinul. Definiția se aplică unei tranzacții pe CEX. Pe DEX avem un algoritm care acționează asupra prețului de achiziție în funcție de prețul pieței în momentul plasării ordinului (swap). Pe DEX nu există slippage zero.

Ne amintim cu toții celebra formulă care stă la baza algoritmului AMM, X*Y=K și forma extinsă (α - Δα)*(β + Δβ)=K. Plecând de la formula extinsă, pe baza unor exemple, vom vedea cum acționează prețul asupra slippage-ului, adică cum cantitatea tranzacționată influențează prețul la care se realizează swap-ul (tranzacția).

  • α: cantitate monedă α
  • β: cantitate monedă β
  • Δα: cantitate monedă extrasă din LP
  • Δβ: cantitate monedă introdusă în LP

Vom pleca de la același exemplu din articolul precedent, considerând două monede ABC și USDC (stable coin = 1$), între ele fiind o paritate de 1:1,4. Pentru fiecare monedă ABC avem 1.4 USDC în Liquidity Pool (LP). Considerând că-n LP avem 10M ABC, rezultă că vom avea și alte 14M USDC. Deci, un total de 28M$. Astfel, K va fi 10M*14M, adică 140T (trilioane), valoare care se va menține tot timpul constantă.

Continuând cu exemplul de mai sus, să presupunem că vrem să convertim o cantitate de 10K USDC în ABC. Plecăm de la următoarele valori:

  • K: 140T (140.000.000.000.000)
  • α: 10M ABC (10.000.000)
  • β: 14M USDC (14.000.000)
  • Δα: cantitate ABC extrasă, care trebuie calculată
  • Δβ: 10K USDC (10.000)
Aplicând formula de mai sus pe valorile menționate, vom obține următoarea ecuație:
(10.000.000 - Δα) * (14.000.000 + 10.000)=140.000.000.000.000
Rezultă Δα=7137,758743754461 ABC. Deci, cu 10K USDC obținem aprox. 7137,75 ABC. În LP au intrat 10K USDC și au ieșit aprox. 7137,75 ABC. În urma acestei operațiuni, componența LP arată astfel:
  • 14.010.000 USDC (14M USDC + 10K USDC)
  • 9.992.862 ABC (10M ABC - 7137,75 ABC)
În final, cu 10K USDC am obținut 7137,75 ABC la o paritate de 1,401 (10.000 / 7137,75), plecând de la o paritate de 1,4. Deci, slippage-ul, adică diferența de la paritatea inițială (1,4) și paritatea cu care s-a realizat swap-ul (1,401), este de 0,001, adică 0,07% (100 * 0,001 / 1,4).

Să vedem ce s-ar fi întâmplat dacă în loc de un swap de la 100K USDC în ABC am fi realizat un swap de la 100k USDC. Am fi avut de rezolvat următoarea ecuație:
(10.000.000 - Δα) * (14.000.000 + 100.000)=140.000.000.000.000
Rezultă Δα=70.922 ABC. Deci, cu 100K USDC am fi obținut 70.922 ABC la o paritate de 1,41 (100.000 / 70.922), slippage-ul fiind de 0,01 (1,41 - 1,4), adică 0,7% (100 * 0,01 / 1,4).

Să mergem mai departe și să vedem cum s-ar fi modificat paritatea și slippage-ul la un swap de la 1M USDC în ABC. În acest caz, am fi avut de rezolvat următoarea ecuație:
(10.000.000 - Δα) * (14.000.000 + 1.000.000)=140.000.000.000.000
Ar fi rezultat Δα=666.666 ABC. Deci, cu 1M USDC am fi obținut 666.666 ABC la o paritate de 1,5 (1.000.000 / 666.666), slippage-ul fiind de 0,1 (1,5 - 1,4), adică 7,1% (100 * 0,1 / 1,4).

Dacă am fi încercat să convertim 10M USDC în ABC, slippage-ul ar fi fost undeva peste 72% și, foarte probabil, că swap-ul nu s-ar fi realizat, majoritatea DEX-urilor având limitat slippage-ul undeva în jurul a 50%.

Din cele expuse mai sus, se poate observa, că pe măsură ce se convertește o sumă mai mare, crește și slippage-ul proporțional. Mai observăm că o tranzacție de 10K se realizează la un slippage sub 0,1% iar una de 100K la un slippage de sub 1%. În urma acestor observații, rămâne să ne întrebăm dacă avem nevoie să setăm slippage mai mare de 1% atunci când facem un swap.
Slippage peste 10% ar avea sens în cazul unei listări de monedă și vrem cu orice preț să luăm o cantitate, însă cu riscul aferent al unui preț de achiziție mult mai mare decât prețui inițial de la listare. Suntem oare dispuși la așa ceva?

Niciun comentariu:

Trimiteți un comentariu