brunch

You can make anything
by writing

C.S.Lewis

by 유수웅 Dec 09. 2020

Mirror Protocol로 Defi 이해하기 2

자산 토큰화는 금융 산업을 바꿀 수 있을까?


이전 글에서 서술한 대로 실물자산의 가격을 추종하는 합성자산의 경우 오라클을 통해 실물가격을 가져온다고 했다. 그렇다면 오라클로 받아온 주식의 가격(이하, 오라클 데이터)이 바로 거래 가격에 반영이 되는 것일까?


가격 결정 요인

이제와서 다른 이야기를 한 것 같지만 거래되는 mAsset의 가격은 오라클 데이터가 직접적으로 결정하지 않는다. 정확히 말하자면 오라클 데이터는 합성자산을 생성(Mint)하는 가격에 영향을 준다. 이는 잠시 후 다시 이야기 하기로 하고..


mAsset에 대한 직접적인 가격은 AMM(Automated Market Maker)이 결정한다.


Defi는 기본적으로 중개기관을 거치지 않는 거래를 추구한다. 따라서 기존의 중앙화된 거래소를 거치지 않고 공급자와 수요자가 거래를 할 수 있어야 하는데 이를 위해 처음 제안된 것이 DEX(Decentralized Exchange)이다.


DEX는 P2P 거래를 가능하게 한 점은 있었지만 가장 큰 문제가 유동성이었다. 우선 사용자가 많지 않다보니 매수가격과 매도가격의 스프레드가 너무 넓고, 거래량도 너무 적어서 조금만 사더라도 가격 변동이 매우 커지기 때문에 거래가 쉽지 않다.


이 문제를 해결하기 위해 고안된 것이 AMM이다. 기존 거래소의 오더북 방식(Sell and Buy)이 아니라 계산식을 통해 가격이 결정되는 알고리즘 방식(Swap)을 따르게 함으로써 내가 원하는 순간 언제든지 자산을 팔 수 있도록 하였다. Bancor Network가 이 개념을 온체인에서 (아마도) 가장먼저 구현했지만, 영광은 이것을 폭발적으로 성장시킨 Uniswap에게 돌아갔다.


Uniswap의 웹앱 인터페이스


Uniswap에서 거래가 가능하기 위해서는 유동성 풀(Liquidity Pool, 줄여서 LP)이 필요하다. 유동성 풀이란 두 개의 교환 가능한 자산의 조합을 바탕으로 만들 수 있는데, ETH-USDT 간의 거래가 이루어지기 위해서는 일정량의 ETH와 USDT이 풀 내에 존재해야 ETH를 사거나 파는 것이 가능해 진다.


기존에 풀이 없을 경우 누구든지 유동성 풀을 생성할 수 있는데, 현재의 1 ETH 가격이 600 USD라고 한다면 1 ETH와 600 USDT를 쌍으로 묶어 유동성 풀을 생성한다. 유동성 풀이 생성되고 나면 관련 자산을 교환하는 것이 가능한데, 이 교환 비율 또는 가격은 수학식에 따라 결정되며 이는 각 AMM에 따라 달라진다.


Uniswap에서는 x * y = k 라는 공식으로 결정된다. x와 y는 각 페어 자산의 수를 의미하는데, 앞의 예시를 적용해 보면 1 * 600 = 600 이며 앞으로 k 값은 변하지 않는다. 누군가 1 ETH을 Uniswap에서 USDT로 교환한다고 가정하고 가격이 결정되는 과정을 보자 (여기서는 개념을 이해하기 위함이므로 수수료는 고려하지 않으며 실제 계산은 더 복잡할 수 있음)


1. 현재 ETH-USDT 유동성 풀의 k 값은 600

2. 교환자의 1 ETH가 풀에 추가되어 총 2 ETH가 공급

3. 2 * y = 600 이어야 하므로 y는 300

4. 기존 600 USDT 중 300 USDT를 교환자에게 제공

5. 현재 풀에는 2 ETH와 300 USDT가 공급

6. 2 ETH = 300 USDT 이므로 1 ETH의 가격이 150 USDT로 결정


위 가격 결정 과정을 보면 변동성이 매우 크다는 것을 알 수 있는데, 위 공식은 아래와 같은 그래프를 그리기 때문이다. 유동성 풀 내에 한 자산이 극단적으로 부족하면 한 자산의 가격은 무한대에 수렴한다.




따라서, Uniswap과 같은 AMM 프로토콜에서도 유동성 공급은 매우 중요하며 이를 위해 유동성 공급자에게 거래에 따른 수수료를 보상으로 제공한다. 하지만 유동성 공급은 비영구적 손실(Impermanant Loss)이라는 리스크를 안고 있기 때문에 유의할 필요가 있다.


다시 본론으로 돌아와서 Mirror Protocol도 mAsset의 거래가 AMM을 통해 이루어지며 Terra 버전의 Uniswap인 Terraswap을 이용한다. 물론 Mirror 플랫폼 내에서 실제로 Terraswap 앱을 직접 사용하는 것은 아니고 해당 방식을 이용한다고 보면 된다.


Mirror의 거래 인터페이스


합성자산의 가격이 AMM을 따라 결정된다면 어떻게 합성자산이 실물자산의 가격을 추종할 수 있는 것일까?


가격 추종 방식

Mirror의 공식 문서를 모두 읽은 것은 아니라서 확신할 수 없지만 아마도 가격을 추종하는 방식은 합성자산 생성에 따른 주조차액(Seigniorage)또는 재정거래(Arbitrage)를 통해 가능하지 않을까 생각한다.


앞서 언급한 대로 오라클을 통해 받아오는 가격은 합성자산의 생성(Mint) 시 반영된다. 예를 들어 AAPL의 가격이 현재 $120라면 mAAPL의 기준 가격도 $120를 기준으로 생성한다.


현재 mAAPL의 Mirror 플랫폼 내 거래 가격과는 무관하며 따라서 가격에 차이가 있을 수 있다. 따라서 오라클 가격과 테라스왑 가격 차이가 상당히 벌어졌을 경우, 참여자들은 이 차이를 이용하여 수익을 얻으려는 동기가 생기게 되고 이는 자연스럽게 오라클 가격과 테라스왑 가격의 간격을 줄이는 역할을 한다.


물론 mAsset을 생성할 때 기준가로 1:1 생성하는 것은 아니다. mAsset 생성 시 자신이 가진 다른 자산을 담보로 잡아야 하는데, Terra USD 스테이블 코인인 UST로는 mAsset 가치의 최소 150% 이상을 담보로 잡아야 하고, mAsset으로 다시 mAsset을 생성할 때는 최소 200% 이상을 담보로 잡아야 생성이 가능하다.


APPL이 $120이라면 mAPPL을 발행하기 위해서는 최소 180 UST가 필요하다. 하지만 이것은 다시 발행한 자산을 청산하면 담보한 것을 그대로 받을 수 있기 때문에 현재 크게 고려할 사항은 아니다.


아래의 조건을 예시로 과정을 풀어보자.


NFLX의 가격: $500 (현재 나스닥에서 거래되고 있는 넷플릭스 주식)
mNFLX의 가격: $550 (현재 미러 플랫폼에서 거래되고 있는 넷플리스 토큰)


현재 위와 같은 상황이라면 NFLX와 mNFLX 간 시세는 $50이 차이난다.


Mint를 통해 $500에 mNFLX를 생성할 수 있으므로 플랫폼 참여자는 $500에 생성한 mNFLX를 플랫폼 상에서 팔아 $50의 차익을 남긴다. AMM의 구조상 판매한 자산의 가격은 내려가므로 점점 mNFLX의 가격은 $500에 수렴할 것이다.


자산 발행에 따른 담보까지 고려하면 아래와 같은 거래 프로세스를 따른다.


1. Mint: 750 UST($500의 150%)로 1 mNFLX 생성

2. Sell: 1 mNFLX를 테라스왑에서 550 UST로 판매

3. Buy: (mNFLX가 500UST에 맞춰진 후) 500 UST로 1mNFLX 구매

4. Redemption: 1 mNFLX를 상환하고 담보인 750 UST 회수


참고로 mAsset의 거래는 오라클 데이터와 무관하므로 24시간 가능하지만, 생성은 오라클 데이터가 필요하므로 나스닥 같은 현실 거래소로 부터 가격 정보를 얻을 수 있는 시간에만 가능하다.



이러한 과정을 거치고 나면 결과적으로 위 화면과 같이 오라클 가격과 테라스왑 가격이 유사하게 움직이는 것을 볼 수 있다




Reference:

Improving front running resistance of x*y=k market makers (Vitalik Buterin)

AMM DEX에 리스크는 줄이고 더 많은 자금을 유입하는 방법 (Chainlink)


쓰다보니 장황해지기도 하고 오랜만에 글을 쓰니 시간이 오래 걸리네요. 계속되는 내용은 나눠서 올리도록 하겠습니다.

작가의 이전글 Mirror Protocol로 이해하는 Defi 1
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari