[DEX Series] 3. 선물거래

들어가며
서울대학교 블록체인 학회 디사이퍼의 디파이 톺아보기 팀이 작성한 DEX 시리즈를 공개합니다. 지난 DEX 시리즈에 이어서 이번에는 선물거래에 대해 알아보고자 합니다.
[DEX Series]
1. 서로 다른 가치의 자산 거래
2. 동일한 가치의 자산 거래
3. 선물거래
4. MEV
Author
이한호 of Decipher, ‘디파이 톺아보기’ Team
Seoul Nat’l Univ. Blockchain Academy Decipher(@decipher-media)
Reviewed By 장기덕
선물거래란?
선물거래란 미래 일정 시점에 미리 정한 가격(행사 가격)으로 매매할 것을 현재 시점에서 약속하는 거래를 의미합니다. 매수 측에는 선물 계약에서 만기 시 특정 자산을 약속한 가격으로 매수할 의무를 가집니다. 매수를 하는 측에서는 이 자산이 만기일에 가격이 지금보다 높아질 것을 생각하여 매수를 하는데, 이러한 행위를 롱 포지션(Long position)을 열었다고 합니다. 반대로 매도를 하는 입장에서는 만기시에 특정 물품을 약속한 가격으로 매도할 수 있습니다. 매도를 하는 측에서는 이 자산이 만기일이 가격이 지금보다 하락할 것을 생각하여 매도를 하게 되는데, 이러한 행위를 숏 포지션(Short position)을 열었다고 합니다.
선물거래에 참여하는 수 많은 사람들은 상대의 지불능력이 어느 정도이며, 신용이 어떠한지 알 수 없습니다. 그렇다면 선물 거래에서는 사람들이 계약을 확실하게 이행할 수 있다는 것을 어떤 식으로 보증할 수 있을까요? 이를 위해서 선물 거래에서는 증거금 거래(Margin Trading)제도를 채택하여 사용하고 있습니다. 증거금은 선물 거래액의 일정 비율을 납부하는 금액으로 증거금을 납부한다는 행위는 거래에 대해 증거금의 가치만큼 거래가 유효하다는 것을 입증한다는 의미가 있습니다. 자신이 거래하는 선물 거래액과 예치한 증거금의 비율을 증거금율이라고 하는데 일반적으로 2~10% 정도로 상품의 종류와 거래소마다 변동이 있습니다. 보유한 포지션의 가치 변동에서 발생한 손실을 대비해서 최소한 유지해야하는 증거금을 유지 증거금이라고 합니다. 유지 증거금이 보유 포지션의 증거금 잔액보다 높아지면, 증거금을 추가 납부할 것을 요구하는 마진콜(Margin call)을 받게 됩니다.
이러한 선물 거래는 투자자들에게 다양한 기능을 제공합니다. 먼저 위험성을 관리하는 수단으로 사용될 수 있습니다. 현물거래와는 반대방향의 거래(현물매수 선물 매도, 현물 매도 선물 매수)를 발생시켜 현물 가격에서의 변동 위험을 비교적 안정적으로 관리할 수 있는 수단을 제공합니다. 또 선물 가격은 참여자들이 기초자산에 대한 미래가격을 예측하여 결정되는 가격이므로, 미래의 기초자산의 가격을 미리 보여주는 기능을 하기도 합니다. 또한 작은 증거금을 통해 높은 레버리지 효과를 일으킬 수 있어 새로운 투자 수단으로도 작용합니다.
암호화폐 선물거래란?
암호화폐에서도 위에서 보여진 투자 기능을 위해 선물 거래가 고안되고 적용되고 있습니다. 만기일이 존재하는 선물 거래 뿐만 아니라 기한이 없는 무기한 선물거래(Perpetual Futures Trading)도 많이 이뤄지고 있습니다. 사실 암호화폐 선물거래라고 하면 후자를 지칭하는 경우도 많습니다. 바이낸스나 FTX같은 거래소에서 이런 무기한 선물거래를 지원하고 있습니다.
암호화폐에 대한 선물거래를 지원함에 따라 투자자의 투자형태도 다양하게 나타나게 되었습니다. 간단하게 Defi에서 발생할 수 있는 위험성에 대해 Short Position을 열어 위험성을 상쇄하는 사례를 들어보도록 하겠습니다.

- Alice는 탈중앙화 거래소 ABC에 ABC/ETH Pool에 유동성을 공급하여 ABC 토큰을 이자로 받으려고 합니다. 이는 ABC 토큰에 대한 롱포지션을 열었다고 생각할 수 있습니다.
- ABC 토큰에 대한 가격 하락에 대한 리스크 헷지를 위해서 Alice는 FTX 거래소에서 ABC 토큰에 대해 숏 포지션을 열었습니다. 일반적으로 이런 숏 포지션을 여는 경우는 수익을 내는 것보다는 떨어지는 것에 대해 안정성을 갖기 위함이므로 고배율로 레버리지 하는 것이 아닌 1배정도의 저배율로 숏포지션을 열게 됩니다.
- Alice는 ABC의 가격이 하락하여 ABC/ETH Pool 안의 자산의 가치가 떨어지더라도, ABC 토큰의 하락을 통해 얻는 수익으로 상쇄할 수 있습니다.
- 자산에 대한 안정성은 유지하면서, 이자로 나오는 ABC 토큰을 통해 안정적으로 수익을 낼 수 있습니다.
암호화폐에 대해 선물 거래가 가능해짐에 따라 위의 예제처럼 기존 금융에서 사용되던 투자 전략이 무리없이 사용될 수 있는 것을 보여주었습니다. FTX, Binance에서 서비스되고 있는 선물거래는 중앙에 집중되어 처리되고 있고, 거래를 하기 위해 거래 당사자가 아닌 제 3자에 대한 신뢰가 요구됩니다.
스마트 컨트랙트를 통해서 선물 계약을 구현한 프로젝트들은 과거부터 시도되어오고 있습니다. 기존 선물 거래 포지션를 토큰화 하여 포지션을 유동화할 수 도 있으며, 본딩커브를 도입한 스마트 컨트랙트를 통해 제 3자가 없이도 거래를 만들어낼 수 있습니다.
dYdX : 마진 토큰을 통한 포지션의 유동화
본 글은 dydx의 margintoken에 대한 백서를 참고하고 있습니다.
마진토큰(Margin Token)
dYdX는 마진 트레이딩 프로토콜을 통해 숏 포지션과 롱 포지션을 가능하게 합니다. dYdX에서 포지션은 ERC20Position 컨트랙트를 통해 토큰화되어 관리되고 있습니다.
dYdX에서는 자신이 가진 기저 암호화폐와 음의 상관관계가 있는 가격의 토큰을 생성합니다. 이러한 토큰을 숏 토큰(Short Token)이라고 부릅니다. 숏 토큰은 정의에 따라 기초 자산의 가격이 하락할 때, 증가합니다.
또한 반대로 자신이 가진 자산의 가격의 배수로 움직이는 가격을 가진 토큰을 생성할 수 있습니다. 이러한 토큰을 레버리지 롱 토큰(Leveraged Long Token)이라고 부릅니다. 레버리지 롱 토큰은 기초 자산의 가격이 상승할 때, 1보다 훨씬 큰 가격폭을 가지고 증가합니다.
마진토큰(Margin Token)은 이러한 숏토큰과 레버리지된 롱 토큰을 함께 일컬어 얘기하는 것입니다. 이 토큰을 이용하면 거래자는 자본을 빌리거나 판매할 필요 없이 단순히 토큰을 구매하여, 숏, 롱포지션을 통해 수익을 창출할 수 있습니다.

각각의 마진 토큰들은 고유한 스마트 컨트랙트들이 따로 있으며, 여기에는 포지션에 대한 정보가 기록됩니다.
이러한 마진토큰은 포지션에 대한 소유권을 사용자에게 있도록 합니다. 어느 누구든 포지션에 대한 소유권을 컨트랙트(ERC20Position)에 할당을 하게 되면 새로운 마진토큰을 생성할 수 있습니다. 마진 토큰의 개수는 컨트랙트가 받은 포지션의 크기에 비례해서 생성됩니다.
dydx 마진 포지션을 통해 발행된 토큰에는 대표적으로는 다음과 같은 정보들이 기록됩니다.
- 단위부채 당 이자율
- 만료 날짜
- 포지션에 고정된 보유 토큰 양
각 마진 토큰들은 ERC20 토큰으로 발행되어 대체 가능하고 양도 가능합니다.기존 거래소에서 포지션을 오픈하면 증거금 만큼의 유동성이 묶이는 것과는 달리 포지션을 직접 거래할 수 있게 되면서 자신의 포지션을 유동화할 수 있게 되었습니다.
포지션을 거래할 수 있으려면은 적절한 포지션의 가격이 필요하게 될 것입니다. 마진 토큰의 가격은 어떻게 측정이 될 수 있을까요? dYdX에 따르면, 마진 토큰의 가격은 포지션을 지금 정리했을 때 얻을 수 있는 이익(postion payout)에 비례하여 측정될 수 있다고 합니다. 포지션 페이아웃을 정확하게 측정하기 위해서는 dYdX 마진 프로토콜에서 제시하는 담보 토큰(held Token)과 빚진 토큰(owed Token)을 살펴보아야 합니다.
이용자는 포지션을 열기 위해서 증거금의 목적으로 넣는 담보 토큰이 필요합니다. 담보 토큰을 기반으로 빌린 빚진 토큰이 있는데, 이 토큰에 대해 이용자는 롱, 숏 포지션을 열 수 있습니다.
담보토큰의 가치는 담보토큰 가격(P_H)과 총 담보로 잡힌 담보 토큰의 개수©를 곱하여 결정됩니다.

이용자가 갚아야 하는 빚진 토큰의 가치는 빚진 토큰의 가격(P_O)와 빚진 토큰의 개수(P)를 곱하여 결정할 수 있습니다. 하지만 지속적으로 발생하는 이율(I) 를 통해 실제 사용자가 갚아야 하는 빌린 토큰의 가치는 다음과 같이 됩니다.

따라서 포지션을 정리할 때, 발생하는 이익(Payout)은 다음과 같습니다.

마진 토큰의 가치는 위에서 발생한 페이아웃을 전체 마진 토큰의 개수(M)로 나누어서 계산할 수 있습니다.

본딩커브를 통한 선물 계약
다음은 Band Protocol의 Sorawit Suriyakarn이 제시한 본딩 커브를 통한 선물 거래 방법에 대해 소개하고자 합니다. Sorawit는 Ocean Protocol에서 제시한 마진 거래에 대한 몇 가지 기술에 대한 제안을 참고하여 제 3자 없이도 선물 거래를하는 것을 제안하였습니다.

본딩 커브란 토큰의 공급량과 토큰 가격을 하나의 그래프(관계식)으로 나타낸 것을 말합니다. 토큰의 가격이 미리 스마트 컨트랙트에 세팅되어 있다는 것을 의미합니다. 그래프 아래의 면적은 COMM토큰을 위해 프로토콜에서 가지고 있는 ETH의 총량을 의미합니다.
발행 시점에 따라 사용자가 발행을 위해 필요한 토큰의 가격이 달라집니다. 공급량이 늘어날 수록 그래프와 X축의 면적의 양이 늘어나서 같은 토큰 발행량 대비 필요한 ETH가 늘어나게 됩니다.
(Price of COMM) =10 (Supply of COMM) 라는 관계식을 만족하는 가상의 COMM 토큰을 예시로 들어보겠습니다.
- 초기 AMM에 있는 COMM 토큰의 공급량은 100 COMM입니다.

- Alice는 COMM 토큰을 15개 만큼의 크기로 Short 포지션을 열고 싶어 합니다.
- Alice는 15 COMM를 매도하여 Short Position을 열면서, 초기 증거금으로 10,000 ETH를 사용합니다.
- 본딩 커브에 따라 COMM토큰의 Supply는 100에서 85로 줄어들고, 감소한 면적 만큼 Alice가 가진 Collateral에 추가됩니다.

- Alice가 Short 포지션을 연 이후, 공급량이 55 COMM 까지 줄었습니다.
- Alice는 자신의 포지션을 정리합니다. Alice가 자신의 포지션을 정리하는 과정을 통해 총 14,500 ETH의 수익을 보게 됩니다.
이런 경우 Alice는 자신의 포지션을 정리하면서 수익을 얻게 되었습니다. 하지만 분명 어느 누구는 자신이 투자한 금액에 대비하여 손실을 얻게 되는데 이 경우 Zero-sum 방식을 따릅니다.
선물계약을 위한 새로운 AMM모델, vAMM — Perpetual Protocol의 등장
Perpetual Protocol은 2019년에 등장한 선물거래 플랫폼입니다. 2019년도에 런칭 당시에 프로토콜의 이름은 Strike Protocol 이었습니다. Strike Protocol의 백서를 확인하면 기존 존재하던 AMM 프로토콜인 Uniswap과 Balancer의 토큰가격모델을 많이 차용하려던 노력들을 확인할 수 있습니다. 2020년이 되어서야 Perpetual Protocol이란 이름을 가진무기한 선물 거래를 위한 프로토콜이 등장하게 되었습니다.
Perpetual Protocol의 동작원리를 알아보기 전에, 프로토콜에 필요한 주요 구성요소들을 알아보겠습니다.
vAMM, Virtual Automated Market Maker
vAMM, 가상 자동화된 마켓 메이커는 Perpetual Protocol에서 무기한 선물 거래를 위해 독자적으로 고안한 AMM 모델입니다. 기존의 Uniswap V2에서 사용하던 AMM을 무기한 선물 거래에 맞게 변형하였습니다.
vAMM은 Uniswap V2의 모델을 그대로 차용하여 서로 다른 두 토큰에 대해서 x*y = (상수) 를 만족하는 가격 모델을 사용하고 있습니다. vAMM은 선물 거래에 대한 가격 모델입니다. 일반적으로 두 개의 토큰 중 하나는 안정자산(USDC)이며 다른 하나는 변동자산인 경우에 대해서 다루게 될 것입니다.
vAMM이 기존의 자동화된 마켓메이커와 다른 점은 vAMM에서는 실제 토큰을 가지고 운영하지 않는다는 것입니다. vAMM에서 운영하고 있는 토큰은 실제로 컨트랙트가 가지고 있지 않은 가상의 토큰이며, 여기에는 가상의 유동성을 가진 유동성 풀에 있는 토큰 개수가 업데이트되어 가상으로 구현하고 있습니다.
유저는 롱 포지션과 숏 포지션을 열 수 있습니다. A토큰과 B토큰(USDC)으로 이루어진 vAMM이 있다고 합시다. 여기서 롱 포지션을 연다는 것은 가상의 A 토큰을 유저에게 할당하는 것을 의미하고, 숏 포지션을 연다는 것은 A 토큰을 유저가 vAMM에 USDC로 바꾸었다는 것을 의미합니다. 자세한 구동 방법은 뒤에서 나오는 예제를 통해 살펴보겠습니다.
클리어링 하우스(Clearing House)
클리어링 하우스는 유저가 openPositon함수를 실행시켜 자신의 포지션을 열 수 있습니다. 유저는 자신의 포지션에 대상 자산을 의미하는 vAMM의 컨트랙트 주소와 포지션의 방향을 전달합니다.
볼트(Vault)
유저가 포지션을 위해 제출한 증거금이 저장되는 곳을 의미합니다. 볼트는 따로 존재하는 컨트랙트가 아닌 클리어링 하우스 컨트랙트 내부에서 관리하는 개념입니다.
예제를 통해 알아보는 Perpetual Finance 동작 원리
이제 구체적인 예제를 통해 Perpetual Finance의 프로세스를 알아보자.

ETH/USDC와 USDC로 이루어진 vAMM이 있으며, 초기 조건은 각각 25 ETH, 100,000 USDC 로 세팅되어 있다.
여기서 주의해야할 점은 이 초기조건의 토큰은 실제 존재하는 토큰이 아니며, vAMM에서 관리하는 가상의 토큰입니다.

- Alice는 2,000 USDC를 보유하고 있으며, 이 자산으로 4x 레버리지 ETH에 롱 포지션을 열고 싶어 합니다. 2,000 USDC를 4x 롱 포지션을 연다는 것은 앞에서도 살펴보았듯이 vAMM에서 ETH를 BUY 한다는 것과 같은 의미입니다.
- Alice는 2,000 USDC와 함께 자신의 주문을 클리어링 하우스로 전달합니다.
- 클리어링 하우스에서는 Alice의 포지션을 기록하고, vAMM의 가상 토큰 수량을 업데이트 합니다.(8,000 USDC로 vAMM에서 ETH를 구매하는 기능)
- 초기 100,000 USDC, 25 ETH로 구성되어 있는 초기 조건에서 108,000 USDC, 23.15 ETH로 풀의 구성이 변화하게 됩니다. 이는 Alice가 1.85 ETH 만큼 롱포지션을 열게 된 것을 의미합니다. (Alice 1.85 ETH Long)

- Alice가 롱포지션을 연 이후, Bob은 4,000 USDC를 가지고 5x 레버리지 ETH 롱 포지션을 열기로 하였습니다.
- Bob의 주문은 클리어링 하우스에 기록이 되고, Bob의 4,000 USDC는 Vault에 저장이 되고, vAMM의 가상 토큰 수량이 업데이트 됩니다.(20,000 USDC로 vAMM에서 ETH를 구매하는 기능)
- 108,000 USDC, 23.15ETH의 풀의 구성에서 128,000 USDC, 19.53 ETH로 업데이트 됩니다. 이는 Bob이 3.62 ETH Long을 하게 된 것입니다.(Bob 3.62 ETH Long)

- Alice가 자신의 포지션(1.85 ETH Long)을 정리하기로 하였습니다. Alice는 closePosition 함수를 실행시켜 자신의 미실현 pnl을 받기로 합니다. vAMM풀의 구성은 128,000 USDC, 19.53 ETH에서 116,932 USDC, 21.38 ETH가 되며 Alice는 11,068 USDC에서 빌린 6,000 USDC를 제외한 5,068 USDC를 수익으로 받게 됩니다. Alice는 3,068 USDC를 수익으로 갖게 됩니다.
- Bob도 포지션을 정리하게 되면, 932USDC를 받게 되는데 자신이 넣은 4,000 USDC 대비 3068 USDC 만큼 손해를 보게 되었습니다.
vAMM의 의의 : 유동성 해결
Alice가 Bob보다 먼저 롱 포지션을 열고, 먼저 포지션을 정리해서 얻는 수익(PnL)은 Bob이 롱 포지션을 정리하면서 실현한 PnL과 동일합니다. 즉, 프로토콜 전체에서 발생한 PnL의 합은 0이 되는데, 이는 무기한 선물 거래를 할 때 필요하였던 큰 유동성이 더 이상 필요하지 않게 된 것 입니다. 기존 AMM에서 한계점으로 지적되었던 슬리피지를 막기 위해 필수적이었던 큰 유동성이 더 이상 필요하지 않게 된 것 입니다.
이를 통해 Perpetual Protocol에서는 제 3자의 개입없이 사용자들간의 선물 계약을 구현할 수 있게 되었습니다.
마치며
2021년 말에 들어서 중앙 증권화 시장에서도 비트코인 ETF가 생기면서, 선물 시장에 대한 관심도가 많아지고 있습니다. Perpetual Protocol의 하루 트레이딩 볼륨은 8백만불을 넘겼습니다. dYdX의 TVL도 연일 1위를 달리고 있습니다. 그렇지만 아직 탈중앙 선물 거래 플랫폼의 경우, 이제 태동기를 보이는 시점으로 보이고 Perpetual Protocol의 vAMM와 강티 새로운 방식을 도입한 프로토콜들이 등장할 수 있는 여지가 많아 보입니다. 개인적으로는 디파이에서의 선물 거래 시장이 좀 더 성숙해지고, 규제 당국이 이를 인정하고 기존 금융에 있던 자본들이 선물 시장에 본격적으로 들어오게 되었을 때 이 시장이 더 커질 수 있을 것이라고 생각됩니다. 앞으로도 좋은 프로젝트들과 아이디어가 선물 거래에서도 많이 등장할 수 있으면 좋겠습니다.