유니스왑 v3

togongs·2022년 3월 16일
0

게으른 유동성을 해결하기 위한 유동성 집중 공급


CPMM 함수를 기반으로 토큰을 스왑하면 필연적으로 의도했던 가격과 실제 거래 가격 사이에 차이가 발생하는 슬리피지가 발생하게 됩니다. 슬리피지는 풀에 유동성이 적고 거래량이 많을수록 커지게 되는데, 이 슬리피지가 커질수록 거래자는 더 비싼 가격에 토큰을 거래해야 했습니다.

이러한 슬리피지 문제는 유니스왑 v2의 고질적인 문제로 자리 잡게 되었습니다. 유니스왑은 v3로 유동성 공급 방식에 변화를 주어 슬리피지 이슈를 일부 해결할 수 있다고 주장했습니다

유니스왑이 v3로 업데이트를 하며 해결하려했던 AMM의 문제점과 이에 대한 해결방법, 그리고 이로 인해 기존 CPMM 로직이 어떤 영향을 받았는지 알아봅니다.

유니스왑 v3의 변경된 유동성 공급창

유니스왑 v2에서 ETH/DAI 풀에 유동성을 공급하기 위해서는 공급창에서 ETH와 DAI 토큰을 선택합니다. 그다음 ETH의 공급량을 결정하면 유니스왑이 이를 기준으로 함께 예치해야 할 DAI의 개수를 결정해줍니다. 유동성 공급자는 공급해야 할 토큰의 양을 확인한 후 예치하면 유동성 공급이 완료됩니다.
아티클을 작성하는 시점에서 0.01ETH를 공급하기 위해 함께 예치해야 하는 DAI의 수는 26개입니다.

유니스왑 v3에서 ETH/DAI 풀에 유동성을 공급하기 위해서는 v2와 마찬가지로 공급창에서 ETH와 DAI를 선택합니다. 이후 ETH의 공급량을 결정하면 유니스왑이 이를 기준으로 함께 예치해야 할 DAI의 개수를 결정해줍니다. 그런데 이 과정에서 ‘DAI per ETH’의 가격 범위에 의해 DAI의 공급 개수가 변경되는 것을 알 수 있습니다.
‘DAI per ETH’는 1 ETH의 가격을 기준으로 결정된 DAI의 가격 범위이며, 유동성 공급자는 이 범위를 원하는 대로 결정할 수 있습니다. 가격 범위를 결정한다는 것은 공급한 토큰이 ‘특정 가격 범위 이내’에서 스왑될 때만 사용될 수 있도록 지정하는 것입니다.
첫 번째 사진에서 유동성 공급자가 선택한 가격 범위는 최소(Min price) 2,593.1이고 최대(Max price) 2,598.3입니다. 이는 1 ETH가 2,593.1 DAI와 2598.3 DAI의 가격 범위 안에서 스왑될 때 사용될 유동성을 공급한다는 것을 의미합니다. 이렇게 유동성을 특정 가격 범위안에서만 사용되도록 공급하는 것을 집중화된 유동성(Concentrated Liquidity)이라합니다.

이 가격 범위가 바뀔 때마다 ETH와 함께 공급해야 할 DAI의 개수가 변하는 것을 알 수 있습니다. 첫 번째 조건에서 함께 공급해야 할 DAI의 개수는 19.3541개이고, 두 번째 조건에서 함께 공급해야 할 DAI의 개수는 4.89758개입니다

조건이 어떠하든 v3에서 공급해야하는f DAI의 개수는 v2에서 공급해야 할 DAI 의 개수(26개)보다 적은 것을 알 수 있습니다. 이는 집중화된 유동성을 통해 스왑에 사용되지 않는 유동성을 공급자가 부담하지 않도록 하여 더 효율적인 유동성 공급을 할 수 있도록 만든 것입니다. 여기서 스왑에 사용되지 않는 유동성은 게으른 유동성(Lazy Liquidity)라고 하며, 효율적인 유동성 공급의 결과를 높은 자본 효율성(Higer Capital Efficiency)라고 합니다.

유니스왑 v2의 게으른 유동성

게으른 유동성은 풀에 공급된 유동성 중 실질적인 토큰 스왑에 사용되지 않는 유동성을 뜻합니다.

유니스왑 v3 — 집중화된 유동성

유니스왑 v3에서는 게으른 유동성 이슈를 해결하기 위해 유동성 공급 방법을 바꾸었습니다. 이전까지는 유동성을 공급할 때 모든 가격 범위에서 공급해야 했지만, v3에서는 가격의 범위를 지정하여 유동성을 집중적으로 공급할 수 있게 되었습니다. 유니스왑은 이처럼 공급한 유동성을 집중화된 유동성 (Concentrated Liquidity)라 합니다.

가격 범위는 토큰 스왑에 따라 변경되는 요소인 각 토큰의 리저브, 풀의 기준 가격, 각 토큰의 가격, 풀의 유동성은 아주 밀접한 관계가 있습니다.

위 그래프에서 빨간색 곡선은 v2의 풀 리저브이고, 보라색 곡선은 집중화된 유동성으로 공급한 풀의 리저브입니다. 먼저 빨간색 CPMM 그래프를 나타내는 수식은 다음과 같습니다.

보라색 그래프는 빨간색 그래프의 평행이동 그래프로 x 축으로 -Xb 만큼, y 축으로 -Ya 만큼 평행이동한 그래프입니다. 이를 고려하여 집중화된 유동성을 나타내는 CPMM 수식은 다음과 같은 과정으로 만들 수 있습니다.


Xb와 Ya를 기준 가격 √P와 토큰 유동성 L로 나타내면 다음과 같습니다.

위 식을 통해 v3의 유동성 함수를 재정의할 수 있습니다.


위 과정에서 주목해야 할 것은 풀의 유동성 값인 L² 의 변화입니다.

  • v2의 CPMM: L² = 4,000,000
  • v3의 집중화된 유동성: L² = 1,000,000
    가격 범위를 지정하면 공급해야 하는 유동성의 범위가 제한되기 때문에, 전체 가격 범위에 대한 유동성 공급보다 그 양이 줄어들게 됩니다. 위 예시에서는 동일한 풀에 대해 유동성 공급 효율이 4배 증가했습니다.
    물론 이 유동성 공급 효율이 유의미하기 위해서는 스왑이 일어나리라 예측되는 가격 범위를 잘 설정해야 합니다. 가격 범위를 설정하여 유동성을 공급한다는 것은 자신이 지정한 범위 이외에 다른 가격 범위에서 토큰이 주로 스왑된다면, 자신의 유동성은 사용되지 않을 것임을 의미하며, 이는 유동성의 공급 의미가 사라지는 것이기 때문입니다.

유니스왑 스테이블/스테이블 풀 현황

유니스왑이 집중화된 유동성으로 유동성 공급 방법을 바꾸기 전, CPMM에서 가지고 있었던 게으른 유동성 이슈는 토큰의 가격이 기준 가격에서 크게 벗어나지 않도록 설계된 스테이블 코인의 스왑에서 두드러지게 나타났습니다.
USDC, USDT와 같은 달러 기반의 스테이블 코인은 그 가격이 $1에 최대한 가깝게 유지되도록 설계되어있습니다. 동일한 가치를 갖는 자산의 교환에는 슬리피지가 거의 발생하지 않도록 설계된 CSMM(Constant Sum Market Maker )모델에 의해서 AMM이 구성될 수 있습니다.

최근, Paradigm에서 Uniswap v3: The Universal AMM 이라는 제목의 아티클에서 유니스왑 v3의 집중화된 유동성을 통해 특정 가격 범위에 유동성을 공급하면, DEX 상의 존재하는 유명 AMM 모델을 모두 구축할 수 있다고 소개했습니다. 이 아티클에서는 $1 가격 범위에만 유동성을 공급하면 유니스왑 v3 풀에서도 충분히 Curve Finance의 모델도 구축할 수 있다고 주장되었습니다.

유동성 공급현황으로 확인하는 기대 가격

유동성 공급자가 공급한 가격 범위에서 토큰 스왑이 활발하게 이루어질수록 유동성 공급자는 많은 수수료를 얻을 수 있습니다. 다시 말해, 합리적인 유동성 공급자는 토큰의 거래가 활발히 이루어질 것이라 기대하는 가격 범위에 유동성을 집중적으로 공급할 것입니다. 즉, 유동성이 가장 많이 공급되어 있는 가격 범위가 ‘유동성 공급자가 기대하는 토큰 가격’이라고 예측할 수 있습니다.

마치며

유니스왑 v3에서의 가장 큰 개선점은 집중화된 유동성을 통해 자본의 효율성을 높인 것입니다. 변경된 유동성 모델에 의해 적은 양의 유동성 공급으로 같은 자본 효율을 구성할 수 있음은 유동성 공급자가 유니스왑 v3에 더 많은 유동성을 공급할 수 있도록 유인하는 데 큰 역할을 했다고 평가됩니다.

profile
개발기록

0개의 댓글