티스토리 뷰

[연재]
- 디파이 유동성 채굴 알아보기(1) - 유동성이란
- 디파이 유동성 채굴 알아보기(2) - AMM이 가격을 결정하는 방법

 

유니스왑에 유동성 공급 = 내 자산을 Maker 주문으로 제공

 

유동성 공급은 보통 두 개의 토큰을 쌍(pair)으로 비율에 맞춰서 예치한다. 예를 들어 ETH와 USDT를 동시에 공급할 수 있다. 이 경우 orderbook 방식의 거래로 따지면 ETH-USDT에 주문을 넣는 것이다. 즉, 다른 사용자로 하여금 ETH→USDT 또는 USDT→ETH로 교환할 수 있는 양방향 Maker주문을 넣는 것과 같다.

 

 

여기선 orderbook방식으로 금액과 수량을 지정하지 않는다. 그냥 알아서 잘 팔아주길 기도하면서 믿고 맡겨야 한다. 누구를 믿어야 하나. 바로 알고리즘으로 작동되시는 오또케-마켓-메이커(Automated Market Maker, 이하 AMM)님이시다.

 

 

 

AMM이 가격을 결정하는 방법

코인의 수량과 가격은 넣지 않지만, 유동성 풀을 제공하는 규칙은 있다. 유니스왑의 경우 코인은 반드시 쌍(pair)으로 예치되어야 하며, 예치하는 비율 또한 중요하다. 유니스왑에서는 각각 코인의 가치가 동일하게(50:50) 예치할 수 있다. 이때 코인의 수량이 아닌, 코인의 가치 기준이다. 예를들어 현재 시점의 1 ETH = 385.695 USDT 의 가치 비율(환율)이라면 10 ETH : 3856.95 USDT 식으로 비율을 맞춰 예치가 가능하다.

 

이는 유니스왑이 CPMM 기반의 AMM을 사용하기 때문이다. 이에 대해서는 Chainlink - AMM DEX에 리스크는 줄이고 더 많은 자금을 유입하는 방법의 내용을 잠깐 살펴보자.

가장 처음 등장한 종류는 가장 초기의 AMM 기반 DEX인 뱅코르와 유니스왑에서 인기를 끈 CPMM(Constant Product Market Maker)입니다. CPMM은 x*y=k 공식을 바탕으로 각 토큰의 수량(유동성)에 따라 두 토큰의 가격대를 형성하는 것입니다. K라는 상품을 일정하게 유지하기 위해서는 X 토큰의 공급이 늘어나면 Y 토큰의 공급은 줄어들 수밖에 없고 반대의 경우도 마찬가지입니다. 이를 고려하면 늘 유동성이 있는 쌍곡선이 이뤄지지만 양 끝에서 무한대에 수렴하는 가격 고점에 다가가게 됩니다.

 

디파이에 단골공식 x * y = k 를 본격 설명하게 될줄이야...

 

x * y = k

 

위 차트에서 x축과 y축은 각각 토큰A와 토큰B는 수량이다. 여기서 k는 변하지 않는 상수다고 할 때, 토큰A와 토큰B의 비율은 빨간 선을 타고 유지된다는 원리이다.

 

 

하... 인터넷 다운로드한 그림에 그림판으로 덧칠하고 있으니 급 현타가;;;

예를들어 1ETH=10USDT라 하자.(이때라면 ETH를 많이 살듯?) 유동성 풀에는 100ETH/1,000USDT가 예치되어 있다. 그래서 100 * 1,000 = 100,000으로 k=100,000 이 된다.

 

 

이 상태에서 누군가 풀에 1ETH를 가져가려면 몇 USDT를 내야 할까? 1 ETH가 풀에서 빠져나간다고 가정하면 99 ETH * ? USDT = 100,000 이 되어야 하므로 채워져야 할 ? USDT = 1,010.1010 USDT가 된다. 기존에 1,000 USDT가 있으니, 10.1010 USDT (여기에 0.3% 수수료를 더해서)를 채워 넣으면 된다. 최종적으로 10.1313 USDT정도를 넣고 1 ETH를 가져오게 되니 1ETH=10.1313 USDT에 스왑한 것이 된다.

 

 

반대로 풀에서 100 USDT를 가져가려면? 100 USDT가 풀에서 빠져나간다고 가정하면 ? ETH * 900 USDT = 100,000 이 되어야 하므로 채워야 할 ? ETH = 111.111 ETH가 된다. 기존에 100 ETH가 있으니 추가로 11.111 ETH (여기에 0.3% 수수료를 더해서)를 채워 넣으면 된다. 최종적으로 11.1443 ETH를 넣고 100 USDT를 가져온 것이 되니 1ETH=8.973 USDT에 스왑한 것이 된다.

 

 

 

(참고로, 대략 1ETH 거래보다 10ETH거래가 가격차이가 크게 나온다. (1ETH=10USDT기준으로 +1.313% vs -10.27% 이를 price impact로 보면 될듯)

 

결론적으로 유동성 풀의 가격은 특정 SWAP이 요구되는 코인의 공급이 줄어들면서, 자연스레 가격이 올라가는 구조가 된다.

 

 

CPMM기반의 AMM에서 참조할 수 있는 부분

 

  • 코인 쌍의 가격은 서로 반비례한다.

  • 가격은 AMM에서 정해지지만, 실제 가격이 변하는 요인은 (아이러니하게도) 외부의 수요/공급 때문이다.

  • 적은 금액을 스왑하는 것 보다 많은 금액을 스왑하는 것이 price impact가 크다. = 그래서 많은 금액을 스왑하려면, 단위를 나눠서 스왑하고, 다시 풀이 차기를 기다렸다가 스왑하는 것이 유리함

  • 풀의 유동성 크기가 클수록 (=예치되어 있는 자산이 많을 수록) 가격 변화에 둔감해진다. =스왑해가는 입장에서는 상대적으로 적은 금액을 스왑해가는 효과이므로, 가격변화에 안정적이다.

  • 스왑으로 풀의 코인을 없앨 수는 없다. (비율이므로 각 곡선은 x축 또는 y축으로 무한히 뻗어나간다)

  • 그러나 한 코인의 수량이 기하급수적으로 많을 경우, 반대 코인을 거의 말려버릴 수 있다.

 

많은 차익거래자(arbitrageurs)가 유니스왑을 상시 지켜보고 있다. (차익거래자는 사람일 수도 있고 사람이 만든 프로그램(=봇)일 수도 있다.) 이런 차익거래자가 하는 일은 일반 거래소와 비슷하다. 유니스왑과 외부(다른 거래소들)에 가격차이가 나는 코인을 스왑해간다. 그래서 유니스왑의 코인 가격이 외부의 코인 시세와 자연스레 맞춰지는 것이다.

 

 

 

< 3편에서 계속 >

 

 

공지채널 : https://t.me/sowhak

소확코인 : 휴식중;;

잡담 -> 개나리반 or 밋업방 거주중

댓글
최근에 올라온 글
Total
Today
Yesterday