본문 바로가기
Block Chain/DeFi Series

[DeFi Series] Uniswap V2 게으른 유동성(Lazy Liquidity) || Math | DeFi ||

by 개발이 체질인 나그네 2022. 12. 24.
반응형

안녕하세요. 스마트컨트렉트 개발자 개발이 체질의 최원혁입니다.

이번 게시글에서 소개해드릴 DeFi Series Uniswap V2 게으른 유동성(Lazy Liquidity)에 대해 알아보겠습니다.

게으른 유동성(Lazy Liquidity) : 스왑에 사용되지 않는 유동성

 

유니스왑의 V2는 AMM의 CPMM 모델을 사용하여 유동성풀에서 거래되는 두 암호화폐의 거래 비율이 측정됩니다.

정해진 비율을 유지하여 거래되는 암호화폐의 양이 정해지게 됩니다. 하지만 만약 한쪽 암호화폐의 공급량이 다른 한쪽에 비해 현저히 낮은 경우, 높은 슬리피지가 발생하며 실제 가격과 달리 굉장히 낮은 스왑양이 체결되게 됩니다. 가격은 점점 낮아지지만, AMM의 특성상 가격은 0 이 되지 않습니다. 즉 끝까지 거래되는 않는 토큰이 존재하게 되며, 이를 V2의 게으른 유동성 이라고 합니다. 

 

CPMM 공식
기준 토큰 X의 가격

CPMM 공식인 X * Y = K를 보면, K의 값은 유동성 풀이 형성된 시점에 계산된 값으로, 특정상황을 제외하고 고정된 값(상수)입니다.

CPMM은 상수 K를 활용하여 두 암호화폐의 거래 비율을 계산합니다. 이때 두 토큰의 비율에 따라 토큰의 가격(P)이 정해집니다.

유동성풀이 형성된 시점에 정해진 K를 고정값으로 거래가 진행되면, 그래프는 위와 같이 형성됩니다. 위 그래프가 어떤 의미를 갖는지 아래 예시를 통해 알아보겠습니다.

 

 

Example

Before Swap

  • X : MTK/USDC 유동성 풀의 MTK 현재 공급량 = 1,000 개
  • Y : MTK/USDC 유동성 풀의 USDC 현재 공급량 = 4,000개
  • K : MTK/USDC 유동성 풀의 유동성 = 1,000  * 4,000 = 4,000,000
  • P : 기준 토큰 MTK의 가격 = 1,000/4,000 = 0.25 USDC

MTK/USDC 유동성 풀에 유동성이 생기며 위와 같은 CPMM 그래프가 형성되었습니다.

 

After Swap (1)

Alice는 500 MTK로 USDC와 스왑을 하려고 합니다.

500 MTK를 유동성 풀에 보내는 트랜잭션이 끝난 후, 유동성 풀 그래프와 체결된 USDC의 개수는 아래와 같이 계산할 수 있습니다.

  • X : MTK/USDC 유동성 풀의 MTK 현재 공급량 = 1,000개
  • Y : MTK/USDC 유동성 풀의 USDC 현재 공급량 = 4,000개
  • dx : 거래자가 MTK/USDC 유동성 풀에 추가한 MTK 토큰 개수 = 500 MTK
  • dy : 거래자가 MTK/USDC 유동성 풀에서 가져가는 USDC의 토큰 개수 = 1333.33 USDC
  • P : 스왑전, 기준 토큰 MTK의 가격 = 1,000/4,000 = 0.25 USDC
  • P1 : 스왑 후, 기준 토큰 MTK의 가격 = 1,500/2666.66 = 0.56 USDC
  • K : MTK/USDC 유동성 풀의 유동성 = 1,000  * 4,000 = 4,000,000

MTK/USDC 유동성 풀의 MTK 총 공급량에 500개가 추가되고, USDC의 총 공급량에 1333.33개가 제거되었습니다. 두 토큰의 총 공급량의 변화에 따라 P1의 가격 또한 변화하게 된 걸 알 수 있습니다.

 

After Swap (2)

이때 Alice는 500 MTK로 다시 한번 USDC로 스왑하려고합니다.

500 MTK를 유동성 풀에 보내는 트랜잭션이 끝난 후, 유동성 풀 그래프와 체결된 USDC의 개수는 아래와 같이 계산할 수 있습니다.

  • X : MTK/USDC 유동성 풀의 MTK 현재 공급량 = 1,500개
  • Y : MTK/USDC 유동성 풀의 USDC 현재 공급량 = 2666.66개
  • dx : 거래자가 MTK/USDC 유동성 풀에 추가한 MTK 토큰 개수 = 500 MTK
  • dy : 거래자가 MTK/USDC 유동성 풀에서 가져가는 USDC의 토큰 개수 =  666.66 USDC
  • P : 스왑 전, 기준 토큰 MTK의 가격 = 1,500/2666.66 = 0.56 USDC
  • P1 : 스왑 후, 기준 토큰 MTK의 가격 = 2,000/2,000 =  1 USDC
  • K : MTK/USDC 유동성 풀의 유동성 = 1,000  * 4,000 = 4,000,000

 

After Swap (1)After Swap (2)를 비교했을 때, Alice는 첫 스왑에서 1333.33 USDC를 받았지만 두 번째 스왑에서 666.66 USDC를 받게 되었습니다.

CPMM 공식의 단점이자 부족한 부분이 바로 그래프에서 나타나는 것처럼, 상수 K에 따라 스왑량이 결정되다 보니 유동성풀에 남아있는 총 공급량에 따라 스왑량이 달라지며, 이 피해는 고스란히 거래자들이 갖게 됩니다. 현재 가격(P)과 실제 체결된 거래 가격(P1)의 격차를 슬리피지라고 하며, AMM의 CPMM은 거래가 진행하면 할수록 슬리피지가 커지며 거래자의 피해가 점점 커지는 구조입니다.

 

또한 이런 스왑 과정이 진행하면 할수록, 거래자가 체결되는 스왑량이 낮아지지만, 절대 총 공급량은 0이 되지 않습니다. 즉, 거래가 아무리 진행되도 유동성풀에 일부 암호화폐는 절때 거래되지 않고 끝까지 남게 됩니다.

끝까지 남게 되는 암호화폐를 유니스왑 V2의 게으른 유동성이라고 합니다.

 

CPMM 특성상, 거래되는 범위가 존재하지 않기 때문에 발생하는 문제입니다. 때문에 유니스왑은 V3 업데이트를 통해 집중화된 유동성(Concentrated Liquidity)을 만들어냈습니다. 집중화된 유동성을 위해 CPMM의 공식을 새로 재구성하여 V2가 갖고 있는 문제점을 해결하였습니다. 다음 게시글에서 유니스왑 V3의 집중화된 유동성과 새로운 공식에 대해 다뤄보겠습니다.

 

감사합니다.

 


Next Series

[DeFi Series] Uniswap V3 집중화된 유동성(Concentrated Liquidity) || Math | DeFi ||

https://borntodevelop.tistory.com/entry/DeFi-Series-Uniswap-V3-%EC%A7%91%EC%A4%91%ED%99%94%EB%90%9C-%EC%9C%A0%EB%8F%99%EC%84%B1Concentrated-Liquidity-Price-Range-Real-Reserves

 

[DeFi Series] Uniswap V3 집중화된 유동성(Concentrated Liquidity) || Math | DeFi ||

안녕하세요. 스마트컨트렉트 개발자 개발이 체질의 최원혁입니다. 이번 게시글에서 소개해드릴 DeFi Series는 Uniswap V3 업데이트의 핵심 집중화된 유동성(Concentrated Liquidity)입니다. 기존의 Uniswap은

borntodevelop.tistory.com

 


 

 

반응형

댓글