[uniswap-v3] 1. Price, Tick, TickSpacing

[uniswap-v3] 1. Price, Tick, TickSpacing

유니스왑v3를 알아보자.

·

1 min read

1. Price와 Tick

X = amount of token 0
Y = amount of token 1
P = price of X in terms of Y = Y / X // 이건 V2에서 사용하던 가격 계산식과 동일

// v3에서의 가격계산식은 다음과 같음
P = 1.0001 ^ tick

V2에서는 풀 안의 token0와 token1의 수량으로 가격을 계산하였음.

V3에서는 풀 안의 토큰의 양을 계산하기 위해서는 3가지를 알아야 한다! : Liquidity, Price range, current price

이 세가지를 알면 주어진 가격범위에서 토큰들의 양을 계산할 수 있게된다.

Eth와 USDC 풀에서 Price와 Tick의 예시를 봐보자

tick = -200697
p = 1.0001 ** tick // 1.924313e-09

가격은 아주 작은 수로 나온다. 이를 어떻게 Eth/USDC (1이더는 당시 1924달러 정도인듯) 크기로 맞출까?

각 토큰의 decimals를 확인해보면 된다.

tick = -200697
p = 1.0001 ** tick # 1.924313e-09

# token0 = ETH
decimals_0 = 1e18
# token1 = USDC
decimals_1 = 1e6

P = p * decimals_0 / decimals_1 # 1924.313..

2. Tick Spacing

Number of ticks to skip when the price moves

스왑이 일어날 때마다 가격은 움직인다. 가격은 상승하거나 감소하는데 이 증감의 단위가 tick spacing이 된다.

tick spacing이 2라고 하면,

tick은 0에서 2, 2에서 4로 상승하고 감소할때도 0에서 -2, -4로 감소하게된다.

따라서…. 가격 역시 특정한 간격을 두고 움직이게 된다! 일단 여기까지가 오늘 깨달은 tick의 개념...