일반 AMM 모델 원리에 대한 깊이 있는 이해: 왜 그것이 DeFi 옵션 가격 책정에 적합하지 않은가?
이 글은 타로 재무에 게시되었으며, 저자: Aerhy, 번역: 아구아입니다.
핵심 요점:
- 옵션 가격은 만기 시간, 내재 변동성 등 다양한 요인에 따라 달라지며, 대부분의 경우 이들은 종종 제로에 가깝습니다(행사되지 않거나 행사 가격이 조건에 맞지 않을 경우).
- 일반 AMM(예: Uniswap)의 가격 발견 메커니즘은 일반적으로 거래량에 의존하며, 유동성 시장에서는 자산의 가격이 시장의 힘에 의해 결정되어야 합니다. 그러나 이 글이 발표될 당시 DeFi 옵션 시장은 여전히 초기 단계에 있으며, 옵션이 자주 업데이트되지 않을 수 있어 가격이 오래되어 옵션 풀의 유동성 제공자에게 큰 비정상 손실을 초래할 수 있습니다.
- 이 글은 Uniswap v1 뒤에 있는 수학 원리를 탐구하고, 옵션 토큰의 거래 장소로서 적합하지 않을 수 있음을 결론짓습니다.
일반 AMM과 비정상 손실
일반 AMM, 예를 들어 Uniswap v1 및 v2는 DeFi에서 가장 중요한 구성 요소 중 하나입니다.
이 모델은 가격 발견과 시장 조성을 결합할 수 있어, 유동성이 가장 낮은 자산조차도 시장과 발전이 이루어질 수 있습니다.
정교하게 설계된 인센티브 메커니즘은 다양한 참여자들이 판매자, 구매자 및 유동성 제공자로 참여하도록 장려합니다. 사실, 유동성 제공자는 시스템 내에서 중요한 역할을 수행하는 참여자입니다. 이는 전통적인 시장 조성자의 추상화와 같습니다. 이러한 유사성의 이유는 AMM이 지속적인 장부 관리와 주문 체결이 필요 없기 때문에 사용자가 자금을 거래할 수 있다는 점입니다. 어떤 사람들은 그러한 사용자가 동일하지 않으며 동일한 비즈니스를 수행하지 않는다고 주장할 수 있습니다. 그러나 궁극적으로 Uniswap의 유동성 제공자와 전통 금융의 시장 조성자는 모두 시장을 유도하고 있습니다.
현재 유동성 제공자는 자금 풀의 양쪽에 동일한 양의 자금을 유동성으로 추가해야 하며, 그 대가로 자금 풀에서 발생하는 모든 거래의 수수료를 수취하고 자신의 투자 원금을 회수할 것으로 기대합니다.
DeFi에서는 일부 사용자가 유동성 제공 활동을 "수동 소득 투자"로 이해하고 있으며, 즉 자산을 제공하고 자금의 양을 보유하며 초기 원금에 비례하는 수수료를 수취하는 것입니다. 이는 안정적인 자산 풀(예: DAI:USDC)에는 맞을 수 있지만, 특정 상황에서 변동성이 큰 자산 풀(예: USDC:ETH)에는 완전히 맞지 않습니다.
비정상 손실(Impermanent loss, IL)이라는 현상이 있으며, 이는 변동성이 큰 자산에 대한 Uniswap의 유동성을 추가하는 것과 단순히 두 가지 자산을 보유하는 것과 비교했을 때의 부정적인 수익을 표현하는 방식입니다.
이는 수동 소득을 추구하는 유동성 제공자의 수익성이 부정적인 영향을 받는 상황을 설명합니다. 추가된 토큰의 가격이 유동성 풀에 추가할 때의 가격으로 돌아온다면 비정상 손실은 존재하지 않거나 매우 작습니다. 그러나 가격 상황이 처음 가격 상황과 다르다면, 자산을 단순히 보유하는 경우와 비교했을 때 인출하는 금액이 후자의 총액보다 낮을 수 있습니다.
이는 유동성 제공자(LP)가 처음 사용한 가격 상황과 다른 상황에서 유동성을 제거할 때만 비정상 손실이 발생함을 의미합니다. 만약 제거하지 않고 더 좋은 기회를 기다린다면 손실은 발생하지 않습니다(비정상 손실). 전통 금융에서는 이를 "영구적 포지션 매도"로 간주할 수 있습니다. 영구적이라고 하는 이유는 이 포지션에 만기일이 없으며, LP는 원하는 만큼 오래 보유할 수 있기 때문입니다.
이는 시장이 변동하는 상황에서도 LP가 진입 시 가격 수준으로 유동성을 제거하면, LP는 이 기간 동안 수수료에서 이익을 얻고 비정상 손실을 겪지 않음을 의미합니다.
어떤 사람들은 거래 수수료가 손실을 보전해 줄 것으로 기대할 수 있습니다. 이는 가능하지만 어느 정도까지이며, 이는 인출 시 가격과 유동성을 제공하는 동안 풀의 유동성이 얼마나 높은지, 얼마나 많은 거래가 발생했는지에 따라 달라집니다. 따라서 유동성 제공자에게 가장 수익성 있는 조합은 자산이 변동하지 않고 매일 많은 거래가 발생하는 풀입니다. 동시에 시장이 자산의 가격을 정의하며, Uniswap에서 토큰 가격이 시장 가격과 편차가 발생할 때마다 차익 거래자가 이 차익 기회를 이용하여 Uniswap에서 거래를 하여 Uniswap의 가격을 토큰의 시장 가격에 가깝게 유도합니다.
수익 시뮬레이션
Uniswap v2에서 유동성 제공 활동의 수익을 분석하기 위해서는 다음 변수를 고려해야 합니다:
• 유동성을 제공하는 순간의 거래 쌍의 현물 가격
• 인출 시의 거래 쌍 현물 가격
• 풀의 거래량
• 풀의 자산량
• 거래에서 발생한 수수료 총액은 LP에게 분배됩니다.
상수
constant_product (k) 요소는 거래 가격을 정하는 방법 중 하나이며, 풀 양쪽의 가치를 균형 있게 유지합니다. 수수료를 무시할 경우, 계수의 계산 방법은 다음과 같습니다:
가격 책정
Uniswap은 다음 가격 책정 공식을 사용하여 유동성 풀 내 각 자산의 거래 가치를 정의합니다.
공식 1과 2를 결합하면 최종적으로 다음과 같은 결과를 얻습니다:
강조할 점은 다른 LP가 풀에 유동성을 추가하기 전에 상수는 거래 자산 가격 책정에 사용됩니다. 이러한 상황이 발생하면 상수는 새로운 풀 잔액에 따라 업데이트되며 후속 거래의 가격 책정에 사용됩니다.
예를 들어:
초기 풀에 100 ETH와 10,000 DAI가 있습니다. 따라서, constant_product (k) = 100 * 10,000 = 1,000,000입니다.
1일 후, John이 2 ETH와 2,000 DAI로 풀에 유동성을 추가하기로 결정했다면(풀에 거래가 없었다고 가정), 유동성 풀 양쪽이 증가했기 때문에 상수를 업데이트해야 합니다. 따라서 새로운 constant_product (k)는 다음 거래의 가격 책정에 사용됩니다: k = (100 + 2) * (10,000 + 2,000) = 102 * 12,000 = 1,224,000입니다.
Uniswap의 AMM은 유동성 제공자가 각 거래 쌍의 충전 측면에서 50/50 비율을 유지하도록 요구하므로, 공식 2는 자산의 가격이 각 풀에서 발생하는 거래량에 따라 달라진다는 것을 결정합니다. 이는 풀에서 거래가 발생하지 않는 경우(풀에서 발생하는 유일한 활동은 유동성 제공) eth_price가 풀 생성 시와 동일하게 유지된다는 것을 의미합니다. 다시 말해, 거래 활동이 있을 때만 가격이 업데이트됩니다.
유동성을 추가할 때 자산의 가격 책정은 풀에서 1개의 자산을 구매하고자 할 때의 가격 책정과 다소 다르게 발생합니다. 아래의 상황을 볼 수 있습니다.
예를 들어, Rob이 ETH:DAI 풀에 유동성을 추가하고자 한다고 가정해 보겠습니다. 그는 1 ETH를 추가하고자 하지만, 얼마나 많은 DAI 토큰을 제공해야 할까요? 현재 풀 잔액은 95 ETH와 10,529.49 DAI입니다. 공식 5에 따라 그가 제공해야 할 토큰 수량 = 1 * (10,529 / 95) = 110.87 DAI입니다.
유동성을 제공한 후, 새로운 자금 풀 잔액은 다음과 같습니다:
95 + 1 ETH = 96 ETH
10,529 DAI + 110.87 DAI = 10,640.36 DAI
새로운 k = 96 * 10,640.36 = 1,021,169.85
유동성 제공자 수익
Uniswap의 AMM을 이해하고, 풀에 들어갈 때의 토큰 초기 가격과 유동성을 제거할 때의 토큰 가격 간의 차이를 이해하기 위해서는 LP 토큰이라는 중요한 개념이 있습니다.
LP 토큰은 각 유동성 제공자가 풀에 얼마만큼의 자산을 보유하고 있는지를 나타내며, 각 LP는 풀에서 발생하는 총 수수료에서 해당 수익을 얻습니다.
비정상 손실
핵심 개념을 소개했으니, 유동성 제공자가 비정상 손실을 겪는 상황을 분석해 보겠습니다.
Babi는 20k의 총 유동성(100ETH와 10000DAI)을 추가하여 ETH:DAI 풀을 생성합니다. 첫 번째 유동성 제공자로서, 그녀는 공식 6에 따라 총 1000LP를 받습니다.
LPtokensamount = sqrt(100 * 10,000) - 0.00000000000000001 = 1,000LP 지분입니다.
풀 생성 후 9건의 거래가 발생했다고 가정해 보겠습니다. n은 풀 생성 후 각 기간을 나타냅니다.
다음 거래 유형을 고려해 보겠습니다:
exactoutputx: 사용자가 1 ETH를 정확히 구매하고자 할 때.
exactoutputy: 사용자가 임의의 양의 ETH로 1 DAI를 구매하고자 할 때.
exactinputx: 사용자가 정확한 ETH 수량을 사용하여 동등한 DAI를 구매하고자 할 때.
exactinputy: 사용자가 정확한 DAI 수량을 사용하여 동등한 ETH를 구매하고자 할 때.
1,000,000의 제품 상수(k)는 위의 거래 가격 책정 메커니즘의 주요 지침입니다. 이는 자금 풀의 각 측면에 미치는 영향을 계산하여 거래가 발생할 수 있도록 하며, 수수료를 무시할 경우에도 제품 상수를 유지합니다. 이제 거래가 발생한 후 풀의 각 측면에 미치는 영향을 계산해 보겠습니다.
n=1일 때 발생한 거래를 살펴보겠습니다.
• 초기 자금 풀 잔액 = 100 ETH와 10,000 DAI
• Constant_product = 100 * 10,000 = 1,000,000
거래 유형: exactoutputx → 거래자가 1 ETH를 정확히 구매하고자 하므로 ethliquiditypool에서 1 ETH를 제거합니다.
새로운 ethliquiditypool = 100 - 1 = 99 ETH → 이제 이 새로운 ETH 풀 잔액이 생겼으므로, 새로운 DAI 풀 잔액은 얼마일까요? 풀에는 많은 DAI 토큰이 유입될 것입니다.
새로운 DAIliquiditypool = constantproduct / new ethpool_balance = 1,000,000 / 99 = 10,101.01입니다.
풀에서 DAI의 유입으로 인해 다음과 같은 공식을 가정할 수 있습니다.
eth_price = (10,101.01 - 10,000) / 1 = 101.01 → 따라서 n=1의 거래에서 거래자가 ETH를 구매한 가격은 101.01입니다.
최종 자금 풀 잔액: 99 ETH와 10,101.01 DAI입니다.
아래 표에서 Uniswap의 AMM에서 발생한 상황을 볼 수 있으며, 1,000,000의 상수 제품과 거래 후 새로운 풀 잔액을 고려할 수 있습니다. 또한 각 거래에서 부과된 0.3%의 수수료와 함께 가격을 직관적으로 볼 수 있습니다.
거래가 발생한 후 최종 풀 개요는 다음과 같습니다:
이제 Tom(user10Add1ETH)이 n=10 시점에서 1 ETH의 유동성을 추가하고자 한다고 가정해 보겠습니다. AMM은 LP들이 양쪽의 가치가 동일한 쌍의 토큰을 제공하도록 요구하므로, Tom은 1 ETH의 가치와 동일한 DAI 수량을 제공해야 하며, 이 가격은 앞서 소개한 공식 5에서 가져옵니다.
따라서 Tom은 1 ETH를 제공해야 합니다.
DAIamountto_provide = 1 * (10,529 / 95) = 110.87 DAI입니다.
새로운 유동성 제공자가 풀에 들어오기 때문에, 새로운 LP가 풀에 들어오기 전에 거래 가격 책정의 상수를 업데이트해야 하며, 새로운 K = 96 * 10,640 = 1,021,170입니다.
Tom 이후 다른 7명의 LP가 풀에 유동성을 제공하며, AMM이 제공하는 공식 5의 가격 책정에 따라 공식 7에 따라 해당 LP 지분을 얻습니다. 구체적인 내용은 다음과 같습니다.
비정상 손실 분석을 용이하게 하기 위해 다음 정보를 고려해 보겠습니다.
Tom이 풀에 들어갈 때의 초기 포지션은: 1 ETH와 110.87 DAI입니다.
Tom(user10Add1ETH)은 n = 17 이후의 어느 시점에서든지 그들의 토큰을 풀에서 제거하기로 결정합니다.
Tom의 풀 내 LP는 Tom LP 토큰 / totalLPtokens = 10.53 / 1,284.30 = 0.008199 = 0.82%입니다.
n = 17 이후에는 추가 유동성 제공자가 풀에 들어오지 않고 거래만 발생합니다.
ETH:DAI 풀의 거래량이 많기 때문에 Uniswap의 가격 책정 메커니즘이 시장의 실제 가격을 반영한다고 볼 수 있으며, 차익 거래자가 차익 기회를 이용하여 가격을 지속적으로 수정합니다.
시간대(n)는 AMM에서 가격 업데이트의 각 시간대를 나타냅니다.
그가 자산을 지갑에 보관하고 풀에서 유동성을 인출할 때 그의 자금이 어떻게 변하는지 비교해 보겠습니다.
이제 각 경우의 차이점을 비교해 보겠습니다.
Pintail 블로그의 비정상 손실 공식을 이 경우에 적용하면 다음과 같습니다:
위의 시뮬레이션에서 얻은 결론은, 지갑에 토큰을 보유하는 것과 비교할 때 유동성을 제공할 때 손실이 실제로 존재한다는 것입니다. 풀의 잔액이 변경되고 각 토큰의 가격이 풀 내 거래 업데이트에 따라 변할 때 이러한 일이 발생합니다.
강조할 점은 LP 제공자가 풀에서 자신의 LP를 제거할 수 있다는 것입니다. 이 경우 Tom은 유동성을 제거하기로 결정한 순간 현재 풀의 0.8%를 제거했습니다. 이 순간 Tom이 유동성을 제거하고자 하는 풀은 유동성을 추가할 때의 풀과 다를 수 있으며, 그의 최종 가격은 초기 가격과 다릅니다.
이 현상은 아래 그림을 통해 가격 변화 그래프를 그려 관찰할 수 있습니다.
수수료 영향
Uniswap은 LP가 풀에 참여한 정도에 따라 모든 거래의 0.3%를 LP에게 분배합니다. 따라서 풀에서 발생하는 거래가 많을수록 LP가 얻는 수동 소득이 많아집니다. 이는 각 LP가 풀에서 차지하는 비율에 따라 적절히 분배됩니다.
우리는 Uniswap의 AMM 기능이 두 유동성 풀의 곱을 유지하는 것, 즉 소위 constant_product와 거래 전의 곱이 동일하다는 점에서 비정상 손실이 발생했음을 알 수 있습니다. 우리는 AMM이 가치 측면에서 양측의 비율이 동일하도록 보장하는 복고풍 가격 척도라고 말할 수 있습니다(50%/50% 비율).
강조할 점은 Uniswap의 토큰 가격이 풀에서 발생하는 거래에 따라 업데이트되며, 이는 차익 거래자가 Uniswap 가격과 다른 거래소 가격을 비교하여 수익성 있는 차익 기회를 찾는 능력에 크게 의존합니다. 따라서 Uniswap의 AMM 가격 책정은 풀에서 발생하는 거래에 의해 완전히 결정된다고 할 수 있습니다.
이러한 모델은 비변동성 자산 및 높은 변동성을 가진 거래 풀에 잘 적응할 수 있지만, 모든 종류의 자산에 적합하지 않을 수 있습니다.
옵션은 어떻게 될까요?
옵션 풀
DeFi 옵션(여기서는 Pods 옵션을 예로 들겠습니다)에서는 사용자가 옵션 토큰을 발행하기 위해 100%의 담보를 잠궈야 합니다. 옵션 토큰은 구매자의 권리와 판매자의 의무를 나타냅니다. 그러나 판매자가 초기 담보를 잠궈두었기 때문에 실행할 수 있는 것이 없으며, 스마트 계약이 판매자의 의무를 관리합니다.
옵션이 발행된 후, 사용자는 이를 판매하거나 풀에 유동성을 제공할 수 있습니다. Uniswap은 분산형 프로토콜이므로 누구나 임의의 자산 쌍에 대한 풀을 시작할 수 있으며, 사용자는 Uniswap 풀에서 각 시리즈의 옵션 토큰을 직접 판매할 수 있습니다.
a) 해당 옵션의 시장이 가장 유동적이라고 가정할 때, AMM의 가격이 정확하며 순수한 차익 거래의 힘을 통해 공정하고 최신의 가격을 나타냅니다.
또는
b) 옵션 가격이 잘못된 경우, 차익 거래 풀 가격이 차이를 줄일 기회를 제공합니다.
안타깝게도 DeFi는 이제 막 시작되었으며, DeFi 옵션도 이제 막 시작되었습니다. 이는 DeFi 옵션 시장이 Uniswap의 가격을 언제든지 수정할 수 없음을 의미합니다. 즉, 풀에 오랫동안 거래가 없으면 큰 차익 기회가 생길 수 있습니다. 이는 거래자에게는 좋은 일이지만, 유동성 제공자에게는 그렇지 않을 수 있습니다.
하지만 어떻게 옵션 가격이 잘못되었는지 알 수 있을까요?
옵션 가격 책정
전통 금융에서 가격 책정 모델은 여러 가지가 있으며, 가장 잘 알려진 것은 블랙-숄즈(Black-Scholes)입니다. 블랙-숄즈 공식은 다음과 같습니다:
블랙-숄즈는 옵션 계약 가격 책정을 위한 수학 모델로, 이 모델의 가정 중 하나는 자산의 변동성이 옵션 유효 기간 동안 일정하게 유지된다는 것입니다(이는 특히 암호화폐에서는 적용되지 않습니다). 이 공식은 유럽식 옵션(및 비배당 자산의 미국식 콜 옵션)에만 적용됩니다.
모든 방법은 일정 부분에서 옵션 만기 확률을 계산하려고 하며, 만약 만기가 도래한다면 현재 가치는 얼마인지 계산합니다. 이러한 이론적 가격을 계산하기 위해 저자는 기초 자산의 현물 가격, 만기 시간, 내재 변동성, 무위험 이자율 및 행사 가격 등의 요소를 포함합니다.
옵션의 만기 시간은 옵션의 시간 가치이며, 블랙-숄즈 모델을 사용할 때 가격 책정에 중요한 영향을 미치는 요소입니다.
옵션이 만기일에 가까워질수록 그 내재 가치는 더욱 확대됩니다. 즉, 옵션이 만기일에 가까워질 때 가격이 내재 가치가 높아지며, 이는 옵션이 행사되고 수익을 올릴 확률이 높기 때문입니다. 따라서 옵션 가격이 더 비쌀 수 있습니다. 옵션이 만기일에서 멀어질 때도 동일한 논리가 적용됩니다: 옵션이 행사될 확률이 낮아지므로 그 가치는 무가치(제로)에 가까워집니다. 이 개념에 대한 더 많은 세부 사항은 아래에서 확인할 수 있습니다:
만기 시 옵션 가격은 내재가치가 있거나 없을 수 있습니다. 대부분의 경우 옵션은 결국 무가치가 되므로, 만기 시 옵션의 가치는 제로가 됩니다.
이는 사용자가 옵션 풀에 유동성을 제공하고, 그들이 결국 무가치하게 된다면, 사용자가 더 큰 비율의 옵션 토큰을 인출할 수 있음을 의미합니다. 그 시점에서 옵션 토큰의 가치는 제로일 수 있습니다. 그들은 "발행된" 옵션이 없으며, 인출할 담보도 없습니다. 비정상 손실을 고려할 때, 이 경우 우리는 거래 쌍의 자산 중 하나가 만기 시 가치가 없음을 고려해야 합니다.
Uniswap의 가격 책정에 이러한 요소를 입력할 수 없다면, 옵션 가격은 어떻게 될까요?
일반 AMM의 옵션 거래
각 거래자는 자신이 적절하다고 생각하는 방식으로 이러한 공식을 다룰 것입니다. 그러나 그들 중 대부분은 옵션 가격에 영향을 미치는 모든 요소를 고려하여 옵션 가격을 계산하는 방법을 가지고 있습니다. 거래자는 차익 거래 기회를 찾을 가능성이 높지만, 유동성 제공자는 잠재적인 잘못된 가격 거래에 자산을 할당함으로써 손실을 초래할 수 있습니다.
이러한 이유로 Uniswap과 같은 모델을 사용하여 옵션 가격을 책정하는 것은 유동성 제공자에게 최선의 선택이 아닐 수 있습니다.