V3 DEX의 해결책 : 집중된 유동성
낮은 유동성 문제의 발생 원인은 “유동성은 모든 가격 구간(0~∞)에 공급되는데, 스왑은 특정 가격 구간에서만 일어난다” 입니다. 이 문제를 해결하기 위해 유니스왑은 V3 를 런칭하며 “집중된 유동성” 의 개념을 제안했습니다. LP 들은 자신들이 공급한 유동성이 스왑에 사용될 가격 범위를 정하고 해당 구간에 집중해서 유동성을 공급하게 됩니다. 스왑이 이루어지는 가격 구간에 집중해서 유동성을 공급하는 것을 통해 유동성 활성율이 높아져, 보다 많은 유동성이 실제 스왑에 활용되게 됩니다.
집중된 유동성을 통한 높은 유동성 활성율
V3 방식의 DEX 에서 LP는 유동성을 공급할 가격 구간을 설정하고 해당 구간대에 집중하여 보다 깊은 유동성을 공급하게 됩니다. 보다 익숙한 호가창 방식으로 표현하면 아래와 같이 이해해 볼 수 있습니다.

LP 가 공급한 유동성은 LP 가 선택한 구간대에 보다 보다 깊게 공급되며, 그 외의 가격대에는 공급되지 않습니다. 스왑이 이루어지는 가격대에 집중하여 유동성을 공급하는 것을 통해 아래와 같이 LP 가 공급한 유동성은 보다 많이 스왑에 사용됩니다.

V3 방식의 높은 유동성 활성율은 V2 방식과 비교하였을 때 아래와 같은 장점들이 있습니다.
LP는 같은 유동성으로 더 많은 Fee 수익을 수취할 수 있습니다.
Ex. 1 BTC 의 가격이 40,000 USDT일 때, 30,000 USDT < 1 BTC < 50,000 USDT 구간대에 집중하여 유동성을 공급할 경우 V2 방식의 유동성 공급 대비 ~8.3배의 Fee 수익을 거둘 수 있습니다.
깊은 스왑 유동성으로 트레이더는 보다 적은 Price Impact/Slippage 로 스왑을 할 수 있습니다.
유동성 활성율이 올라가 DEX 의 유동성이 보다 많이 스왑에 활용되어 생태계 내 자본의 흐름이 활발해집니다.
NFT화 된 LP 포지션

V2 방식의 유동성 공급에서 모든 LP 들은 동일한 가격 구간대(0~무한대)에 유동성을 공급하게 되며, 특정 시점을 기준으로 모두 동일한 비율로 A/B 토큰을 공급하고 있습니다.
Ex. ETH:USDT = 1:3,000 인 경우,
$6,000 의 유동성을 공급한 LP A = 가격구간 0~무한대에 대해서 ETH 1, USDT 3,000 공급중인 상태
$9,000 의 유동성을 공급한 LP B = 가격구간 0~무한대에 대해서 ETH 1.5, USDT 4,500 공급중인 상태
이러한 V2 방식의 유동성 공급에서 개별 LP 들이 공급한 유동성 포지션은 서로가 Fungible 한 관계에 있습니다. 따라서 V2 방식의 LP 토큰은 ERC-20 규격의 FT(Fungible Token)로 발행되게 됩니다.

V3 방식의 유동성 공급에서 LP 들은 서로 다른 가격 구간대에 유동성을 공급하게 됩니다. 서로 다른 포지션을 갖고 있는 LP 들은 특정 시점을 기준으로 서로 다른 비율로 A/B 토큰을 공급하고 있습니다.
Ex. ETH:USDT = 1:3,000 인 경우,
$6,000의 유동성을 1,500 USDT < 1 ETH < 6,000 USDT 가격구간에 공급한 LP A = 1 ETH, 3,000 USDT 공급중인 상태
$6,000 의 유동성을 2,000 USDT < 1 ETH < 4,000 USDT 가격구간에 공급한 LP B = 0.84 ETH, 3,468 USDT 공급중인 상태
이러한 V3 방식의 유동성 공급에서 개별 LP 들이 공급한 유동성 포지션은 서로가 Non-Fungible 한 관계에 있습니다. 따라서 V3 방식의 LP 토큰은 ERC-721 규격의 NFT(Non-Fungible Token)로 발행되게 됩니다.
Price Tick
V3 방식의 유동성 공급에서 유저들은 서로 다른 가격 구간대에 서로 다른 크기의 유동성을 공급합니다. 유동성 Pool 에서는 새로운 유동성 포지션이 공급될 때에 해당 포지션의 유동성을 Price Tick 단위로 나누어 공급하게 됩니다.
각 Price Tick 들은 해당 Tick 을 포함하는 가격 범위에 공급된 유동성의 총 합 정보를 가지고 있으며, 스왑이 이루어지며 가격이 변할 때 해당 가격이 속해 있는 Price Tick 의 유동성 크기를 통해 x*y=k 의 스왑 output 계산을 수행합니다.

LP 들은 서로 다른 가격 구간대에 서로 다른 크기의 유동성을 공급합니다.
LP A : 3,000~3,400 가격 구간대에 3 크기만큼의 유동성을 공급
LP B : 3,100~3,600 가격 구간대에 2 크기만큼의 유동성을 공급
LP C : 3,200~3,500 가격 구간대에 1 크기만큼의 유동성 공급
각 가격 구간대별로 해당 구간대를 포함하는 LP 포지션의 유동성 크기를 합해서 스왑에 활용합니다.
3,000~3,100 : LP A → 유동성 : 3
3,100~3,200 : LP A + LP B → 유동성 : 5
3,200~3,400 : LP A + LP B + LP C → 유동성 : 6
3,400~3,500 : LP B + LP C → 유동성 : 3
3,500~3,600 : LP B → 유동성 : 2
LP 들은 각자가 포지션을 공급한 가격 구간 내에서 Swap 이 발생하여 Fee 가 쌓일 경우, 해당 가격구간대 내의 본인의 유동성 지분에 비례하여 Fee 를 수취하게 됩니다.
Last updated