Recent fac un rezumat al metodelor de evaluare a pistei DeFi. După studierea unor cazuri, Uniswap este un reprezentant tipic în ceea ce privește influența și logica iterativă.

Logica internă a iterării Uniswap de la V1 la V4, precum și lansarea protocolului UniswapX, este inovația funcțională și optimizarea mecanismului pentru tranzacțiile DEX.

V1 a implementat inițial AMM în domeniul criptării, V2 a redus expunerea la riscul ETH și a lansat un oracol de preț care este mai greu de manipulat, V3 a rezolvat problema eficienței scăzute a capitalului prin lichiditate centralizată, V4 a implementat DEX personalizabil și protocolul UniswapX a fost consolidat prin mecanismul de licitație Competitivitatea agregatorilor terți permite optimizarea derapajelor de preț.

Istoricul dezvoltării Uniswap

Nu este nevoie să intrăm în detalii despre statutul și influența Uniswap. Conform datelor în timp real ale lui Dune, Uniswap este încă DEX cu cea mai mare cotă de piață.

Ca DEX lider, nu există de mult timp, dar a fost repetat de multe ori Să aruncăm o privire asupra procesului de dezvoltare:

În iunie 2017, Vitalik a publicat articolul On Path Independence;

În noiembrie 2018, a fost lansat Uniswap V1: sprijină tranzacțiile între ETH și ERC-20Token;

În martie 2020, Uniswap V2 a fost lansat: sprijină tranzacțiile între oricare două perechi de jetoane ERC-20;

În mai 2021, a fost lansat Uniswap V3: îmbunătățirea ratei de utilizare a fondurilor LP și propunerea conceptului de lichiditate agregată;

În iunie 2023, Uniswap V4 a fost lansat: introducerea personalizării contractelor Hooks pentru a preveni pierderile de valoare;

În iulie 2023, a fost lansat Uniswap X: agregarea lichidității în lanț și în afara lanțului, protecție MEV.

Uniswap V1: O încercare de creare a pieței automate

În 2017, Vitalik a publicat un articol (On Path Independence) pe pagina sa personală, în care a introdus pentru prima dată producătorii de piață automati (AMM) în domeniul criptării, care este o metodă de tranzacționare diferită de CEX. Desigur, această abordare a fost mult timp discutată în cercurile non-cripto (cum ar fi cercurile financiare tradiționale).

Știm că pe piața de valori, pe piața futures sau pe CEX existente, majoritatea tranzacțiilor sunt efectuate în Registrul de Comenzi (modul registru de comenzi). Creatorii de piață (cum ar fi brokerii și bursele centralizate) potrivesc ordinele de cumpărare ale cumpărătorilor și ordinele de vânzare ale vânzătorilor atunci când prețurile se potrivesc, completând astfel tranzacțiile dintre cumpărători și vânzători.

Cu toate acestea, au fost întâlnite probleme în cazul descentralizării Motivul este că în mediul descentralizat al DEX (oricine poate participa la crearea pieței), este dificil să se potrivească tranzacțiile în modul registru de comenzi pentru a oferi lichiditatea corespunzătoare, rata tranzacției. și Experiența este relativ slabă și, fără lichiditate suficientă, este dificil să se egaleze eficiența operațională a CEX.

În acest articol al lui Vitalik, un concept nou este introdus pe piața de criptare: Automatic Market Maker.

În acest concept, stabilirea prețului activelor se face prin algoritmi de stabilire a prețului, mai degrabă decât prin modelul tradițional de carte de comenzi. În modelul AMM, nu este nevoie de cotații de creatori de piață sau de potrivire a sistemului, iar comercianții pot folosi direct lichiditatea din pool pentru a realiza schimbul de active.

TokenA și TokenB formează o relație constantă de produs:

tokenA_balance(p) *tokenB_balance(p)=K (K rămâne neschimbat)

Acesta este un sistem de tranzacționare bazat pe lichiditate numit Constant Product Market Maker (CPMM).

În cadrul acestei abordări, un preț poate fi dat prin definirea oricărei relații (monotone) între tokenA și tokenB și calcularea derivatelor acestuia în orice moment, formând astfel un market maker independent de cale.

Trei părți: LP, comercianți, arbitrageri

În mecanismul de creare a pieței al AMM, nu există o contraparte specifică similară cu modelul registrului de ordine. Valoarea reală a activului este determinată de formula matematică a unui produs constant, poate fi comparată cu contrapartea fiind un contract inteligent, care poate realiza tranzacția activului.

Cineva trebuie să furnizeze lichiditate într-un contract inteligent, iar furnizorul de lichiditate este LP (Liquidity Provider LP) oferă lichiditate pentru tranzacții prin injectarea de active în contractele inteligente din pool, obținând astfel venituri din comisioane de tranzacție. După ce LP construiește fondul inițial de lichiditate, comercianții pot schimba jetoane prin intermediul pool-ului, iar arbitragerii vor lua inițiativa de a menține prețurile activelor în concordanță cu prețurile pieței prin arbitrajul prețurilor între diferite piețe.

În Uniswap V1 lansat în noiembrie 2018, toate activele pot fi răscumpărate prin ETH. Pentru tranzacțiile dintre ETH și ERC-20Token, oricine poate adăuga jetoane pentru a tranzacționa cu ETH nativ, ETH este în esență un intermediar de tranzacționare a activelor.

Ce se întâmplă într-un singur pool dacă vrem să tranzacționăm?

Să presupunem că un ETH valorează în prezent 100 TokenA, iar un grup ETH/TokenA este format din 10 ETH și 1000 TokenA.

În acest moment, valoarea a 10 ETH și a 1.000 TokenA este aceeași cu 1.000 de dolari SUA, iar raportul valorii activelor este de 1:1. k=10 *1000=10000, acest produs rămâne neschimbat fără a adăuga mai multă lichiditate.

Acum să presupunem că vreau să vând 5 ETH la pool, atunci ar trebui să fie:

y=10000/(10+5)=666,67,

Numărul de ETH din pool a crescut la 15, iar numărul de USDC în acest moment a devenit 666,67, așa că am schimbat 5 ETH cu 333,33 TokenA.

În acest moment, prețul unui singur ETH în pool este

666,67/15=44,44,

Adică, un ETH este egal cu 44,44 TokenA.

Desigur, dacă prețul dintr-un singur pool se schimbă semnificativ față de cel al altor piețe de tranzacționare, arbitragerii vor roi imediat până vor consuma diferența de preț. La urma urmei, mecanismul AMM poate genera doar prețuri de tranzacție, dar nu poate descoperi prețuri de piață, așa că rolul arbitragilor este foarte important.

Pierderi permanente, LP Token, derapaj de tranzacție

Pierderile permanente apar atunci când raportul prețului jetoanelor depuse se modifică în comparație cu momentul în care acestea au fost depuse în pool. Cu cât schimbarea este mai mare, cu atât pierderea impermanenței este mai mare.

Acum, ca LP, vom continua să dăm un exemplu:

Formula de bază UniswapV1: x∗y=k

Acum, ca furnizor de lichiditate, continuăm să adăugăm 10 ETH și 1000 TokenA la pool ca lichiditate inițială. În acest moment, 1 ETH este egal cu 100 TokenA.

Produsul constant al celor două cantități de active este 10*1000=10000(x*y=10000,x=100y).

În acest moment, dacă prețul pentru 1 ETH crește la 200 TokenA,

Putem converti:

x*y=10000,x=200y,

Astfel, se calculează x=7,071 și y=1414,21.

În acest moment, fondul de lichiditate s-a schimbat de la 10 ETH și 1000 TokenA inițiali la: 7,071 ETH și 1414,21 TokenA.

Ați găsit problema?

În acest moment, dacă răscumpărez toate activele, voi primi 7.071 ETH și 1414.21 TokenA. Valoarea reală calculată în TokenA este

7,071*200+1414,21=2828,41,

Și dacă este calculat pe baza inițialelor 10 ETH și 1000 TokenA, prețul actual ar trebui să fie

10*200+1000=3000TokenA.

Diferența în această parte a venitului (3000-2828.41=171.59TokenA) este pierderea temporară.

Pierderile permanente apar deoarece, în cadrul mecanismului automat de creație de piață al schimburilor descentralizate, furnizorii de lichidități ajustează fondurile în funcție de fluctuațiile prețului, rezultând pierderi de principal și randamente ratate.

Deoarece acţionează atât ca cumpărători, cât şi ca vânzători, ei sunt forţaţi să mărească cantitatea de active pe care le deţin atunci când preţurile scad şi să scadă cantitatea de active pe care le deţin atunci când preţurile cresc, rezultând pierderi. Desigur, puteți alege și acoperirea și gestionarea riscurilor prin deschiderea de contracte scurte/lungi pe ETH.

Pentru a-i motiva pe utilizatori să acționeze ca LP pentru a oferi lichiditate și pentru a-i încuraja să suporte volatilitatea prețurilor, LP Token a luat ființă. Aceasta este o recompensă pentru furnizorii de lichidități, care pot obține un anumit procent din comisionul de gestionare pentru fiecare tranzacție (UniswapV1, comercianții plătesc 0,3% în tranzacție, care aparține furnizorului de lichiditate). În același timp, servește și ca certificat pentru LP pentru a retrage lichiditatea adăugată de la sine.

Un alt concept este derapajul de tranzacționare, cu care prietenii care fac adesea tranzacționare cu DEX vor fi cu siguranță familiarizați. Ca sistem de tranzacționare bazat pe lichiditate, frumoasa ecuație constantă a produsului AMM este o curbă netedă, iar prețul se modifică în orice moment în funcție de relația dintre cerere și ofertă.

Dacă tranzacționați un număr mare de Jetoane în acest moment, va avea loc o alunecare și va exista o anumită diferență între prețul așteptat și prețul pe care îl obțineți efectiv din pool. Cu alte cuvinte, va exista un decalaj între prețul pe care îl doriți și prețul tranzacției.

Uniswap V2: Adaptare, Oracle, Împrumut Flash

Uniswap V1 acceptă doar tranzacții între perechile de tranzacționare ERC-20/ETH , pierderi nepermanente și riscuri de alunecare.

În Uniswap V2, se bazează în continuare pe mecanismul „constant product market maker”, dar upgrade-ul V2 a adus îmbunătățiri ale eficienței, inclusiv: suportarea oricăror două perechi de jetoane ERC-20 pentru tranzacționare, ceea ce înseamnă că orice ERC20 poate fi creat - Perechi ERC20 fără a fi nevoie să se împerecheze prin calea de tranziție a ETH.

Nu voi intra în detalii despre acest punct. Upgrade-ul V2 include multe aspecte, iar două puncte importante sunt: ​​îmbunătățirea oracolului de preț și realizarea de împrumuturi flash.

Îmbunătățiri aduse Price Oracle

În procesul Uniswap V1, prețul calculat prin împărțirea fondurilor de rezervă ale celor două active din pool nu este sigur dacă este utilizat ca predicție de preț în lanț, deoarece poate fi ușor manipulat.

Unul dintre scopurile acestei actualizări V2 este de a crește costul și dificultatea manipulării prețurilor. În V1, presupunând că alte contracte utilizează prețul curent ETH-DAI pentru a deconta instrumente derivate, un atacator care manipulează prețul măsurat poate cumpăra ETH de la perechea ETH-DAI, declanșează decontarea contractului derivat la un preț umflat și apoi ETH. este vândut înapoi perechii, readucerea tranzacției sale la prețul real. În acest caz, tranzacțiile pot avea loc chiar ca tranzacții atomice sau cu mineri care controlează ordinea tranzacțiilor în cadrul unui bloc.

În V2, pentru a determina echilibrul prețului de piață, prețul este actualizat o dată pe bloc, iar prețul de schimb al jetonului este determinat înainte de blocul următor, adică prețul pieței jetonului se bazează pe ultima tranzacție din blocul anterior.

În acest upgrade, sunt furnizate și noi date de predicție a prețului: preț mediu ponderat în timp TWAP. Acumularea prețurilor relative a două active la începutul fiecărui bloc permite altor contracte pe Ethereum să estimeze prețul mediu ponderat în timp a două active pe orice interval de timp.

Mai precis, în Uniswap V2, prețul este acumulat prin urmărirea sumei cumulate a prețului atunci când cineva interacționează cu contractul la începutul fiecărui bloc. Pe baza marcajului de timp al blocului, fiecare preț este ponderat cu perioada de timp de când blocul anterior a fost actualizat. Aceasta înseamnă că valoarea acumulatorului la un moment dat (după actualizare) ar trebui să fie suma prețurilor spot pentru fiecare secundă din istoria contractului.

Utilizatorii oracolului pot alege când să înceapă și să încheie această perioadă, costul pentru atacatori pentru a manipula TWAP va fi mai mare, iar prețul este relativ greu de manipulat.

Realizați împrumut flash

Împrumutul flash este o inovație absolută în comparație cu finanțarea tradițională. La urma urmei, tranzacțiile reale nu pot fi anulate ca pe blockchain. Împrumuturile flash Flash Swap au fost introduse în V2.

Utilizatorii sunt liberi să împrumute active grupului și să le folosească în altă parte a lanțului, doar pentru a returna activele și a plăti dobânda corespunzătoare la sfârșitul tranzacției (plată în aceeași tranzacție atomică), dacă plata nu este returnată în mod normal. tranzacția va fi anulată.

De fapt, permite oricui să împrumute rapid orice activ stocat în pool-ul Uniswap. În V1, utilizatorii nu au voie să primească și să utilizeze activul înainte de a plăti pentru acesta. Când folosesc activul A pentru a cumpăra activul B, activul A trebuie trimis la contract înainte ca activul B să poată fi obținut.

Există, de asemenea, alte puncte de actualizare: inclusiv Uniswap V2 ajustarea noului cadru de contract, utilizarea unui format simplu binar cu virgulă fixă ​​pentru a codifica și procesa prețurile (acuratețe), actualizarea taxelor de protocol, susținerea meta-tranzacțiilor pentru acțiunile de pool bătute etc.

Uniswap V3: Îmbunătățirea eficienței capitalului

Context: Uniswap V2 are probleme de lichiditate.

Conform introducerii la mecanismul AMM de mai sus, putem vedea că în V1 și V2, lichiditatea pool-ului este de fapt distribuită în zona [0, +∞] Cu alte cuvinte, orice preț este permis în pool-ul V2. au loc tranzacții (consultați curba netedă a funcției inverse în produsul constant AMM).

Acest lucru pare a fi un lucru bun la prima vedere Intervalul de tranzacționare este foarte mare, dar, de fapt, nu există o cerere suficientă pentru perechi de tranzacționare cu volatilități diferite în intervalele lor de preț, ceea ce duce la o lipsă gravă de lichiditate, cu excepția unor tranzacții. intervale, utilizare scăzută a activelor.

După cum vă puteți imagina, este inutil și irositor să furnizați lichiditate la un punct de preț atât de departe de intervalul de preț, încât prețul nu poate ajunge niciodată la acel punct.

lichiditate concentrată

În acest caz, pentru a îmbunătăți lichiditatea financiară, Uniswap V3 a introdus conceptul de lichiditate concentrată.

Adică: furnizorii de lichiditate (LP) pot alege în mod liber să furnizeze lichiditate într-un anumit interval de preț. Acest lucru poate oferi mai bine lichiditate și poate opera într-un interval de eficiență ridicată a capitalului și poate fi folosit și în aplicații cu prețuri diferite volatilitatea au alocări diferite.

Fiecare interval mic de preț din V3 poate fi înțeles ca un V2 la locul de muncă. În timpul tranzacției, prețul se va deplasa fără probleme de-a lungul curbei Când prețul atinge o anumită secțiune a V2, acesta atinge punctul de interval al intervalului de preț al V3. În acest moment, punctul de preț va aluneca la următorul interval de preț. .

După înțelegerea conceptului de mai sus, putem cunoaște noul termen - nucleul V3 este Căpușele.

Ticurile, căpușele, sunt cele mai mici sume incrementale cu care un titlu poate fi tranzacționat. În V3, prin împărțirea intervalului de preț [0, +∞] în nenumărate căpușe cu granulație fină, sunt implementate restricții asupra limitelor superioare și inferioare ale fiecărui interval. Lichiditatea este agregată prin controlul granularității. Întreaga gamă de prețuri din V3 este calibrată prin Tickuri discrete, distribuite uniform.

Principiile matematice ale Uniswap V3 s-au schimbat, deși este similar cu stratul de bază al lui V2:

L=xy sub semnul rădăcinii

L se numește cantitatea de lichiditate, iar lichiditatea din pool este combinația celor două cantități de active Token. În mod similar, produsul cantităților celor două jetoane este K, dar pentru că fiecare Tick are adâncimi diferite de lichiditate, formulele echivalente pentru adâncimi diferite nu mai sunt aceleași.

Nu voi intra în detalii despre principiile matematice Mai jos este o lucrare de Atis Elsts despre principiile matematice din V3. Prietenii interesați o pot citi singuri.

Uniswap V2 are încă o taxă standard de tranzacție de 0,3%, dar în V3, datorită granularității diferite, sunt furnizate trei niveluri diferite de comision, și anume 0,05%, 0,3% și 1%. În acest moment, LP-urile își pot concentra eficiența capitalului în intervalul cel mai des tranzacționat pentru a obține randamente maxime.

În plus, V3 a optimizat din nou oracolul bazat pe V2. Nu mai stochează o singură variabilă de acumulare de preț, ci stochează un set de variabile, care pot prelungi durata de viață a datelor, pot reduce taxele de gaz și pot economisi costurile.

Uniswap V4: DEX personalizabil

Uniswap V4 se bazează pe modelul de lichiditate centralizat al Uniswap V3, permițând oricui să implementeze un nou grup de lichiditate centralizat folosind funcții personalizate pe Uniswap, devenind astfel o platformă DEX eficientă și personalizabilă.

În V4, punctul central este contractul de cârlige, iar viziunea este de a permite oricui să ia aceste decizii de compromis prin introducerea de „cârlige”. Pentru fiecare pool, creatorul poate defini un „contract Hooks” care execută logica în punctele cheie din ciclul de viață al apelului.

Aceste Hook-uri gestionează, de asemenea, comisioanele de schimb ale pool-ului și comisioanele de retragere percepute furnizorilor de lichidități.

Cârlige și piscine personalizate

Hook-urile sunt un set de contracte dezvoltate de terți sau de oficialii Uniswap. Când creează un pool, pool-ul poate alege să legă un hook. Ulterior, într-o anumită etapă a tranzacției, pool-ul va apela automat la acesta. Contractul este în Apelarea punctelor cheie din ciclul de viață pentru a implementa logica.

Cu alte cuvinte, un hook este un contract implementat extern care execută o logică definită de dezvoltator la un punct desemnat în execuția pool-ului. Aceste cârlige permit integratorilor să creeze pool-uri de lichiditate centralizate cu execuție flexibilă și personalizabilă. Hooks pot modifica parametrii piscinei sau pot adăuga noi caracteristici și funcționalități.

Fiecare fond de lichiditate Uniswap are un ciclu de viață: în timpul ciclului de viață al unui pool de lichidități, se întâmplă mai multe lucruri, inclusiv: grupul este creat cu un nivel de taxă implicit, lichiditatea este adăugată, eliminată sau reajustată, iar utilizatorii pot, de asemenea, schimba jetoane etc. .

În Uniswap v3, aceste evenimente ale ciclului de viață sunt strâns cuplate și executate într-o ordine foarte strictă. Dar pentru a crea spațiu pentru lichidități personalizabile în Uniswap V4.

Contractul Hooks creează o metodă de introducere a codului pentru implementatorii pool-ului de minerit pentru a efectua operațiuni specificate în punctele cheie din ciclul de viață al pool-ului de mining, cum ar fi înainte și după schimburi sau înainte și după modificările poziției LP.

Pe scurt, hook-urile sunt plug-in-uri pentru personalizarea modului în care pool-urile, swap-urile, comisioanele și pozițiile LP interacționează pool-uri AMM personalizate.

Exemple de funcționalități care pot fi implementate prin contracte hook includ:

Executarea ordinelor mari prin TWAMM pe o perioadă de timp executate la prețuri dinamice, care se modifică în funcție de volatilitate, pentru furnizorii de lichiditate;

Logica de bază a Uniswap V4 este aceeași cu V3 și nu poate fi actualizată. Deoarece fiecare pool este acum definit de mai mult decât un strat de simbol și taxă, din aceasta se poate construi o mare varietate de pool-uri. Și în timp ce fiecare grup își poate folosi propriul contract inteligent de cârlig, hook-urile sunt limitate la permisiuni specifice determinate atunci când este creat pool-ul.

Există, de asemenea, unele modificări arhitecturale în V4, cum ar fi Flash Accounting (cont instantaneu), care pot reduce semnificativ taxele de gaz. Această caracteristică este inclusă în EIP-1153, care introduce stocarea „tranzitorie”, și va fi implementată după upgrade-ul Cancun (Ethereum Cancun).

În plus, versiunea V4 folosește și modul singleton (salvează toate stările pool-ului într-un singur contract), contabilitate fulger (asigură solvabilitatea pool-ului), restabilește suportul pentru ETH nativ, acceptă jetoane ERC-1155 și adaugă mecanisme de guvernare Așteptați îmbunătățirea.

UniswapX: Întărirea concurenței

UniswapX este un nou protocol fără permisiune, cu sursă deschisă (GPL), bazat pe licitație, pentru tranzacționarea între AMM-uri și alte surse de lichiditate. Protocolul va îmbunătăți funcționalitatea schimbului în mai multe aspecte, inclusiv: prețuri crescute prin punerea în comun a surselor de lichiditate. .

Agregare de nivel următor Agregare de generație următoare

Context: Tranzacțiile în lanț continuă să inoveze, ceea ce duce la o proliferare a fondurilor de lichiditate Noi niveluri de comisioane, L2 și mai multe protocoale în lanț vor dispersa, de asemenea, lichiditatea. Soluție: UniswapX își propune să rezolve această problemă printr-o rețea deschisă care externalizează complexitatea de rutare către terțe părți care trebuie să concureze pentru a completa tranzacții folosind lichidități în lanț, cum ar fi pool-urile AMM sau propriile lor stocuri private.

Cu UniswapX, comercianții vor putea folosi interfața Uniswap fără a-și face griji dacă obțin cel mai bun preț. Tranzacțiile comercianților vor fi întotdeauna înregistrate și decontate în mod transparent în lanț. Toate comenzile sunt alimentate de Uniswap Smart Order Router, care obligă terții să concureze cu Uniswap V1, V2, V3 și, la lansare, V4.

În esență, UniswapX întărește mecanismul concurenței și optimizează derapajul prețului fiecărui grup de active prin selecția de rutare de la terți.

În plus, UniswapX a lansat și o nouă încercare: Tranzacții fără gaz, fără taxe necesare pentru eșec. Comerciantul semnează o comandă unică în afara lanțului, care este apoi transmisă în lanț de către o terță parte care plătește gaz în numele comerciantului. Terțul include taxa pentru gaz în prețul tranzacției, dar poate concura pentru cel mai bun preț executarea mai multor comenzi în loturi și reducerea costurilor de tranzacție. Protecția MEV returnează MEV-ul obținut inițial prin tranzacții de arbitraj către comercianți la un preț mai bun.

UniswapX ajută utilizatorii să evite forme mai explicite de retragere MEV: ordinele executate folosind active private ale terților nu pot fi „sandwich” și terții sunt stimulați să folosească relee de tranzacții private atunci când direcționează ordinele către pool-uri de lichiditate în lanț. Viitoarea versiune UniswapX cu lanțuri încrucișate va combina schimbarea și crearea de punți într-o singură operațiune fără întreruperi. Folosind UniswapX, schimbătorii vor putea schimba lanțurile în câteva secunde și pot aștepta cu nerăbdare progresul lor.

Tema principală a Uniswap: iterația

Logica internă a iterării Uniswap de la V1 la V4, precum și lansarea protocolului UniswapX, este inovația funcțională a DEX (AMM).

V1 a implementat inițial AMM în domeniul criptării, V2 a redus expunerea la riscul ETH și a lansat un oracol de preț care este mai greu de manipulat, V3 a rezolvat problema eficienței scăzute a capitalului prin lichiditate centralizată, V4 a implementat DEX personalizabil și protocolul UniswapX a fost consolidat prin mecanismul de licitație Competitivitatea agregatorilor terți permite optimizarea derapajelor de preț.

Putem vedea că Uniswap inovează la fiecare pas - reducerea costurilor de împrumut, optimizarea experienței utilizatorului, consolidarea conștientizării concurenței și îmbrățișarea tehnologiilor emergente. Această actualizare iterativă este baza unui protocol bun care să dureze pentru totdeauna.