Automated Market Maker

이동규 (Justin)·2023년 5월 4일
0
post-thumbnail

Authmated Market Maker(AMM)은 유니스왑 이라는 코인 거래소가 탈중앙화 된 방식으로 유저 간 코인을 거래할 수 있도록 만들어주는 알고리즘이다.

기존의 (중앙화 된) 코인 거래소, 혹은 주식거래소 등은 오더북 방식을 사용한다. 사려는 사람들이 있고, 팔려는 사람들이 있다. 각각은 호가를 매겨 주문을 생성하고, 이것들의 가격이 매칭될 때 거래가 이루어진다.

다만 이것은 중앙화된 거래방식이다. 왜냐하면 오더북을 관리하는 거래소라는 주체가 거래 당사자들 사이에 존재하고 있기 때문이다. 따라서 이 오더북을 어떻게 관리하는지에 관해서는 거래소를 믿지 않으면 안된다. 만약 싼 값의 판매거래는 모두 거래소(의 관련자)가 차지하고, 비싼값의 구매거래도 거래소가 차지하여 모든 차익을 가져간다면? 또한 거래에 매겨지는 수수료는 이 신뢰에 대한 비용으로, 모두 거래소의 차지가 된다. 수수료가 얼마인지도 거래소가 정하는대로 따를 수 밖에 없다.

유니스왑은 탈중앙화 된 거래방식을 제공하기 위해 오더북 대신 AMM이라는, 말 그대로 시장가(Market)를 자동(Automated)으로 형성(Maker)할 수 있도록 만들어주는 방법을 채택한다.

AMM이 시장가를 형성하는 방식은 다음과 같다.

먼저 두 가지 코인의 '페어'가 존재한다. 이것은 그것들끼리의 교환 비율, 마치 환율처럼, 을 정한다. 예를 들어 이더리움과 테더를 교환하려면 이들의 페어를 스마트 컨트랙트로 만들어두고 해당 페어를 교환하려면 스마트 컨트랙트를 거쳐 교환할 수 있다. 이 페어의 교환비율은 각각의 토큰이 시장에 얼마나 존재하냐에 따라 변한다. 마치 환율처럼..

공식은 x * y = k 로, x와 y를 곱한 값은 항상 k라는 일정한 상수로 유지되어야한다.

다음으로 이 페어와 관련된 유동성을 공급할 수 있다. 오더북 모델에서는 내가 원하는 주문을 등록하는 것으로 시장에 참여한다면, AMM 모델에서는 그저 '유동성을 공급' 할 수 있다. 말하자면 은행에 돈을 맡기는 것처럼 내가 가진 토큰들을 맡길 수 있는 것. 이자에 해당하는 수수료를 챙길 수 있고, 이것이 꽤나 짭짤하다고 한다. 다시 말하면 유니스왑이라는 시장에 유동성을 공급해서 기여하고 그에 대한 댓가를 받을 수 있다.

예를 들어보자. 유동성을 공급하는 화면은 아래와 같은데..

그러나 구매자 입장에서는 그저 교환을 원할 뿐. 1 이더리움을 10 테더로 교환할 수 있다. 이 때, 만약 시장에 2개의 이더리움과 20개의 테더가 존재했었다면 이더리움은 한개 줄어들어 1개가 된다. 그러나 상수 k는 40으로 유지되어야 하기 때문에 (2 * 20 = 40), 1이더리움에 대한 테더의 교환비율은 40으로 변한다(1 * 40 = 40).


(before transaction)
2ETH * 20USDT = 40 (k)


(transaction occurred)
-1ETH


(after transaction)
1ETH * 40USDT (+20) = 40 (k)

이러한 방식으로 유니스왑의 시장은 적절한 토큰 간 교환비율을 유지한다.

정리하자면, 오더북과 AMM은 어떻게 'Market making' 을 하는가의 방식에 대한 차이이다. 시장(거래소)에 어떻게 유동성을 공급해서 시장가격을 형성하고 거래가 일어나도록 기여하는지에 대한 방식의 차이라는 것이다. 이 방식이 중앙화되어있느냐, 탈중앙화 되어있느냐의 차이에 따라 거래에 참여하는 사람들과 그 사이에서 수수료를 받는 사람들의 신뢰도와 인센티브가 달라지기에, 오늘도 우리는 유니스왑과 바이낸스를 오가며 코인을 거래한다..

쉽게 이해하는 AMM - Austin, 브런치

profile
Frontend Developer, JamStack, Ethereum

0개의 댓글