일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 스마트 컨트렉트 함수이름 중복
- chainlink 설명
- 스마트컨트렉트 함수이름 중복 호출
- Vue.js
- 스마트컨트렉트테스트
- 오블완
- SBT표준
- 프록시배포구조
- ambiguous function description
- Vue
- ethers v6
- vue기초
- git rebase
- 스마트컨트렉트프록시
- ethers websocket
- ethers typescript
- 컨트렉트 동일한 함수이름 호출
- ethers
- nest.js설명
- 티스토리챌린지
- rust 기초
- 러스트 기초
- 스마트컨트렉트 예약어 함수이름 중복
- 러스트기초
- 컨트렉트 배포 자동화
- multicall
- 머신러닝기초
- 체인의정석
- ethers type
- 러스트 기초 학습
- Today
- Total
체인의정석
Uniswap V2 컨셉 & Uniswap V3 컨셉 본문
Uniswap V2 컨셉
토큰과 토큰의 거래를 해주는 거래소가 DEX인데 유니스왑 V2,V3의 거래량은 다양한 DEX 중 가장 많은 거래량을 자랑한다.
UniswapV2는 자동화되어 토큰을 거래해주는 프로토콜이다.
유니스왑 V2는 이더리움 또는 이더리움의 레이어 2 위에만 존재한다.
거래소에서는 오더북 형식으로 서버에서 관리되며 DEX는 유동성 풀에서 거래되며 블록체인에서 거래된다.
CPMM
유니스왑에서 SWAP은 x*y = k 이라는 Constant Product Market Maker라는 CPMM 모델을 사용한다.
X와 Y의 가치의 곱인 K가 유지가 되기 때문에 이러한 값이 나오게 된다.
그래프에서 결국 한 점에서의 기울기가 price인데 해당 기울기는 x와 y 좌표의 이동에 따라서 변화가 되게 되는 것이다.
근데 V2는 결국 무한대로 유동성을 제공하다보니 여기에 대한 한계가 언급되게 되었다.
ETH가 10이고 OMG가 500 일때 2 곱은 5000인데 만약 ETH가 11이 되었다면 OMG는 454개여야 500개가 맞추어 지게 된다.
이자율이 나오는 원리와 Fee
이때 원래는 k 값이 일정해야 하는데 사실상 fee가 발생하게 되면 해당 fee는 풀에 다시 돌아가다보니 reserve가 증가해서 fee도 증가하게 된다.
Fee가 돌아온다는 것은 결국 예치한 사람에게 이득이 되게 된다. 그 결과 APY 즉 복리가 일어나는데 이는 SWAP이 일어날 때 마다 재예치를 하는 것과 같은 효과가 있어서 Compound를 계속 한다고 보면 된다. 따라서 SWAP fee를 지분별로 가져가는데 이것이 이자라고 볼 수 있다. 1년전 k 값과 1년 후 k 값을 계산하면 이를 통해 APY의 증가량을 볼 수 있다. (APR은 복리 없는 값이다.)
프로토콜 또한 fee를 떼어 갈 수 있게 떼어놨는데 유니스왑에서는 SWAP이 계속 일어나면 이전 k 값을 저장하고 있다가 LP가 mint나 burn이 일어나면 k 값 증가량 만큼 LP를 그만큼 계산해서 민팅하고 프로토콜에게 주게 된다. 수수료가 6분의 1을 프로토콜이 가져가므로 0.3%의 6분의 1은 0.05%이다. 수수료는 민트나 번 할때 발생한다.
비영구적 손실
dx/dy 는 특정 시점의 price 즉 spot price라고 부르는데 price가 원래는 양쪽 가치는 같은데 한쪽의 가격만 올라간다면 rebalance 가 일어나게 된다. 이를 직관적으로 계산하게 되면 만약 유동성 공급을 안했을 때와 비교해 본다면 손해를 보게 된다. 거래수수료를 얻는 대신 자산의 변화가 있게 되면 리밸런싱을 통해 손해를 볼 가능성이 생기게 되는 것이다.
Uniswap V3 컨셉
유니스왑 v3 컨셉 중 가장 큰 것은 자본 효율성이다.
전체 범위가 아닌 특정 범위에만 유동성을 공급하게 해 달라는 것이 유니스왑 V3의 핵심 컨셉이다.
결국에는 정규 분표 형태의 가격을 보여주는 것이 유니스왑 V3이다.
V3 백서에는 noncustodial automated market maker라고 하는데 v3는 유저들이 모든것을 일일히 관리해야 한다.
- 집중화 된 유동성 : 원래 fee가 0.25%가 고정이였는데 fee의 티어를 0.05%, 0.3%, 1% 중 하나를 선택할 수 있다.
- vitrual reserve : 내가 만약 구간을 설정하면 해당 구간 동안에 내가 예치를 하게 되는 것인데 이 값을 평행이동 시키면 V2와 같이 사용할 수 있게 된다. v3 부터는 이에 따라서 liquidity와 price라는 변수를 사용한다. 프로토콜 전체적으로는 부분 부분 있는 유동성의 합을 사용하지만 개개인 별로는 자신이 지정한 구간에 대해서만 유동성이 있다고 보면 된다.
- NFT를 통한 유동성 공급 : LP 토큰 대신 NFT를 준다.
- fee의 경우 SWAP할때마다 직접 걷게 되어서 수수료 NFT에 수수료 수치가 늘게 된다. (이게 리워드 이다.) V2는 자동 재예치이지만 V3는 개개인 별로 다르기 때문에 토큰 자체를 이자로 주고 있으며 이를 유저들이 직접 재예치하는 구조이다.
* 만약 v3에서는 내가 예치한 범위를 벗어나면 단일자산 홀딩으로 변경되며 수수료도 얻을 수 없다.
*비영구적 손실의 경우 자신이 예치한 원래 가격으로 돌아오게 되면 손해가 없게 된다.
출저 : 코인플러그 김민기 님의 정리한 내용입니다
'블록체인 > 디파이' 카테고리의 다른 글
Uniswap V3 - Liquidity 살펴보기 (Setup & Mint & Fee & Decrease liquidity & increase Liquidity) (0) | 2023.07.15 |
---|---|
Uniswap V3 - SWAP 살펴보기 (Single Swap, Multihop Swap) (0) | 2023.07.14 |
compound 청산로직 추가 자료 (0) | 2022.12.27 |
컴파운드 분석 3편 - CToken & Comptroller (transfer, 유동성체크, 이자율 체크, 청산) (0) | 2022.12.16 |
컴파운드 분석 2 편) 컴파운드에서의 이자율 계산 (0) | 2022.12.12 |