탈중앙화 거래소 : UNISWAP

강나현·2022년 11월 11일
0

SKKRYPTO

목록 보기
4/9
post-thumbnail

1. DEX

블록체인의 가장 큰 특징 중 하나는 탈중앙화된 네트워크이다. UNISWAP 등의 DEX(Decentralized Exchange, 탈중앙화 거래소)에서는, 기존의 서버-클라이언트 방식의 중앙화 거래소와 달리 개인과 개인이 직접 코인을 거래할 수 있다. 이를 P2P(Peer to Peer) 방식의 거래라고 한다.

왜 블록체인 상의 거래에서 DEX가 필요한가? DEX의 반대 개념인 중앙화 거래소(CEX, Centralized Exchange)에서는 오더북 방식을 사용한다. 오더북 시스템은 매수자와 매도자가 각각 원하는 매수, 매도 금액을 호가창에 입력한다. 그리고 그 금액에 따라 시세가 형성된다. 블록체인 상에서 오더북 시스템을 사용하면, 매수 주문만 넣고 실제로 거래가 이루어지지 않은 경우도 모두 블록체인에 기록된다. 즉, 불필요한 데이터까지 기록되어 메모리를 낭비하고 많은 수수료가 발생할 수 있다. 또한, 중앙화 거래소의 서버-클라이언트 방식은 매수자와 매도자 외에 제 3자가 필요하여, 보안성과 투명성이 떨어진다는 한계가 있다. 이점을 극복하기 위해 DEX가 고안되었다. DEX의 특징은 다음과 같다.

1.1. 개인이 직접 자산을 관리

DEX에서는 자산을 중앙 서버에 예치하지 않고, 개인이 직접 관리할 수 있다. 이 방식은 자산을 맡겨둔 타인을 신뢰하지 않아도 된다는 장점이 있다. 그리고 자산이 여러 곳에 분산되어 보관되기 때문에, 해커가 자산을 탈취하더라도 그 피해는 네트워크 상의 모든 자산이 아닌 해킹을 당한 노드의 자산에 한정되어, 전체 네트워크는 해킹에 의한 피해가 적다. 그러나, 개인의 자산에 대한 책임은 본인에게 있기 때문에, 키를 분실하면 자산을 되찾을 수 없다.

1.2. 스마트 컨트랙트에 자산을 입금

DEX에는 거래소 지갑의 개념이 없다. 대신 스마트 컨트랙트에 자산을 입금하면, 거래 조건이 충족되었을 때 수금자가 자산을 출금할 수 있다. 또한, 이는 Meta Mask 등 이더리움 지갑과도 연동이 가능하다.

1.3. 모든 거래가 블록체인에 기록

DEX에서는 모든 거래 내역이 블록체인에 기록된다. 모든 노드가 거래 내역을 공유하기 때문에, 중앙화 거래소 보다 안전하고 투명한 거래를 할 수 있다. 그러나, 모든 거래에서 수수료가 발생한다. 또한, 거래 여부를 판단하려면 새로운 블록이 생성될 때까지 기다려야 하기 때문에, 매 거래에서 블록 생성 시간만큼의 시간 지연이 발생한다.

2. UNISWAP

UNISWAP은 ETH와 ERC-20 토큰의 자동 교환 거래를 위한 프로토콜이다. UNISWAP에서는 두 종류의 계약을 할 수 있는데, 거래 계약은 미리 정해진 교환 비율로 토큰을 거래하는 것이다. 팩토리 계약은 거래 하려는 토큰 쌍에 대한 교환 비율이 없을 경우, 새로운 거래 계약을 배포한다. UNISWAP은 ETH와 ERC-20 토큰간의 교환, 그리고 서로 다른 ERC-20 토큰간의 교환을 가능하게 한다.

2.1. 교환 비율

오더북 방식의 거래는 매수자와 매도자가 원하는 금액으로 각각 주문을 넣어야 한다. 그러나 UNISWAP은 정해진 교환 비율에 따라, 자동으로 토큰을 교환할 수 있게 한다.

X*Y = K (K는 상수)

위와 같은 교환 비율에서, 거래 계약 내 두 토큰의 수량의 곱은 일정하게 유지된다. 반비례 관계에 따라 거래 계약 안의 토큰 X의 수가 증가하면, K 값을 유지하기 위해 토큰 Y의 수량은 감소한다. UNISWAP의 코인 교환 알고리즘은 다음과 같다.

ETH = 10, DAI = 500
ETH * DAI = 5000

ETH-DAI의 거래 계약 내에 10 ETH, 500 DAI가 있다. 두 토큰의 수량의 곱은 5000이다.

trader : ETH = 10 + 1 = 11
11 * dai = 5000, dai ≒ 454.5

trader가 거래 계약에 1 ETH를 입금한다. 두 코인의 수량의 곱인 5000을 유지하기 위해, DAI의 수량을 약 454.5로 변경한다.

ETH = 11, DAI = 454.5
trader : 500 - 454.5 = 45.5

거래 계약 내에 11 ETH, 454.5 DAI가 남게 된다. trader는 500에서 454.5를 제한 45.5만큼의 DAI를 받게된다.

이 과정을 그림으로 표현하면 다음과 같다.

3. AMM

위에서 설명한 교환 방식을 AMM(Automated Market Maker)라고 한다. 이는 Order Book 시스템의 반대 개념으로 거래자가 토큰을 입금하면 자동으로 토큰을 교환해준다. 또한 거래 계약 내 각 토큰 수에 따라 교환 비율을 조절할 수 있다. AMM의 핵심 요소는 CPMM과 LP이다.

3.1. CPMM

CPMM(Constant Product Market Maker)는 거래 계약의 유동성 풀에 충분한 자금을 공급한다. 풀 내에 자금이 부족하면 교환 비율이 매 거래 때마다 큰 폭으로 바뀌기 때문에, 충분한 자금이 있어야 안정적이고 실제 시장 가치와 일치하는 교환 비율을 유지할 수 있다. 이때, 자금을 공급하는 노드를 LP(Liquidity Provider)라고 한다.
LP가 풀에 자산 페어 (ex. ETH-DAI)를 예치하면, 자산을 예치했음을 입증하는 LP Share을 받는다. 이후 LP Share을 돌려주고 예치한 자산을 다시 돌려받을 수 있다.

3.2. 차익거래

자산을 예치한 LP는 차익거래로 수익을 얻을 수 있다. AMM은 시장가치를 그대로 반영할 수는 없기 때문에, 차익거래로 유동성 풀의 교환 비율이 시장가치와 동일하게 유지되도록 한다. 예를들어, ETH-DAI의 유동성 풀 내에서 ETH가 DAI에 비해 너무 많을 경우, 풀 내에서 ETH 가치는 시장 가치보다 낮아진다. 이때, ETH를 저렴하게 구매해 다른 거래 계약에서 판매하면 차익을 얻을 수 있다. 그리고 ETH의 가치가 하락했던 거래 계약에서, ETH의 수가 다시 낮아지며 그 가치는 시장 가치에 근접한다.

3.3. 비영구적 손실

비영구적 손실(IL, Impermanent Loss)는 풀에 자산을 예치할 때와 출금할 때의 교환 비율이 다를 때, 자산을 예치하지 않았을 경우와 비교해 발생하는 손실이다. 이는 자산을 출금하지 않는 한 실제로 발생한 손실이 아니며, 출금 전 교환비율이 달라지면 손실이 사라질 수 있다.

비영구적 손실의 예시로, LP는 유동성 풀에 10000 DAI와 20 ETH를 예치할 수 있다. 예치 시점에서 각 토큰의 가격은 $1, $500으로, 각 토큰의 총 시장가치는 $10,000로 일정하다.

그러나 예치 후 다른 거래자가 거래 계약 내에서 토큰을 거래하다 보면, 교환 비율이 처음과 달라진다. 예를들어, 유동성 풀 내 ETH의 가치가 예치 시점보다 $50 증가한 $550이 된다면, 그에 맞추어 교환 비율이 달라질 것이다. 새로운 교환 비율에 따라 10,488.09 DAI는 19.07 ETH와 동일한 가치를 가진다. LP가 예치한 자산을 출금한다면, 10,488.09 DAI와 19.07 ETH를 받을 것이며, 두 토큰의 총 가치는 $20,976.59로 예치 전보다 $976.59 증가했다. 그렇다면 LP는 교환 비율의 변동에 따라 수익을 얻은 것인가? 그렇지 않다.

만약 자산을 예치하지 않고 보관했다면, DAI와 ETH의 수량은 변하지 않았을 것이다. 그러나 거래 계약 내에서 ETH의 가치가 올랐기 때문에, LP가 보유한 ETH의 총액은 $10,000에서 $11,000으로 증가했을 것이다. 즉, 자산을 예치하지 않았다면 LP가 보유한 자산 총액은 $21,000로 자산을 예치했을 경우보다 $23.41만큼 크다. 이 경우 $23.41만큼의 비영구적 손실이 발생한다고 표현한다.

profile
SKKRYPTO Dev Team Leader

0개의 댓글