DEX의 가격 결정 메커니즘과 잠재 리스크

지난 글에서는 유동성 풀과 유동성 공급에 대한 기본 개념을 바탕으로, 유동성 풀 방식의 거래가 어떻게 성사되는 지를 알아보았습니다.
그런데 대부분의 탈중앙화거래소(DEX, Decentralized Exchange)에는 중앙화 거래소와 달리, ‘오더북(Orderbook)’ 또는 ‘호가창’이 존재하지 않습니다. 그렇다면 DEX에서 두 암호화폐를 교환할 때 가격은 어떻게 결정될까요?
중앙화된 주체가 없는 DEX에서는 효율적이고 빠르게 거래가 이루어진다는 장점도 있지만, 다른 리스크도 존재합니다. 디파이 투자에 관심이 있다면 ‘비영구적 손실’이라는 개념을 한 번쯤 들어보셨을텐데요. 이번 글에서는 DEX에서 가격이 결정되는 원리와, 그 원리로 인해 DEX 유동성 풀에 유동성을 공급할 경우 발생할 수 있는 비영구적 손실에 대해 쉽게 설명해드리겠습니다.
DEX에서 가격이 결정되는 원리
대부분의 DEX에서는 * AMM(Automated Market Maker)이라는 방식에 근거하여 두 코인의 교환비, 즉 가격을 도출합니다.
*AMM: 거래하는 자산의 수요와 공급에 따라, 사전에 설정된 수학 공식을 바탕으로 자동으로 가격을 도출하는 알고리즘
가격은 공식에 따라 결정되는데, 대표적인 AMM인 유니스왑(Uniswap)의 예시를 통해 설명해보겠습니다. 유니스왑은 개인 이용자가 유동성 풀에 예치 되어 있는 암호화폐를 P2P 방식으로 교환 및 거래 할 수 있는 탈중앙화 플랫폼입니다. 유니스왑이 가격을 결정할 때 사용하는 AMM 공식은 CPMM(Constant Product Market Maker) 공식 이라고 하는데요. 유니스왑에 x 토큰과 y 토큰을 교환할 수 있는 유동성 풀이 존재한다고 가정해보겠습니다.
이 유동성 풀에서 x와 y의 가격 공식은 x * y = k 입니다.
(이때 x와 y는 각각 유동성 풀에 들어있는 x 토큰과 y 토큰의 수량이며, k는 고정 상수입니다.)
즉, 사용자가 이 풀에서 x, y 토큰을 각각 원하는 수량만큼 교환하면서 풀에 있는 토큰의 개수가 계속 변하게 되는데, 개수의 곱은 일정하게 유지됩니다. 많은 DEX가 CPMM 공식을 가격 결정 매커니즘으로 채택하여 사용하고 있는데요. 각 플랫폼이 설정한 공식은 조금씩 다를 수 있습니다.
조금 더 자세하게 예시를 들어보겠습니다.
만약 현재 중앙화 거래소에서의 1 ETH의 가격이 20 USDT이고, 동일한 교환비(가격)으로 ETH-USDT 유동성 풀에 100 ETH와 2,000 USDT가 들어있다면, 가격 공식에 의해 k 상수는 100 * 2,000 = 200,000이 됩니다. 즉, 외부로부터 새로운 유동성 공급자가 들어와 추가 유동성이 공급되지 않는 한, 두 자산의 공급량의 곱이 200,000으로 유지되어야 한다는 의미입니다.
이 상태에서 누군가 1 ETH를 USDT와 교환하기 위해 1 ETH를 풀에 넣고 풀에 있던 USDT를 가져가는 상황을 가정해보겠습니다. 여기서 1 ETH로 몇 USDT를 교환할 수 있을까요? 결과적으로 101 ETH * 풀에 남은 USDT 개수 = 200,000을 유지해야 하므로, 교환이 완료 되었을 때 풀에 남아있어야 할 USDT의 수량은 약 1980.2개가 됩니다. 즉, 1 ETH의 대가로 가져갈 수 있는 USDT의 수량은 원래 풀에 있던 2,000 USDT - 1980.2 USDT = 19.8개가 되며, 1 ETH : 1 USDT의 교환비(가격)가 19.8로 결정되는 것입니다.
그런데 이는 교환이 일어나기 전 교환비인 1 : 20과 다르고, 이는 중앙화 거래소에서보다 이더리움이 더 싸게 거래된 것이라 할 수 있습니다. 이 차이로 인해 DEX와 중앙화 거래소와 사이의 차익거래 수요가 발생하게 되고, 이더리움이 더 저렴한 유니스왑 유동성 풀에서 이더리움을 매수하려는 수요가 높아지게 됩니다. 이더리움 수요가 높아짐에 따라 유동성 풀 내 이더리움 공급량이 감소하게 되면서 가격은 다시 균형을 찾게 됩니다.
비영구적 손실(Impermanent Loss)
위에서 언급한 것처럼 사용자는 일시적으로 DEX의 가격에 따라 탈중앙화 거래소와 중앙화 거래소 간의 차익거래를 통해 수익을 실현할 수 있습니다. 하지만 AMM 방식으로 작동하는 DEX의 유동성 풀에 자산을 예치하는 것은 리스크도 존재 하는데요. 대표적인 리스크가 바로 비영구적 손실(Impermanent Loss)입니다.
비영구적 손실은 유동성 풀에 자산을 예치한 후, 예치된 자산의 가격 변동으로 인해 임시적으로 손실을 보는 것을 의미합니다. 사용자가 유동성 풀에 한 쌍의 토큰을 넣어 유동성을 공급 했는데, 토큰의 가격이 변동하게 되면 두 토큰의 가격 변동 차이에 따라 총 자산 가치가 외부 중앙화 거래소 가격보다 하락하여 결국 손실이 발생한다는 것인데요. 비영구적 손실이라고 부르는 이유는 토큰의 가격이 돌아오면 예치한 자산이 원래 가치로 돌아오기 때문입니다.
앞서 언급한 ETH와 USDT 유동성 풀의 사례를 동일하게 적용하여 예시를 들어보겠습니다.
누군가 x * y = k 공식으로 가격을 책정하는 ETH - USDT 유동성 풀에 1 ETH와 20 USDT를 넣었다고 가정해보겠습니다. 이때 중앙화 거래소에서 1 ETH의 가격이 20 USDT라고 가정하면, 투입한 초기 자금은 총 40 USDT의 가치를 가지고 있습니다.
해당 유동성 풀에 공급된 총 수량이 100 ETH와 2,000 USDT이므로 두 자산의 공급량의 곱은 200,000이며, 1 ETH와 20 USDT를 예치한 공급자는 유동성 풀의 1%의 지분을 보유하고 있는 것이죠.
이런 상황에서 외부 중앙화 거래소의 ETH 가격이 20 USDT에서 80 USDT로 상승하면 어떻게 될까요? DEX 유동성 풀의 가격은 여전히 1 ETH = 20 USDT 이기 때문에 ETH의 가격이 상대적으로 저렴하게 되며, DEX 유동성 풀에서 ETH를 매수하여 중앙화 거래소에서 매도하면 60 USDT 만큼의 시세차익을 얻을 수 있습니다.
차익거래를 하는 사람들이 몰려들게 되고, 가격이 1 ETH = 80 USDT로 균형을 찾게 될 때까지 거래가 발생합니다. 결국 유동성 풀에는 ETH 공급량이 점점 줄어들고 USDT 수량이 많아져서 50 ETH 와 4,000 USDT 가 남게 됩니다.
이 시점에 공급자가 유동성 풀에서 출금하기로 결정한다면 공급자는 본인의 유동성 지분 에 따라 1% 만큼 돌려 받게 됨에 따라 0.5 ETH 와 40 USDT를 회수하게 되고, 이를 USDT로 환산하면 총 80 USDT가 됩니다.
그러나 처음에 가지고 있던 1 ETH와 20 USDT를 DEX 유동성 풀에 예치하지 않고 그냥 보유하고 있었다면, ETH 가격 상승에 따라 자산 가치는 100 USDT가 되었을 것이므로, 20 USDT를 더 벌 수 있었을 것입니다. 즉, 공급자가 DEX에 유동성을 공급함으로써 더 벌 수 있었던 수익을 벌지 못한 것이며, 이를 비영구적 손실이라고 합니다.
이렇듯 DEX의 유동성 풀에 자산을 예치할 경우, 비영구적 손실이 발생할 수 있습니다. 따라서 DEX는 거래수수료나 자체 토큰과 같은 인센티브를 제공하기도 합니다. 그러나 이러한 인센티브를 지급 받는다 해도 더 많은 손실이 발생할 수 있는 리스크가 존재하기 때문에 DEX 유동성 공급을 통한 디파이 투자 시에는 AMM의 기본 원리를 꼭 이해할 필요가 있습니다.