Uniswap V3 유동성 공급의 수학 원리 심층 분석

체인문이 세상을 보다
2021-09-23 18:32:49
수집
Uniswap V3에서 올바른 비율로 유동성을 제공하기 위해서는 스케일 간격 내의 다양한 유동성 값과 풀 데이터를 사용하여 교환해야 할 토큰 수를 계산하는 방법 등 많은 요소를 고려해야 합니다.

撰文:Mellow Protocol
编译:Blake

안녕하세요, 인사말은 생략하고 Uniswap V3의 수학적 논리에 대해 이야기해봅시다!

우리는 Uniswap V3에서 유동성 공급이 어떻게 작동하는지, 그리고 두 가지 토큰의 포트폴리오를 어떻게 조정하여 최대의 LP 포지션을 생성하고 IL을 최소화할 수 있는지에 대해 깊이 탐구할 것입니다. 다음에는 많은 공식과 숫자가 있을 것입니다.

Uniswap V2 회고: 거래자의 관점

Uniswap V2는 자동화된 시장 조성자로, 다음을 허용합니다:

  • 거래자가 한 자산을 다른 자산으로 교환할 수 있습니다;
  • 유동성 제공자(LP)가 유동성을 제공하고 거래 수수료를 벌 수 있습니다.

각 풀에는 두 가지 토큰이 있습니다: X와 Y. 풀 내에 X~p~ 개의 X 토큰과 Y~p~ 개의 Y 토큰(풀 준비금이라고도 함)이 있다면, 풀 유동성 L은 다음과 같이 정의됩니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

현재 풀 내 토큰의 비율은 현재의 교환 가격 p를 정의합니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

거래자가 y 개의 Y 토큰을 교환하고 싶다면, 그들은 y 개의 토큰을 풀에 예치하고 x 개의 X 토큰을 받습니다. x는 풀에서 다음 방정식으로 결정됩니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

여기서 ϕ는 풀 수수료입니다. Uni V2의 경우, 그 값은 0.3%입니다.

이제 ϕ= 0일 때, 현재 가격 p = 1, 풀 준비금 X~p~=1, Y~p~=1이고 거래자가 y= 1 단위의 Y 토큰을 교환하고 싶다면 어떤 일이 발생하는지 살펴보겠습니다.

Uniswap V3 유동성 공급의 수학적 원리 심층 분석그림 1: Uniswap V2 거래자의 관점

거래자는 X의 x = 0.5 토큰을 회수합니다. 풀 준비금과 가격은 X~p~ = 0.5, Y~p~ = 2, p = 4로 업데이트됩니다.

우리는 현재 가격 p = 1일 때 x = 1을 예상하지만, 실제 x 금액은 손실을 입게 되며, 이를 슬리피지(sl= 0.5)라고 부릅니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

좋은 소식은 sl→0이 된다는 것입니다. 이는 풀 유동성 L이 증가하거나 교환량이 감소하기 때문입니다. 즉, 충분히 작은 교환량에 대해서는 가격 p로 교환할 때 비용이 적습니다.

Uniswap V2 회고: 유동성 제공자의 관점

이제 p = 4, 풀 준비금 X~p~ = 0.5, Y~p~ = 2, L = 1이고 유동성 제공자가 x = 0.25의 X 토큰과 y = 1의 Y 토큰을 넣고 싶다면 어떤 일이 발생하는지 살펴보겠습니다.

Uniswap V3 유동성 공급의 수학적 원리 심층 분석그림 2: Uniswap V2 유동성 제공자의 관점

이 경우, 풀의 새로운 준비금은 X~p~ = 0.75, Y~p~ = 3 및 L² = X~p~·Y~p~ = 2.25가 되어 L = 1.5가 되고, 유동성 제공자는 Uni V2 lp 토큰 형태로 ΔL = 0.5의 유동성을 받습니다. 이제 각 거래에서 유동성 제공자는 ΔL/L=1/3의 비율로 수수료를 받습니다.

이 예에서 우리는 의도적으로 x = 0.25와 y = 1을 유동성 제공자의 투자로 사용했으며, 따라서 y / x = 4 = p입니다.

만약 y / x≠p라면 어떤 일이 발생할까요? 이 경우 일부 토큰 Δx 또는 Δy가 유동성 제공자에게 반환되어 남은 비율 (y-Δy)/ x = p 또는 y / (x-Δx) = p가 됩니다. 유동성 제공자가 그들의 토큰을 최대한 활용하고 최대 유동성을 얻으려면, 먼저 그들의 토큰을 거래하여 y / x = p가 되어야 하며, 그 후에 그것들을 풀에 넣어야 합니다.

Uni V2에서는 최대 유동성을 얻기 위해 토큰 조합을 조정하는 것이 매우 간단합니다. Uni V3는 어떨까요? 사실 점점 더 복잡해집니다.

Uniswap V3: 단일 포지션

2021년 5월, Uniswap 팀은 V3를 출시했습니다. Uni V3에서는 유동성을 임의의 가격 범위 [pᵃ, pᵇ]에 배치할 수 있습니다. 가격이 [pᵃ, pᵇ] 범위 내에 있는 한, 유동성 L을 보유하고 수수료를 벌 수 있습니다. 가격이 범위를 초과하면, 가격이 다시 범위로 돌아올 때까지 어떤 수수료도 벌지 않습니다.

이것이 어떻게 작동하는지 살펴보겠습니다. 먼저, 단일 포지션을 가지고 가격 범위가 [pᵃ, pᵇ] = [0.25, 4]인 마이닝 풀을 고려해보겠습니다. 현재 풀 준비금은 X~p~ = Y~p~ = 0.5이고, 가격은 p = 1입니다. 이 경우, 교환이 발생하고 가격이 변동함에 따라 다음과 같은 풀 행동을 관찰합니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석그림 3: Uniswap V3 단일 포지션

여기서 녹색 곡선은 교환에 사용되는 실제 토큰 준비금(실제 유동성 곡선)이고, 빨간색 곡선은 가상의 유동성 곡선으로, 사용자가 Uni V2에서 교환을 수행하는 것을 시뮬레이션합니다.

가격이 [0.25, 4] 범위 내에 있는 한, 풀의 행동은 빨간색 유동성 곡선을 가진 UniV2 풀과 완전히 동일합니다. 가격이 경계를 넘으면, 가상의 유동성은 0으로 감소하고, 실제 유동성은 X 또는 Y 토큰에 집중되어 교환에 사용되지 않습니다.

Uniswap V3: 다중 포지션

이제 [pᵃ₁, pᵇ₁]에서 두 개의 유동성 투자 x₁, y₁와 [pᵃ₂, pᵇ₂]에서 x₂, y₂가 있을 때 어떤 일이 발생하는지 살펴보겠습니다. 이러한 투자 각각은 (후속 장에서 볼 것입니다) 가상의 유동성 L₁과 L₂를 의미합니다.

Uniswap V3 유동성 공급의 수학적 원리 심층 분석그림 4: Uniswap V3 두 개의 포지션

두 구간이 가격을 모두 커버할 때, 두 실제 준비금이 모두 사용되며, 풀의 가상 유동성은 유동성의 총합과 같습니다. 가격이 하나의 구간만 커버할 때는------그 유동성만 사용됩니다. 가격이 두 구간을 넘어설 때, 풀 유동성은 0이 됩니다(또는 어떤 수수료도 벌지 않습니다).

이는 Uni V3에 독특한 특징인------구간별 유동성 함수의 기초를 제공합니다. 가격이 가상의 곡선을 따라 이동할 때, 유동성 가치는 특정 가격 지점(즉, 유동성 포지션의 경계)에서 일부 ΔL만큼 변화합니다. 이 점은 그림 3에서 가격 pᵃ₁와 pᵇ₁에서 발생하는 점프를 볼 수 있습니다.

스케일과 스케일 간격

Uniswap V3의 실제 상황은 위 그림에서 보여지는 것보다 더 복잡합니다. 실제 Uni V3에서는 유동성을 임의의 가격 범위에 배치할 수 없습니다. 대신, 이른바 스케일이 가격 범위 내에서 이산 그리드를 형성합니다. 스케일은 다음 공식으로 정의됩니다(i는 정수):

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

각 풀에는 스케일 간격의 개념도 있습니다. 스케일 간격은 스케일 위의 또 다른 그리드로, 유동성을 배치할 수 있는 스케일을 제한합니다. 예를 들어, 0.3%-수수료의 풀에서 스케일 간격은 60이므로, 각 60의 스케일에서만 유동성을 배치할 수 있습니다. 예를 들어, 0, -60, 60, 120, -120, … 아래 그림은 스케일 간격 스케일(주황색)과 스케일(검은색)을 보여줍니다.

Uniswap V3 유동성 공급의 수학적 원리 심층 분석그림 5: 스케일과 스케일 간격

유동성 가격 범위 경계는 스케일 간격 스케일에서만 설정할 수 있으므로, 스케일 간격 내의 유동성은 일정하며, 가격이 스케일 간격 스케일을 통과할 때만 변경됩니다.

따라서 우리는 구간별 유동성 함수가 있으며, 스케일 간격 스케일에서 점프가 발생할 수 있습니다(그림 2와 유사).

포지션의 유동성 가치

이제 초기 토큰 x와 y, 가격 범위 [pᵃ, pᵇ] 및 현재 가격 p가 주어졌을 때 유동성 L이 어떻게 계산되는지 살펴보겠습니다.

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

이 방정식에서 볼 수 있듯이, x와 y 토큰의 비율이 올바르지 않으면(Lx≠Ly) 일부 토큰이 유동성 제공자에게 반환됩니다. 이는 우리가 Uni V2에서 관찰한 행동과 유사합니다.

하지만 Uni V3의 경우, 구간별 유동성 함수가 있어 스케일 간격 스케일에서 점프가 발생합니다. 다음 장에서는 Uni V3에서 토큰을 가장 효율적으로 배치하는 방법을 보여줄 것입니다.

효과적인 유동성 제공

우리가 x 개의 X 토큰과 y 개의 Y 토큰으로 구성된 포트폴리오를 가지고 있고, 가격 범위 [pᵃ, pᵇ]에 유동성을 제공하고자 할 때, 우리는 얼마나 많은 X 또는 Y 토큰을 교환해야 최대 유동성을 얻을 수 있을까요?

이 질문에 답하기 위해, R = y / x로 나타내고------우리 포트폴리오에서 토큰의 비율과 rᵃᵇ(p)------Lx = Ly가 되도록 하는 최적의 토큰 비율을 나타냅니다. Lx와 Ly의 공식에서 우리는 다음을 도출할 수 있습니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

따라서 우리의 목표는 R = rᵃᵇ로 만드는 것입니다.

하지만 이 작업은 단순히 x와 y를 지정된 비율 rᵃᵇ에 맞추는 것보다 약간 복잡합니다. 우리가 x를 y로 교환하기 시작하거나 그 반대의 경우, 풀 가격 p가 변하기 시작하고 rᵃᵇ도 마찬가지입니다. 이러한 행동은 다음 그림과 같이 나타납니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석그림 6: R을 rᵃᵇ에 맞추기

복잡함의 또 다른 층은 가격 p의 변화와 함께 시간에 따라 풀 유동성 L도 변화한다는 것입니다! 이 문제를 해결하기 위해, 먼저 유동성 L이 변하지 않을 때, 우리가 Y 토큰으로 X 토큰을 교환할 때 비율 R이 어떻게 변화하는지 이해해봅시다.

방정식 L²=xy와 p = y / x에서 쉽게 유도할 수 있습니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

따라서 우리가 Y로 X를 교환하면, Y에서 수수료를 뺀 후, 교환된 가격은 p₁ (p₁ > p₀)으로 정산됩니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

X로 Y를 교환하면 p₁\< p₀가 되며, 우리는 다음과 같습니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

다음 질문은:

R이 어떤 비율에서 스케일 간격을 통과하고 유동성 변화가 발생할까요?

R+를 상단 스케일을 통과하는 비율로, R-를 하단 스케일의 비율로 나타내고, p₀는 초기 가격, p-와 p+는 각각 스케일에서의 가격, L은 스케일 간격의 현재 유동성이라고 하면, 우리는 다음을 얻습니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

마지막으로, 우리는 문제를 해결할 준비가 되었습니다.

먼저, 우리는 두 가지 질문에 대답해야 합니다:

  • R > rᵃᵇ(p₀)인가요? 그렇다면 우리는 Y를 X로 교환해야 하고, 그렇지 않다면 X를 Y로 교환해야 합니다.
  • 우리가 교환할 때------마이닝 풀 가격이 스케일 간격을 넘어설까요? 만약 아니라면- 우리는 즉시 문제를 해결할 수 있습니다. 만약 그렇다면- 우리는 우리의 값을 조정해야 하며, 마치 스케일 간격을 넘어서는 것처럼, 새로운 유동성에서 우리의 알고리즘을 반복해야 합니다.

이 질문들의 답은 우리를 네 가지 다른 경우로 이끌어갑니다:

  • 하나의 스케일 간격 내에서 Y를 X로 교환: R > rᵃᵇ(p₀), R+ ≤ rᵃᵇ(p+)
  • 하나의 스케일 간격 내에서 X를 Y로 교환: R \< rᵃᵇ(p₀), R- ≥ rᵃᵇ(p-)
  • 서로 다른 스케일 간격에서 Y를 X로 교환: R > rᵃᵇ(p₀), R+ > rᵃᵇ(p+)
  • 서로 다른 스케일 간격에서 X를 Y로 교환: R \< rᵃᵇ(p₀), R- \< rᵃᵇ(p-)

경우 1: 하나의 스케일 간격 내에서 Y를 X로 교환: R > rᵃᵇ(p₀), R+ ≤ rᵃᵇ(p+)

Uniswap V3 유동성 공급의 수학적 원리 심층 분석그림 7: 하나의 스케일 간격 내에서 Y를 X로 교환. 우리가 Y에서 X로 교환할 때, 가격은 p₃으로 증가하고, R은 R+으로 감소하며, rᵃᵇ은 rᵃᵇ+으로 증가합니다. 처음에 R > rᵃᵇ이고 R+ ≤ rᵃᵇ+이므로, R = r이 스케일 간격 내에서 보장됩니다.

우리가 y를 x로 교환하고 교환 후 가격이 p₁로 안정된다면, 우리는 단지 Ryx(p₁) = rᵃᵇ(p₁)을 보장해야 합니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

우리가 z = √p₁라고 가정하고 방정식의 항을 재배열하면, 우리는 이차 방정식을 얻습니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

따라서 우리는 이를 해결하고 p₁을 찾을 수 있습니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

교환해야 할 Y 토큰의 수는:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

경우 2: 하나의 스케일 간격 내에서 X를 Y로 교환: R \< rᵃᵇ(p₀), R- ≥ rᵃᵇ(p-)

Uniswap V3 유동성 공급의 수학적 원리 심층 분석그림 8: 하나의 스케일 간격 내에서 X를 Y로 교환. 우리가 X에서 Y로 교환할 때, 가격은 p₂로 하락하고, R은 R-으로 증가하며, rᵃᵇ은 rᵃᵇ-으로 감소합니다. 처음에 R \< rᵃᵇ이고 R- ≥ rᵃᵇ-이므로, R = r이 스케일 간격 내에서 보장됩니다.

이 경우는 경우 1과 매우 유사하지만, 우리는 X를 Y로 교환하고 있으므로 Rxy(p₁) = rᵃᵇ(p₁)을 보장해야 합니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

경우 1과 유사하게, 우리는 다음을 얻을 수 있습니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

교환해야 할 X 토큰의 수는:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

경우 3: 서로 다른 스케일 간격에서 Y를 X로 교환: R > rᵃᵇ(p₀), R+ > rᵃᵇ(p+)

Uniswap V3 유동성 공급의 수학적 원리 심층 분석그림 9: 서로 다른 스케일 간격에서 Y를 X로 교환. 우리가 Y에서 X로 교환할 때, 가격은 p2로 증가한 다음 p₃으로 증가하고, R은 R+으로 감소하며, rᵃᵇ은 rᵃᵇ+으로 증가합니다. 처음에 R > rᵃᵇ이고 R+ > rᵃᵇ+이므로, 우리가 R = rᵃᵇ로 교환할 때 가격이 스케일 간격을 넘어설 것이라고 보장됩니다.

이 경우, 우리는 Y를 X로 교환하여 R = R+가 되고 p = p+가 될 때까지 진행하며, 새로운 유동성이 있는 새로운 스케일 간격에 있게 됩니다. 우리는 얼마나 많은 Y 토큰을 교환했는지를 기억하여 나중에 최종 숫자에 추가합니다. 그런 다음 우리는 알고리즘을 다시 시작하고 반복하여 경우 1을 만날 때까지 진행합니다. 그러면 우리는 다음과 같이 재정의합니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

경우 4: 서로 다른 스케일 간격에서 X를 Y로 교환: R \< rᵃᵇ(p₀), R- \< rᵃᵇ(p-)

Uniswap V3 유동성 공급의 수학적 원리 심층 분석그림 10: 서로 다른 스케일 간격에서 X를 Y로 교환. 우리가 X에서 Y로 교환할 때, 가격은 p₃으로 하락한 다음 p₂로 하락하고, R은 R-으로 증가하며, rᵃᵇ은 rᵃᵇ-으로 감소합니다. 처음에 R \< rᵃᵇ이고 R- \< rᵃᵇ-이므로, 우리가 R = rᵃᵇ로 교환할 때 가격이 스케일 간격을 넘어설 것이라고 보장됩니다.

이 경우는 경우 3과 완전히 유사하지만, 우리는 X를 Y로 교환하여 R = R-가 될 때까지 진행하며, 경우 2를 만날 때까지 반복합니다. 우리는 다음과 같이 재정의합니다:

Uniswap V3 유동성 공급의 수학적 원리 심층 분석

결론

Uni V3에서 올바른 비율로 유동성을 제공하는 것은 매우 복잡한 작업입니다. 우리는 스케일 간격 내의 다양한 유동성 값을 고려해야 합니다. 위의 알고리즘은 풀 데이터를 사용하여 최대 유동성을 얻기 위해 교환해야 할 토큰의 수를 계산하는 방법을 설명합니다.

숫자 그래프는 여기에서 얻을 수 있습니다:

https://www.desmos.com/calculator/rqbrnapxbj

https://www.desmos.com/calculator/ys7kcfgjxe

https://www.desmos.com/calculator/ehdwkbtu7z

https://www.desmos.com/calculator/huzzwffze9

https://www.desmos.com/calculator/t9u9x8xgcy

향후 기사에서는 Uni V3의 다른 흥미로운 측면, 예를 들어 무상 손실, 다중 포트폴리오, 전략적 위험 등을 논의할 계획입니다.

Mellow Protocol은 AMM의 유동성 제공 및 시장 조성 공간을 탐구하고 있습니다. 여기서 우리의 초기 연구 논문을 확인할 수 있습니다. Mellow의 목표는 시장 비효율성을 제거하고 사용자에게 결과를 창출하기 위해 강력한 도구 생태계를 구축하는 것입니다.

우리는 이것을 단순한 제품으로 보지 않고, 복잡한 수학이 DeFi 분야에 가져올 수 있는 진화로 보고 있습니다. Uniswap과 Curve가 혁신적으로 사용자 거래 경험을 변화시킨 것처럼, 우리는 LP 최적화가 tradfi의 가능성을 촉진하고 있다고 믿습니다.

다음 기사에서는 적절한 재조정 전략을 구현하는 방법에 대한 더 많은 아이디어를 논의하고, DeFi의 더 넓은 주제에 대해 계속 이야기할 것입니다.

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
banner
체인캐처 혁신가들과 함께하는 Web3 세상 구축