• Płynność na Uniswap

  1. Architektura projektu protokołu Uniswap różni się od modelu w tradycyjnych giełdach aktywów cyfrowych. Większość tradycyjnych giełd prowadzi księgę zamówień i używa jej do dopasowywania kupujących i sprzedających konkretne aktywa. A Uniswap używa **rezerw płynności** do realizacji transakcji aktywów cyfrowych w umowie.

  2. Rezerwy płynności dla kontraktów handlowych są dostarczane przez dostawców płynności w sieci. Ci dostawcy płynności deponują równoważne tokeny ETH i ERC20 do określonych kontraktów handlowych tokenami ERC20. Pierwszy dostawca płynności, który zapewni płynność dla kontraktu giełdowego, najpierw ustali kurs wymiany między ETH a odpowiadającym mu tokenem ERC20 w tym kontrakcie giełdowym. Dostawcy płynności ustalają ten kurs wymiany, deponując to, co uważają za ekwiwalent ETH i tokena ERC20 zabezpieczonego kontraktem. Jeśli kurs wymiany ustalony przez dostawcę płynności jest niezgodny z szerszym rynkiem wymiany kryptowalut, wówczas inwestorzy arbitrażowi doprowadzą kurs wymiany między tokenami ETH i ERC20 do tego, co rynek uważa za prawidłowy kurs wymiany. Dlatego wszyscy kolejni dostawcy płynności będą używać kursu wymiany, gdy zdeponują aktywa w celu zdeponowania płynności.

  3. Uniswap używa również tzw. **"tokenów płynności" (liquidity tokens), które same w sobie są zgodne z ERC20. Te tokeny można postrzegać jako reprezentację wkładu dostawcy płynności w kontrakt handlowy. Uzasadnieniem dla ograniczenia Uniswap do obsługi tylko jednego tokena ERC20 na kontrakt handlowy jest zachęcenie dostawców płynności do łączenia swoich aktywów płynności w jedną rezerwę**. Uniswap śledzi względny udział każdego dostawcy płynności w całkowitej rezerwie poprzez bicie tokenów płynności. Dostawcy płynności mogą spalić swoje tokeny płynności w wybranym przez siebie czasie, aby móc wycofać proporcjonalną część swoich tokenów ETH i ERC20 z kontraktu giełdowego.

  4. Dostawcy płynności mogą zdecydować się na sprzedaż lub przeniesienie swoich tokenów płynności bez usuwania płynności z kontraktu giełdowego. Jednak tokeny płynności Uniswap są ściśle przypisane do kontraktu giełdowego. Nie ma pojedynczego natywnego zasobu cyfrowego powiązanego z protokołem Uniswap. Dostawcy płynności mogą również wpłacać płynność do kontraktów handlowych, wywołując funkcję addLiquidity(). Jako nagrodę za dostarczanie płynności dostawcy płynności otrzymają określony procent opłat transakcyjnych, gdy transakcja zostanie wykonana

  5. Handel na Uniswap: handel ETH ⇄ ERC20 Jednym z typów transakcji, które można wykonać w protokole Uniswap, jest wymiana ETH na dowolny konkretny token ERC20. Jak wspomniano powyżej, kurs wymiany między ETH a określonym tokenem ERC20 opiera się na względnym rozmiarze puli płynności każdego aktywa w kontrakcie handlowym. Kurs wymiany opiera się na niezmienniku Uniswap: pula tokenów ETH = niezmiennik (invariant). Podczas wykonywania dowolnej transakcji w protokole Uniswap niezmiennik (invariant) pozostaje niezmienny. Ponadto niezmienniki zmieniają się tylko wtedy, gdy płynność w kontraktach handlowych wzrasta lub maleje.

  • Przykład ETH ⇄ BAT: Bob chce zainicjować transakcję wymiany 1 ETH na token ERC20 BAT. Bob użyje istniejącego kontraktu giełdowego na protokole Uniswap, aby wykonać tę transakcję. Dostawca płynności zdeponował pewną ilość ETH i BAT w kontrakcie giełdowym, w tym przykładzie powiedzmy 10 ETH i 500 BAT. Podstawowy niezmiennik jest ustawiony jako: pula ETH *pula BAT = niezmiennik (niezmiennik), czyli:

Pula ETH = 10 BAT

basen = 500

Niezmienniki = 10 * 500 = 5000

Bob inicjuje swoją transakcję, wysyłając 1 ETH do puli ETH kontraktu transakcyjnego i na tej podstawie odlicza 0,3% jako opłatę dla dostawców płynności. Pozostałe 0,997 ETH zostało dodane do puli ETH. Następnie podziel niezmiennik przez nową całkowitą wartość ETH, aby określić najnowszy rozmiar puli BAT. Pozostałe tokeny BAT są następnie wysyłane do kupującego, w tym przypadku Boba. To jest:

Pula ETH = 10 BAT

basen = 500

Niezmienniki = 10 * 500 = 5000 Bobów

inicjuje swoją transakcję, wysyłając 1 ETH do puli ETH kontraktu transakcyjnego i na tej podstawie odlicza 0,3% jako opłatę dla dostawców płynności. Pozostałe 0,997 ETH zostało dodane do puli ETH. Następnie podziel niezmiennik przez nową całkowitą wartość ETH, aby określić najnowszy rozmiar puli BAT. Pozostałe tokeny BAT są następnie wysyłane do kupującego, w tym przypadku Boba. To jest:

Bob wysyła: 1 ETH

Opłata manipulacyjna: 0,003 ETH

Pula ETH = 10 + (1 – 0,003) = 10,997

Pula BAT = 5000/10,997 = 454,67

Bob otrzymuje: 500 – 454,67 = 45,33 BAT

Opłata manipulacyjna uiszczona dostawcy płynności została odliczona, gdy Bob zainicjował transakcję, a teraz ta opłata manipulacyjna jest dodawana do puli płynności (co oznacza, że ​​inwariant wzrośnie). Działa to jako płatność dla dostawców płynności, którą mogą oni pobierać, gdy usuwają swoje wkłady płynności z rynku. Ponieważ ta opłata jest ponownie dodawana po obliczeniu ceny, w miarę wykonywania każdej transakcji na kontrakcie giełdowym inwariant stopniowo wzrasta, co sprawia, że ​​akt wpłacania płynności do kontraktu giełdowego jest ważny dla płynności. Jest to dochodowa działalność dla dostawców seksu. w tym momencie:

Pula ETH = 10,997 + 0,003 = 11

Pula BAT = 454,67 nowych

niezmiennik = 5,001.37

W tej transakcji Bob otrzymuje BAT po kursie wymiany 45,33 BAT/ETH.

Wejście: 1 ETH

Wyjście: 45,33 BAT

Kurs wymiany = 45,33 BAT/ETH

Handel na Uniswap: ERC20 ⇄ Handel ERC20

Innym rodzajem transakcji, którą można wykonać w protokole Uniswap, jest wymiana jednego tokena ERC20 na inny token ERC20. Ponieważ ETH jest używane jako publiczna para handlowa dla wszystkich tokenów ERC20, Uniswap używa ETH jako zasobu pośredniczącego do bezpośrednich transakcji między ERC20 i ERC20. Na przykład Uniswap może konwertować tokeny BAT na ETH w określonym kontrakcie transakcyjnym, a następnie konwertować tę część ETH na OMG w innym kontrakcie transakcyjnym, a wszystkie te operacje są realizowane w jednej transakcji, dzięki czemu możliwe są dowolne dwie wymiany między tokenami ERC20.

Ta formuła działa bardzo podobnie do normalnego rynku: im więcej kupisz tokenów, tym wyższy będzie kurs wymiany, który musisz zapłacić, aby kupić kolejną jednostkę tokenów.