솔라나 생태계 AMM 연구: 높은 유동성의 기본 코드

이 글에서는 Solana 생태계에서의 몇 가지 중요한 AMM 구현을 소개합니다!

현재 웹3 산업의 상황에서 DeFi 관련 상품은 절대적인 시장 점유율을 차지하고 있습니다. 그중 AMM(Automated Market Maker)은 웹3 금융의 변화를 촉진하는 핵심 연결 고리이자 강력한 추진력입니다. 본 글에서는 솔라나 생태계에서 구현된 몇 가지 중요한 AMM 사례를 소개하고, 유동성 공급자(LP)가 투자 전략을 선택하는 데 도움을 드리고자 합니다.

CPMM

CPMM ( Constant Product Market Maker )은 가장 기본적인 AMM 구현 방식으로, 다양한 제품에 구현되어 있습니다. 여기에서는 Raydium에서 출시한 Constant Product 기반 AMM을 예로 들어 보겠습니다. Constant Product는 풀에 있는 두 토큰의 공급량이 고정된 Product(X * Y = k)를 갖는다는 것을 의미합니다.

유동성 공급자의 경우, 누군가 풀에 유동성(자산 추가)을 추가하면 CPMM은 해당 지갑 주소에 대한 연결 계정을 자동으로 생성하고 LP 토큰을 발행합니다(각 토큰 쌍은 자체 LP 토큰 발행량을 가집니다). 이 LP 토큰은 해당 지갑 주소가 풀 지분을 보유하고 있음을 증명하는 데 사용되며, 유동성 공급자가 인출하면 해당 토큰은 소멸됩니다.

CPMM의 온체인 프로그램은 Anchor를 사용하여 개발되었으며, 프로그램 코드는 https://github.com/raydium-io/raydium-cp-swap 에서 확인할 수 있습니다. 이 프로그램이 어떻게 일정한 곱을 달성하는지 간략하게 확인해 보겠습니다.

첫째, 사용자가 Raydium의 CPMM을 사용하여 토큰을 교환할 경우 스왑 관련 지침이 트리거됩니다.

예를 들어 (설명 목적으로만 제공되며, 이 기사는 어떤 토큰에 대해서도 책임을 지지 않습니다): 사용자가 USDC를 사용하여 TRUMP를 교환하고 싶을 때, TRUMP-USDC 풀을 통해 교환할 수 있습니다.

연못

지우다

USDC

7XzVsjqTebULfkUofTDH5gDdZDmxacPmPuTfHa1n9kuh

6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN

EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

예를 들어, 다음 트랜잭션 을 살펴보겠습니다. 편의상 트랜잭션의 다른 명령은 무시하고 Raydium 부분만 살펴보겠습니다. Raydium CPMM: swapBaseInput :

솔라나 생태계 AMM 연구: 높은 유동성의 기본 코드

입력 계정에서 입력 토큰은 USDC이고 출력 토큰은 TRUMP임을 확인할 수 있습니다. 솔라나 생태계의 AMM(자동화 시장 분석)에서는 LP 페어를 토큰 계정으로 간단히 표현할 수 있으며, 이더리움에서 일반적으로 사용되는 팩토리 컨트랙트처럼 새로운 컨트랙트 프로그램을 생성하여 배포할 필요가 없습니다. 트랜잭션이 발생하면 Raydium의 CPMM 프로그램과 직접 상호 작용합니다. 솔라나 프로그램은 수신 풀 주소, 토큰 주소 등을 통해 해당 토큰 계정의 상태를 수정하여 스왑 작업을 수행합니다.

예를 들어, 위의 swapBaseInput 명령어 코드는 여기에서 확인할 수 있습니다. 일련의 사전 확인 후, 교환 가능한 목표 토큰의 정확한 양은 ConstantProductCurve.swap_base_input_without_fees 에서 계산됩니다.

솔라나 생태계 AMM 연구: 높은 유동성의 기본 코드

사용된 공식은 다음과 같습니다.

솔라나 생태계 AMM 연구: 높은 유동성의 기본 코드

즉, TokenX와 TokenY의 총량이 변경된 후에도 그 곱은 변경되지 않아야 합니다. 수식의 왼쪽은 변경 후의 곱이고, 오른쪽은 변경 전의 곱입니다.

솔라나 생태계 AMM 연구: 높은 유동성의 기본 코드

수학적 변환 후, 위의 공식은 Δy(즉, 교환할 수 있는 y 토큰의 수)의 변환 공식으로 변환될 수 있습니다.

솔라나 생태계 AMM 연구: 높은 유동성의 기본 코드

즉, 코드에서 delta_y = (delta_x * y) / (x + delta_x) 부분을 계산합니다. 이 계산에는 swap_base_input 의 사전 로직에서 차감된 처리 수수료가 포함되지 않습니다.

씨엠엠

CLMM(Concentrated Liquidity Market Maker) 역시 Raydium에서 출시한 AMM입니다. Uniswap V3와 유사합니다. 각 토큰 쌍은 여러 수수료 등급을 가지며, 각 등급에 맞는 풀을 생성할 수 있습니다.

CLMM 구현은 Uniswap V3를 참조하므로, 학습 시 Uniswap의 구현 방식을 참조할 수 있는 다양한 개념과 구현 방식이 있습니다. 또한 틱, 다중 수수료 계층, 중앙화된 유동성 등 Uniswap의 개념을 계승합니다. 더 자세한 내용은 ZAN에서 제공하는 DEX 개발 과정( DEX 개발 실습 - Uniswap 코드 분석 - Uniswap 작동 방식 - ZAN) 에서 확인할 수 있습니다.

하지만 CPMM과 마찬가지로, 솔라나 체인의 특성상 Raydium CLMM은 각 풀에 대해 별도의 컨트랙트를 배포할 필요가 없으므로 팩토리 컨트랙트 개념이 존재하지 않습니다. 이는 유니스왑(Uniswap)과 다른 점입니다.

CLMM을 사용하면 유동성 공급자가 자금을 주입할 때 가격 범위를 선택할 수 있으며, 자금은 선택한 범위 내에서만 분배됩니다.

솔라나 생태계 AMM 연구: 높은 유동성의 기본 코드

중앙화된 유동성 풀의 경우, 토큰은 현재 가격을 기준으로 양쪽에 존재합니다. 위 그림에서 선택된 가격 범위에는 현재 가격이 포함되어 있으므로, 자금은 풀에 있는 두 토큰에 할당됩니다.

또한, 소위 일방적 유동성을 제공하기 위해 한 가지 유형의 토큰만 주입할 수 있습니다(아래 그림 참조). 이는 기존 금융 모델의 지정가 주문과 다소 유사합니다. LP 자금은 토큰 가격이 특정 범위에 도달할 때만 사용되지만, 이 모델은 고려해야 할 위험 요소가 더 많습니다.

솔라나 생태계 AMM 연구: 높은 유동성의 기본 코드

일반적으로 가격 변동폭이 작은 풀의 경우, LP는 더 작은 범위를 선택하는 경향이 있습니다. 반대로 가격 변동폭이 매우 큰 풀의 경우, 더 큰 범위를 선택하는 경향이 있습니다. 이는 현재 가격이 선택한 가격 범위에서 벗어나 과도한 일시적 손실을 방지하려는 것입니다.

중앙화된 유동성은 LP의 자본 활용률을 높일 수 있지만, LP의 재무적 인식에 대한 부담을 가중시킨다는 점에 유의해야 합니다. LP는 자체 유동성을 더욱 적극적으로 관리해야 합니다. LP가 효과적으로 대응하지 못할 경우, 체인의 잦은 변동으로 인해 LP는 심각한 일시적 손실을 입기 쉽습니다.

디엘엠엠

DLMM(동적 유동성 마켓 메이커)은 메테오라(Meteora)에서 출시한 AMM 상품입니다. 유니스왑 V3의 일종으로, 위에서 언급한 CLMM과 매우 유사합니다. DLMM은 유동성 공급자(LP)가 현재 가격 근처의 특정 범위 내에 자금을 집중할 수 있도록 합니다. 그러나 DLMM은 구체적인 구현 방식에서 다소 차이가 있으며 몇 가지 특수 기능을 제공합니다.

DLMM은 Bin 개념을 제공합니다. 풀은 기준 가격에서 시작하여 각 Bin 단계마다 Bin으로 존재합니다. 동일한 Bin에서 거래가 발생하면 트레이더는 슬리피지(slippage)가 발생하지 않습니다. 이는 거래량과 거래 성공률을 크게 높일 수 있습니다. 이론적으로 LP는 더 많은 거래 수수료를 얻을 수 있습니다.

솔라나 생태계 AMM 연구: 높은 유동성의 기본 코드

CLMM과 마찬가지로, 풀에 있는 토큰도 현재 가격의 양쪽에 분배되며, 하나의 토큰만 일방적인 유동성을 제공하면 됩니다. 그러나 Bin의 개념에 따르면, 현재 활성화된 Bin(현재 거래 가격을 나타냄)에는 두 개의 토큰이 있습니다. 즉,

  • 현재 활성화된 Bin: 토큰이 두 개 있습니다. 현재 Bin의 토큰 스왑은 고정 가격으로 이루어지며 슬리피지는 0입니다.
  • 기타 상자: 현재 활성화된 상자의 양쪽에 배포되며, 각각 토큰이 하나만 들어 있습니다.

현재 활성화된 Bin에 있는 토큰의 양이 변경될 때, 한쪽 당사자의 토큰이 0으로 줄어들면 DLMM은 풀의 실제 상황에 따라 현재 활성화된 Bin을 왼쪽이나 오른쪽의 다음 Bin으로 설정하여 풀의 가격 변화를 유도합니다.

LP가 유동성을 제공하는 경우 DLMM은 Spot, Curve, Bid Ask의 3가지 전략을 제공합니다.

  • 그중에서도 스팟(Spot) 전략은 가장 보편적이며, 기본적으로 모든 유동성 풀에 적합합니다. 가장 간단한 유동성 전략으로 간주됩니다.
  • Curve는 스테이블코인 쌍처럼 가격 변동이 매우 작은 풀에 더 적합합니다. 이러한 풀의 가격 변동은 매우 작으며, Curve의 모양에서 알 수 있듯이 이 범위에 LP 자금을 집중시키면 거래 수수료를 극대화할 수 있습니다.
  • 매수/매도 전략은 가격 변동폭이 매우 큰 풀에 더 적합합니다. 이러한 풀에서는 차익거래가 활발하게 이루어지는 경향이 있으며, 가격을 좁은 범위에 집중시키기 어려울 수 있습니다. 이 전략은 일반적으로 LP가 설정한 자금 조달 범위를 벗어나지 않도록 포지션을 자주 조정해야 합니다. 이는 시장의 판단이 필요하기 때문에 쉽지 않습니다.

요약하다

웹3 금융 분야의 중요한 부분인 AMM은 고유한 메커니즘과 혁신을 통해 탈중앙화 금융의 대중화와 발전을 촉진합니다. 기술의 지속적인 발전과 생태계의 개선을 통해 AMM은 앞으로 더 큰 역할을 수행하고 기존 금융의 판도를 더욱 변화시킬 것으로 예상됩니다.

공유하기:

작성자: ZAN Team

이 글은 PANews 입주 칼럼니스트의 관점으로, PANews의 입장을 대표하지 않으며 법적 책임을 지지 않습니다.

글 및 관점은 투자 조언을 구성하지 않습니다

이미지 출처: ZAN Team 침해가 있는 경우 저자에게 삭제를 요청하세요.

PANews 공식 계정을 팔로우하고 함께 상승장과 하락장을 헤쳐나가세요
추천 읽기
14분 전
2시간 전
3시간 전
4시간 전
5시간 전
5시간 전

인기 기사

업계 뉴스
시장 핫스팟
엄선된 읽을거리

엄선 특집

App内阅读