[DEX Series] 2. 동일한 가치의 자산 거래

Harry Kim
Decipher Media |디사이퍼 미디어
15 min readFeb 27, 2022

들어가며

본 게시글은 [DEX Series] 1. 서로 다른 가치의 자산 거래에 이어서 서로 동등한 가치를 지니고 있는 두 암호자산에 대해서 기존 AMM의 문제점을 파악하고 Curve Finance가 이러한 문제점을 어떻게 해결하고자 하였는지 알아봅니다. 본 게시글에서는 가치가 동일한 스테이블 코인의 가격 유지 알고리즘이나 브릿지 서비스의 매커니즘에 대해서 깊게 다루지 않기 때문에 해당 글을 읽기에 앞서 1. 스테이블 코인의 종류와 원리에 대한 영상2. 브릿지 서비스에 대한 글을 보고 오시는 것을 추천합니다.

[DEX Series]

1. 서로 다른 가치의 자산 거래
2. 동일한 가치의 자산 거래
3. 선물거래
4. MEV

Authors
김 한 of Decipher, ‘디파이 톺아보기’ Team
Seoul Nat’l Univ. Blockchain Academy Decipher(@deciphe-media)
Reviewed By 장기덕

등장배경

1. 스테이블 코인의 성장

화폐란 상품의 교환과 유통을 원활하게 해주기 위한 교환수단 또는 유통수단이라고 정의할 수 있으며 오늘날 대부분의 국가들은 자국의 화폐를 발행하고 있습니다. 미국의 경우 연방준비제도에서 달러를 발행하고 있으며 한국은 한국은행에서 원화를 발행합니다. 이렇게 발행된 달러와 원화를 환율 시장에서 변동 환율로 연동되어 관리되는 것이 현대 사회의 화폐 시스템입니다. 그런데 만약 다른 누군가 달러와 똑같은 가치의 A라는 화폐를 발행하고 달러와 1:1로 보증해주겠다고 하면 달러가 아닌 A를 사용할까요? 보통의 이성적인 사람이라면 달러 대신에 A를 사용하지 않을 것이고 받아주지도 않을 것입니다.

그렇다면 연방준비제도나 한국은행과 같은 중앙은행이 존재하지 않는 암호화폐 시장에서는 어떨까요? 암호화폐의 변동성은 매우 높기 때문에 암호화폐 시장 참여자들은 본인들의 자산의 가치를 안전하게 유지해야 할 필요성이 생겼습니다. 그래서 달러와 페깅된 즉, 달러와 1:1의 가치를 보장해주는 USDT가 등장하였고 2018년 이후 USDC, DAI, BUSD, UST(TerraUSD) 등 달러 가치를 유지하는 다양한 스테이블 코인이 추가되었습니다. 이렇게 달러 가치에 페깅된 암호화폐를 ‘달러 스테이블 코인’이라고 부르며 대표적인 달러 스테이블 코인의 시가총액과 시장지배율은 아래와 같습니다.

스테이블코인 시가총액(출처 : Coingeko)
스테이블코인 시장지배율(출처 : Coingeko)

위의 그림들을 보면 달러 스테이블 코인의 발행량은 전체적으로 증가하였습니다. 하지만 내부적으로는 USDT의 비중은 낮아지고 USDC, BUSD 등 다른 스테이블 코인들의 비중이 상승하는 것을 확인할 수 있습니다. 이는 블록체인 생태계에서 달러 스테이블 코인 시장이 커지고 있으며 그 종류가 다양해지고 있다는 점을 통해 암호화폐 시장에서는 중앙화된 조폐기관이 존재하지 않다는 특징을 확인할 수 있습니다. 2021년 12월 기준으로 Coingecko에 등록된 달러 스테이블 코인의 수는 34개로 나타났으며, 서로 사용되는 블록체인 네트워크나 활용되는 서비스가 다르기 때문에 암호화폐 시장 참여자들은 달러 스테이블 코인을 서로 교환하기 위한 탈중앙 거래소가 필요하게 되었습니다.

2. Wrapped 코인의 등장

달러의 가치가 다양한 종류의 스테이블 코인으로 유지된다는 점으로부터 우리는 “비트코인이나 이더리움 등의 암호자산들의 가치 또한 다른 암호자산으로 나타낼 수 있지 않을까?” 하는 생각을 할 수 있습니다. 그래서 등장한 것이 Wrapped 코인입니다.

2020년의 DeFi summer를 이끌었던 서비스로 대출 플랫폼에서는 Compound finance를, AMM 플랫폼에서는 Uniswap이라고 할 수 있습니다. 하지만 이 서비스의 폭발적인 성장 이면에는 WBTC 유동성 공급이 상당 부분 기여했습니다.

WBTC(Wrapped BTC)란 글자 그대로 비트코인(BTC)을 이더리움에서 사용할 수 있도록 ERC20토큰의 형태로 포장한(Wrapped) 것으로 빗고, 카이버 네트워크, 렌에서 공동 개발하여 2019년 1월 등장하였습니다. BTC 보유자들은 WBTC 파트너사를 통해서 BTC를 맡기고 1:1로 WBTC를 발행할 수 있었지만 그 당시에는 비트코인을 이더리움에서 사용할 필요성을 느끼지 못하였기 때문에 발행량이 많지 않았습니다. 하지만 2020년 디파이 서비스들이 등장하면서 비트코인 보유자들에게 환영을 받았고 그 결과 아래와 같이 WBTC의 시가총액은 폭발적으로 증가하였습니다.

WBTC 시가총액(출처)

담보의 증명이 가능하다면 암호자산 또한 기초가 되는 암호자산으로 가치를 유지할 수 있다.

디파이 생태계에서는 이러한 생각을 바탕으로 등장한 서비스를 브릿지라고 합니다. 브릿지의 기본적인 로직은 서로 다른 체인에 존재하는 암호자산에 대하여 1:1로 담보를 잡고 발행해주는 것으로 그 반대의 경우 발행되었던 암호자산을 소각을 하고 담보로 고정되어있는 물량을 해제하여 전체 고정량과 발행량을 동일하게 유지합니다. BTC 브릿지의 대표적인 예가 위에서 언급하였던 WBTC와 Ren protocol 에서 주관하여 발행하는 renBTC가 있으며, 중앙화 거래소 중 하나인 Huobi에서는 hBTC를 발행하여 BTC를 ERC20으로 출금할 수 있도록 하였습니다. 본 아티클은 브릿지의 서비스에 대한 자세한 설명을 하지 않으므로 더 자세하게 알고 싶으신 분들은 다음의 글을 참고하여 주시길 바랍니다.

스테이블 스왑

이렇게 스테이블 코인이 폭발적으로 성장하고, 하나의 체인 내에 동일 가치의 암호자산이 증가하면서 암호화폐 시장 참여자들은 동일한 가치의 자산간 거래가 가능한 탈중앙 거래소가 필요하게 되었습니다. 하지만 이전 글에서 설명하였던 CPMM알고리즘을 동일한 가치의 자산 거래에 적용하기에는 슬리피지가 크게 발생한다는 문제점이 존재하였습니다. 이러한 문제점에 대해서 Curve Finance는 StableSwap이라는 새로운 AMM 알고리즘을 발표하였고 그 결과 2021년 12월 기준 탈중앙 거래소 TVL(Total Value Locked) 1위를 유지하고 있으며 암호자산의 예치량도 꾸준히 상승하고 있습니다.

Dex TVL 순위 (기준일 : 2021–12–19, 출처)
Curve Finance TVL (기준일 : 2021–12–19, 출처)

여기서 우리는 다음과 같은 질문을 할 수 있을 것입니다.

1. Curve Finance에서는 어떠한 알고리즘을 사용하는가?
2. Uniswap V2와 비교했을때 슬리피지는 얼마나 개선되는가?

본 아티클에서는 위의 질문에 대하여 독자들과 함께 StableSwap 백서의 내용을 단계적으로 따라가고자 합니다.

Curve Finance에서는 어떠한 알고리즘을 사용하는가?

먼저 해당 시리즈의 첫 번째 글에서 다루었던 알고리즘에 대해서 짧게 설명하겠습니다. 기존의 AMM 알고리즘의 경우 두 가지로 나타낼 수 있습니다.

먼저 합이 상수인 경우의 수식은 두 자산의 합이 일정해야 하기 때문에 x가 1만큼 증가하는 경우 y는 1만큼 감소하게 됩니다. 즉 y의 변화량은 x의 변화량의 음수로 표현이 가능하며dy = -dx, 이를 일반화 시키면 아래와 같은 알고리즘이 됩니다.

두 번째로 곱이 상수인 경우 수식은 유니스왑, 뱅코르, 카이버 네트워크에서 주로 사용되며, 두 자산이 50:50의 형태로 이루어진 포트폴리오의 가격이 재조정되는 것과 같습니다. 해당 식을 일반화 시키면 발란서의 알고리즘이 되며 이는 아래와 같이 나타낼 수 있습니다.

달러 스테이블 코인은 각 자산의 가치는 1달러를 지향한다는 공통점이 있지만 서로의 수요와 공급이 동등하지는 않습니다. 즉 수요와 공급에 의해서 특정 스테이블 코인의 가치가 조금 더 높아질 수 있는 상황이 발생할 수 있기 때문에 (1) 알고리즘을 사용하게 되는 경우 유동성 풀에 조금이라도 가치가 낮아지는 암호자산만 존재하게 되어 AMM알고리즘의 역할이 불가능하게 됩니다. 그렇다고 (2) 알고리즘을 사용하게 된다면 가격에 대한 슬리피지가 크게 발생한다는 점과 상대적으로 안정적인 거래를 위해서는 충분한 자산이 유동성 풀에 존재해야 하며 유동성 공급자의 이익이 낮아지는 문제점이 발생합니다.

Curve Finance에서는 이러한 문제점을 인식하고 암호자산이 서로 균형이 맞을 때 가격의 변화량이 거의 1에 가깝도록 설계한 StableSwap 이라는 새로운 AMM을 제시하였습니다. 아래의 그림들은 초기값이 x=5, y=5 일 때 (1) 알고리즘(Constant price), (2) 알고리즘(Uniswap V2) 과 스테이블 스왑이 어떠한 차이가 있는지 시각적으로 보여줍니다.

[Figure 1] StableSwap, Uniswap, Constant price 가격곡선 비교(출처)
[Figure 2] StableSwap, Uniswap 가격변화량 비교(출처)

[Figure 1] 에서 우리는 암호자산이 서로 균형점 (5,5)에서는 StableSwap의 가격 변화량이 거의 1에 가깝고 균형에서 벗어날수록 변화량이 커지는 것을 확인 할 수 있습니다. 이는 균형에 가까울수록 (1) 알고리즘에 가깝고 균형에서 벗어날 수록 (2) 알고리즘과 가까워진다는 것을 의미합니다. [Figure 2] 는 이후에 설명할 StableSwap의 레버리지 변수 A가 100일 때의 가격 변화량을 나타낸 그림이며 자산 x가 일정 구간 내에서 가격의 변화량이 거의 일정한 것을 확인할 수 있습니다.

그렇다면 StableSwap에서는 어떠한 알고리즘을 사용하여 이러한 특징을 가질 수 있었을까요? 백서의 유도식을 따라가면서 StableSwap의 AMM 알고리즘을 살펴보도록 하겠습니다.

먼저 기존의 AMM알고리즘에 대해서 아래와 같이 정의하였습니다.

이때 D는 AMM에 참여하는 암호자산의 가치가 동일한 경우 전체 수량을 의미합니다. 만약 DAI와 USDT가 각각 100개씩 참여한다고 한다면 D=200 으로 나타낼 수 있습니다.

StableSwap에서는 위의 두 알고리즘을 혼합하여 사용하며 Amplification coefficient 라는 변수를 활용하여 constant-sum 로직에 레버리지를 주는 방식으로 구성되어있습니다. 만약 슬리피지가 0인 constant-sum으로 구현하고자 하면 레버리지를 무한대로 설정하면 되고, constant-product로 구현하고자 하면 레버리지를 0으로 설정하면 됩니다. StableSwap에서는 이러한 레버리지 변수를 χ로 표기하여 constant-sum에 가중치를 주어 다음과 같은 공식을 유도하였는데 좌변에는 D의 n 제곱을 D의 (n-1) 제곱과 암호자산들의 합의 곱으로 나타냈으며 우변에는 암호자산들의 곱을 (D/n)의 n제곱으로 나타내었습니다.

StableSwap에서는 레버리지 χ를 고정값이 아니라 아래와 같이 변동적으로 보고 암호자산들이 균형을 맞출 때 상수 A와 동일하도록 하였으며 균형을 벗어나는 경우 0까지 하락하도록 설정하였습니다.

따라서 (3) 식과 (4)를 활용하면 아래 (5)와 같은 StableSwap의 AMM 알고리즘이 유도되는 것을 확인할 수 있습니다.

StableSwap 백서에서는 DAI, USDC, USDT로 이루어진 스테이블 페어에 대하여 자체 시뮬레이션을 수행한 결과 최적의 A 값은 85라고 되어있습니다. 하지만 풀의 구성 스테이블 코인의 가격 안정성이 높아졌기 때문인지 현재 Curve Finance의 3pools(DAI/USDC/USDT)의 A 변수의 값은 2000으로 슬리피지가 거의 0에 가깝게 설정되어있습니다.

Uniswap V2와 비교했을때 슬리피지는 얼마나 개선되는가?

앞에서 StableSwap에서 사용하는 알고리즘을 유도하였으니 기존의 문제점이 얼마나 해결되었는가를 확인해보고자 합니다. 본 아티클에서는 유니스왑 V2에서 사용하는 CPMM을 적용한 경우와 StableSwap의 레버리지변수 A가 각각 50과 100인 경우 다음의 질문에 대한 결과를 확인해보고자 합니다.

초기에 100 USDC와 100 DAI가 예치되어있는 풀이 존재할 때 사용자가 50 USDC를 DAI로 교환하면 얼마나 받을 수 있을까?? (수수료는 존재하지 않는다고 가정합니다)

[Uniswap V2]
Uniswap V2에서 사용하는 CPMM의 경우 초기 유동성 상수의 값은 100*100=10000 이 됩니다. 이 때 알고리즘에 의해 상수는 고정값이므로 USDC는 100에서 150으로 증가하였으므로 150y=10000 이 되어 y=66.67 이 되고 사용자는 기존의 100개에서 y를 제외한 33.33 DAI 만큼 가져갈 수 있습니다.

[StableSwap]
StableSwap 알고리즘으로 계산하기 전에 학창시절 배웠던 근의 공식에 대해서 살펴보고 넘어가겠습니다. ax²+bx+c=0 에서 해 x를 구하는 근의 공식은 다음과 같습니다.

초기 자산의 합 D=200 이고 풀에 참여하는 자산의 수 n=2이므로 (5) 알고리즘은 다음과 같이 바꿀 수 있습니다.

1. A = 50
만약 A=50이라면 (6) 식은 아래와 같이 정리하고 근의 공식을 적용하여 y값을 구할 수 있습니다.

따라서 최종적으로 사용자가 받는 DAI의 수량은 100-y = 49.68 DAI 입니다.

2. A = 100
만약 A=100이라면 (6) 식은 아래와 같이 정리하고 근의 공식을 적용하여 y값을 구할 수 있습니다.

따라서 최종적으로 사용자가 받는 DAI의 수량은 100-y = 49.84 DAI 입니다.

정리하자면 Uniswap V2를 사용하는 경우 50 USDC로 33.33 DAI 를 바꿀 수 있지만 StableSwap에서는 A=50, 100인 경우에 각각 49.68 DAI와 49.84 DAI로 바꿀 수 있습니다.

마치며

앞에서 우리는 기존 AMM 알고리즘을 스테이블 코인에 적용하였을 때 슬리피지가 크게 발생한다는 점과 유동성 풀에 많은 자산이 필요하다는 문제점이 있다고 하였습니다. 실제로 총 $200의 작은 유동성 풀에 적용해본 결과 $50의 스테이블 코인을 교환하는 데 기존 AMM의 경우 $16.67이라는 슬리피지가 발생하였지만 StableSwap에서는 100배 레버리지 적용 결과 슬리피지가 $0.16 수준으로 상당히 낮게 나타나 문제점들을 해결했다고 볼 수 있습니다.

Curve Finance는 이렇게 StableSwap을 제시하여 기존의 AMM으로 스테이블 코인 및 Wrapped 자산 간 거래에서 발생하는 슬리피지를 최소화시켰다는 점과 이러한 거래가 작은 유동성 풀에서도 가능하다는 점을 증명하였고 많은 사용자들의 환영을 받았습니다. 이는 거래량의 증가로 이어졌고 유동성 공급자의 수익률을 상승시킴으로써 더 많은 유동성 공급자들이 참여하는 효과로 연결되어 꾸준히 Dex TVL 순위에서 1위를 유지하고 있습니다. Curve Finance가 서비스되지 않는 네트워크의 경우에도 StableSwap의 AMM 알고리즘을 활용한 서비스들(BSC의 Belt Finance, Solana의 Saber 등)이 필수적으로 존재하고 있다는 점에서 디파이 생태계에 큰 기여을 했다고 볼 수 있습니다.

StableSwap의 등장은 BTC 이외에도 동일 가치의 암호자산의 등장에도 큰 역할을 하였습니다. ETH의 경우 이더리움 네트워크에서 LidoStati 에서 스테이킹된 이더리움을 보증하는 stETH과 rETH를, Synthetix에서는 합성자산 알고리즘을 통해서 sETH를 발행하여 Curve Finance에서 거래할 수 있도록 하였으며, 솔라나에서는 saber를 통해 거래가 가능한 ETH가 6종류로 다양합니다. 최근에는 체인의 종류도 많고 브릿지 서비스도 다양하기 때문에 여러 암호자산이 브릿지를 통해서 연결된다면 이러한 StableSwap의 영향은 더욱 커질 것입니다.

Curve Finance ETH Pools(출처)

또한 향후 블록체인이 전 세계에서 활발하게 사용되어 달러 스테이블 외에 다양한 국가의 화폐가 스테이블 코인으로 활용된다면 StableSwap에 환율 오라클 데이터를 적용한 환전 서비스로 확장 가능할 것으로 생각되어 Curve Finance를 비롯한 StableSwap 서비스들의 미래가 기대됩니다.

본 시리즈의 첫 번째 글과 본 아티클에서는 기본적으로 활용되는 AMM 로직에 대해 살펴 보았으며 다음 아티클에서는 선물거래를 구현하기 위하여 어떻게 AMM을 활용하였는지 다루고자 합니다.

References

--

--