Automated Market Maker 무엇인가?
Intro
원활한 금융(금전융통)에 있어서 유동성은 필수다. 유동성이란 개인 혹은 기업이 특정 자산의 가치를 최대한 변동시키지 않으면서, 해당 자산을 빠르게 구매하거나 팔 수 있게 하는 시장의 특징(market’s feature)을 의미한다. 유동성이 가장 높은 자산은 바로 ‘돈’이다. 내가 갖고 있는 1000원은 다른 사람이 갖고 있는 1000원과 어떠한 가치 변동 없이 바로 교환이 가능하기 때문이다.
반면, 암호화폐 시장은 유동성이 대부분 낮다. 아직까지는 블록체인 산업이 덜 성숙한 만큼 용처 및 내재적 가치가 불안정한 암호화폐가 많기 때문이다. 그렇다면, 이렇한 암호화폐를 기반으로한 DeFi(Decentralized Finance)는 어떻게 유동성을 확보할까?
본 글에서는, 일부 DeFi 서비스에서 유동성 확보를 위해 도입한 AMM(Automated Market Maker)에 대해 알아 보고자 한다. AMM의 등장 배경 및 정의, 작동 원리, 그리고 한계에 대해 살펴 보겠다.
추가로 2부에서는 AMM을 기반으로 하는 대표 DEX 프로젝트 3개(Uniswap, Balancer, Curve Finance)를 비교 설명할 예정이다.
혹 본 글에서 잘못된 정보가 발견됐다면 주저없이 피드백 주길 바란다(필자도 사람이니..)
AMM(Automated Market Maker)이란 무엇인가?
AMM 등장 배경 및 정의
기존 자산교환 시장에서의 거래 방식은, seller와 buyer가 각자 오더북(Order book)에 거래(판매/구매)하고자 하는 자산의 수량, 가격 등을 등록함으로써 각자의 오더가 매칭되기를 기다리는 식이었다. 이때 마켓메이커(market maker)는 seller와 buyer가 제시한 가격의 중간 지점에 구매/판매 오더를 제안 함으로써 자산의 가격이 크게 변동되지 않으면서 빠르게 판매/구매거래가 이뤄질 수 있게 하였다. 즉, 마켓메이커는 자산 교환 시장에 풍부한 유동성을 제공하는 중요한 주체다.
(출처: https://www.youtube.com/watch?v=cizLhxSKrAc)
반면, 비인기 자산 시장은 마켓메이커 조차 거래에 잘 참여하지 않는다. 이에 따라, 자산 시장의 롱테일 시장(노란색 부분)은 여전히 유동성이 부족하다.
(출처: https://en.wikipedia.org/wiki/Long_tail)
블록체인에서는 누구나 암호화폐를 발행할 수 있기에 롱테일 시장이 매우 크다고 볼 수 있다. 따라서 이러한 롱테일 시장에도 유동성을 공급할 수 있는 마켓메이커가 필요하다. 그것이 바로 Automated Market Maker(이하 AMM)이다.
AMM은 trader가 자산을 구매 혹은 판매하고자 할 시, 수학적 공식에 의해 자산의 가격을 자동적으로 결정시키는 알고리즘이다. AMM은 오더북이 아닌, 유동성 풀을 기반으로 한다. 유동성풀은 빠른 자산 교환을 위해 자산들을 예치 시켜 놓은 스마트 컨트랙트이다. trader는 trader 혹은 마켓메이커와 거래하는 것이 아닌, 유동성 풀을 기반으로 AMM과 거래를 한다. AMM의 가장 큰 장점은 거래 주문이 얼마나 크든, 유동성 풀이 얼마나 작든간에 항상 유동성을 제공한다는 것이다(즉 즉시 거래 체결 가능). 그 이유는 다음 ‘AMM 작동 원리’에서 알 수 있다.
AMM 작동 원리
앞서 설명한 바와 같이 AMM은 수학 공식을 기반으로 한다. AMM을 활용하는 서비스마다 함수 공식의 형태는 다르지만 기본적인 틀 및 구성 요소는 아래와 같다.
x (y): 유동성 풀에 있는 X (Y) 코인의 수량 (이때, 유동성 풀을 구성하는 토큰은 꼭 2개가 아녀도 되며, 3 종류 이상으로도 가능하다.)
a (b) : X (Y) 코인의 총 가치가 유동성 풀에서 차지하는 비율 (즉 Xp*x : Yp*y = a : b다. 이때, a+b 는 반드시 1이어야 한다. 본 글의 사례에서는 a=50, b=50으로 가정하겠다)
k: 변수 x, y에 대해 항상 일정한 값을 취하는 양(상수)
AMM 공식을 그래프로 그리면 아래와 같다. 그래프 상의 k는 항상 동일한 값을 가지며, 이를 위해 x와 y는 서로 역으로 움직인다. 예를 들어, 유동성 풀에 y가 b만큼 증가할 시, x는 a만큼 감소함으로써, (x-a) * (y+b)는 여전히 x * y와 동일한 k 값으로 일정하다. 이로 인해, AMM 곡선 상에서 특정 자산으로 구매 가능한 자산의 수량 및 가격은 아래와 같이 계산 가능하다.
b개의 Y코인으로 구매가능한 X코인의 개수(a): (x-a) * (y+b) = k 임에 따라, a = x-(k/(y+b))
b개의 Y코인으로 X코인 구매시, X 코인 가격(Xp): 해당 유동성 풀의 X, Y에 대한 비율이 50:50임에 따라 a*Xp = b*Yp 이다. 이에 따라 Xp = (b/a)*Yp
(출처: https://medium.com/scalar-capital/uniswap-a-unique-exchange-f4ef44f807bf)
보다 쉬운 이해를 위해 예시를 들어 보면 다음과 같다.
[상황]
ETH/MKR pair인 유동성 풀에 1,000 ETH와 470 MKR이 있다. (이때 k = 470,000)
한 trader는 ETH/MKR 유동성 풀에 10ETH를 지불함으로써 MKR을구매하고자 한다.
[결과]
ETH/AAA 유동성 풀에 ETH 수량은 1,000에서 1,010으로 증가한다.
이때 ETH/AAA 유동성 풀의 k가 여전히 470,000가 되기 위해, AAA 수량이 465.34로 감소한다. (1,010*465.34=470,000 이기 때문)
trader는 ETH/AAA 유동성 풀로부터 4.66 AAA를 인출한다. (470-465.34 이기 때문)
즉, trader가 구매한 AAA의 개당 가격은 2.15 ETH 이다. (4.66 AAA = 10ETH 임에 따라, AAA = 10/4.66 ETH = 2.15 ETH)
이때, 코인의 가격은 선형적으로 증가하지 않는다. 아래 표를 통해 알 수 있겠지만, 유동성 풀 내에 있는 자산(eg. ETH)을 보다 많이 구매할 수록 해당 자산의 가격은 급수적으로 증가한다.
단, k가 클수록(즉, 유동성 풀에 있는 자산 개수(x, y)가 많을 수록), 거래량에 따른 자산의 가격 변동은 적다.
위에서 설명한 내용을 정리하자면, AMM은 다음과 같은 두 가지 이유로 자산 교환 시장에 높은 유동성을 보장할 수 있다. 첫 번째로 AMM은 특정 수학 공식으로 기반으로 판매/구매 가격을 결정함에 따라 가격 협상 없이 즉시 거래가 체결될 수 있다. 두 번째로 AMM은 외부 trader가 유동성 풀에 있는 자산을 한 번에 많이 거래하고자 할 시 해당 자산의 가격을 기하급수적으로 증가 시킨다. 이에 따라, 풀 안에 있는 자산을 모두 구매하는 것은 거의 불가능하다. 따라서 유동성 풀이 고갈 될 우려도 없다.
AMM의 한계; Impermanent Loss
앞서 설명한 바와 같이 AMM은 높은 유동성을 보장한다는 장점이 있다. 반면, AMM은 유동성 풀에 유동성을 제공하는 주체인 LP(Liquidity Provider)에게 반영구적 자산 손실(impermanent loss)이 발생할 수 있다는 치명적 단점이 있다.
여기서도 아래와 같이 예시를 통해 반영구적 손실에 대해 설명해보겠다.
[상황]
ETH는 1,000개, DAI는 100,000개로 구성되어 있는 ETH/DAI 유동성 풀이 있다(이때 k = 100,000,000). 에 대해 10%의 지분을 가진 LP(즉, 100ETH와 10,000DAI를 제공)가
이때, ETH/DAI 유동성 풀에서 ETH의 가격은 100 DAI (100,000 / 1,000 DAI) 이다.
반면, 외부 거래소에서 ETH가 150$ (1DAI = 1$임에 따라 150 DAI로도 표현 가능)로 거래되고 있다.
이로 인해 arbitrageur들로 ETH/DAI 유동성 풀로부터 보다 저렴하게 ETH를 매수하고, 이를 외부 거래소에 보다 비싸게 매각하는 차익거래를 할 유인이 발생한다.
[결과]
arbitrageur는 ETH/DAI 유동성 풀로부터 ETH의 가격이 150 DAI가 되어 더이상의 시세차익을 얻을 수 없을때까지 ETH를 구매하는 행위를 지속한다.
DAI에 대한 ETH의 가격은 ‘DAI 개수/ETH 개수’를 통해 계산됨에 따라, ‘DAI 개수/ETH 개수 = 150이고, DAI 개수 * ETH 개수 = 100,000,000인 값은 아래와 같음
DAI 개수 = 122,400, ETH 개수 = 817
즉, arbitrageur의 ETH구매 행위로 인해, ETH/DAI 유동성 풀에 남은 DAI 개수는 122,400로 증가하고, ETH 개수는 817로 감소된다.
이에 따라, ETH/DAI 유동성 풀은 기존 자산을 그대로 보유하고 있을 때 대비 총 5,050$ 상당의 가치 손실이 발생하게 된다.
단, 반영구적 손실은 말 그대로 반영구적으로 발생하는 손실로, 회복이 가능하다. 즉, 외부 시장에서 ETH 가격이 100$로 하락하게 될시, arbitrageur는 위 예시와 반대로 ETH를 유동성 풀에 매각하는 행위가 반복되면서 유동성 풀에는 다시 이전 수준으로 ETH가 생기기 때문이다.
정리하자면, AMM은 유동성 풀을 기반으로 함에 따라 외부로부터 충분한 자산을 유치해야 하는 것은 필수 불가결하다. 반면, LP는유동성 풀에 자신의 자산을 묶어둘 시 반영구적 손실이 발생할 수 있다. 이에 따라 AMM을 활용하는 DeFi 서비스들은 LP에게 유동성을 제공하는 대가로 ‘반영구적 손실액 + a’만큼의 금전적 인센티브를 지급해야 할 것이다.
이처럼 유저가 DeFi 서비스에 유동성을 제공함으로써 인센티브를 지급받는 것을 ‘이자 농사(yield farming)’라고도 한다. 최근 DeFi 산업에 다양한 플레이어가 등장하면서 DeFi 서비스간 보다 높은 이자를 지급하기 위해 치열하게 경쟁 중에 있다.
AMM 기반 DEX 대표 프로젝트
2020.11.14 기준 DeFi Pulse에서 상위권 3위의 DEX 프로젝트로 Uniswap, Curve Finance, Balancer가 있다. 이 상위권 프로젝트는 모두 AMM을 기반으로 하는 DEX다. 2부에서는 세 프로젝트가 모두 AMM을 기반으로 함에도 어떤 차이점이 있는지 비교 설명해 보겠다.
(출처: https://defipulse.com/)