IT/Blockchain2023. 3. 21. 11:17

이 문서는 최근 많은 거래량을 보이고 있는 디파이 거래소인 GMX에 대한 기술 및 토큰 분석을 해보겠습니다. 

 

목차
1. 개요
2. GMX 토큰
3. GLP 토큰
4. 추천 프로그램
5. 기술 개요
  - Vault
  - Router
  - Price Feed
  - Access Control
6. 의견

 

개요

  • Decentralized spot and perpetual exchange
  • 다중 자산 풀
  • 가격 측정 방식: Chainlink 오라클 및 주요 거래소 가격 집계 활용
  • 주요 참여자 역할
    • Token Holders: 토큰노믹스, 리워드 수령
    • LP: 유동성 제공(GLP 토큰)
    • Traders: Trading

 

GMX 토큰

  • 플랫폼의 유틸리티 및 거버넌스 토큰
  • Staking
    • Reward
      • Escrowed GMX
      • Multiplier Points
      • ETH / AVAX Rewards
    • 거래소 수수료 30% 보상: ETH/AVAX로 전환되어 스테이킹된 GMX 토큰으로 분배
    • Floor Price Fund(가격 하한선 펀드)
      • GMX/ETH 유동성 수수료는 GLP로 변환되어 기금에 예치
      • 올림푸스본드로 부터 수신한 자금의 50%는 FPF에 예치, 나머지 50%는 마케팅에 사용
      • GLP 유동성 보장, GMX에 대한 안정적인 ETH 보상 흐름 제공
    • 공급
      • 최대 공급량: 1,325만 GMX 
        • 6 million GMX from the XVIX and Gambit migration.
        • 2 million GMX paired with ETH for liquidity on Uniswap.
        • 2 million GMX reserved for vesting from Escrowed GMX rewards.
        • 2 million GMX tokens to be managed by the floor price fund.
        • 1 million GMX tokens reserved for marketing, partnerships and community developers.
        • 250,000 GMX tokens distributed to contributo
    • 보상
      • Compound
        • Pending Multiplier Points 와 esGMX 보상을 스테이킹
      • Claim
        • esGMX 보상과 ETH/AVAX 보상 지급
    • Escrowed GMX
      • 1년 베스팅
      • 1초 마다 보상
    • Multiplier Points
      • 장기 보유자에게 보상, 인플레이션 없음
      • GMX를 스테이킹 하면, 100% APR로 매초 포인트 수령
        • 예) 1년동안 1000 GMX 스테이킹하면, 1000 MP 수령
    • 보상 요약
      • GMX: 스테이킹시에 ETH / AVAX, esGMX, Multiplier Points 보상
      • esGMX: 스테이킹시에 ETH / AVAX, esGMX, Multiplier Points 보상
      • Multiplier Points: 스테이킹시에 boost ETH / AVAX APRs 보상
      • GLP: 발행하면서 스테이킹시에 ETH / AVAX, esGMX 보상

 

GLP 토큰

  • 유동성 공급자 토큰
    • 인덱스 자산(스왑 및 레버리지 거래에 사용)으로 발행/상환
  • 가격 = (오픈 포지션의 손익을 포함한 인덱스 자산 총 가치) / (GLP 공급량)
  • 보상: Escrowed GMX 보상 + 플랫폼(ETH, AVAX) 수수료 70%
    • 레퍼럴 보상과 Keeper(1%)의 네트워크 비용 차감
  • GLP 보유자는 레버리지 거래에 유동성 제공

 

추천 프로그램

  • Tier
    • Tier 1: 5% discount for traders, 5% rebates to referrer
    • Tier 2: 10% discount for traders, 10% rebates to referrer
    • Tier 3: 10% discount for traders, 15% rebates to referrer paid in ETH / AVAX, 5% rebates to referrer paid in esGMX
  • Anyone can create a Tier 1 code. To upgrade your code to Tier 2 or Tier 3:
    • Tier 2: At least 15 active users using your referral codes per week and a combined weekly volume above $5 million
    • Tier 3: At least 30 active users using your referral codes per week and a combined weekly volume above $25 million

 

GMX 기술 개요

 

1. Vault

Vault 계약은 예금을 저장하고 주요 거래 기능을 처리합니다.

  • 예금: 자금은 GLP 토큰의 발행을 통해 Vault에 예치됩니다. 예를 들어 GLP의 가격이 $1.50인 경우 사용자는 1.50 USDC 토큰을 입금하여 1 GLP를 발행할 수 있습니다.
  • 출금: GLP 토큰 소각을 통해 금고에서 자금을 출금할 수 있습니다. 예를 들어 GLP 가격이 $1.50인 경우 사용자는 1 GLP를 소각하여 1.50 USDC 토큰으로 교환할 수 있습니다.
  • 교환: 금고는 금고에 보관된 토큰의 교환을 허용합니다. 예를 들어 ETH 가격이 $5000인 경우 사용자는 금고의 스왑 기능을 통해 1 ETH를 5000 USDC로 스왑할 수 있습니다.
  • 롱 포지션: 사용자는 볼트를 사용하여 롱 포지션을 열 수 있습니다. 예를 들어 롱을 오픈하기 위해 사용자는 금고에 1 ETH를 예치하고 $25,000의 포지션을 오픈할 수 있습니다. 포지션 오픈 당시의 ETH 가격이 $5000이면 이는 5배의 롱 포지션이 됩니다. ETH 가격이 10% 상승하면 사용자는 $25,000 * 10% = $2500의 이익을 얻게 됩니다. 포지션이 열릴 때 담보의 스냅샷이 찍히므로 이 예에서 담보는 $5000로 기록되며 ETH 가격이 변경되더라도 변경되지 않습니다. 금고에 이익을 지급할 수 있는 충분한 자금이 있는지 확인하기 위해 포지션 크기에 해당하는 ETH 금액이 예약된 것으로 표시됩니다. 이 포지션의 경우 금고에 5 ETH가 예약됩니다.
  • 숏 포지션: 사용자는 볼트를 사용하여 숏 포지션을 열 수 있습니다. 예를 들어 숏 포지션을 열기 위해 사용자는 5000 USDC를 금고에 예치하고 $25,000의 포지션을 열 수 있습니다. 스테이블 코인은 숏의 담보로 필요하며 롱과 마찬가지로 포지션 크기에 해당하는 스테이블 코인의 양은 이익을 지불하기 위해 예약됩니다.
  • 청산: 포지션 손실로 인해 '포지션 크기/잔여 담보'가 최대 허용 레버리지보다 큰 지점까지 담보가 줄어들면 키퍼가 포지션을 청산할 수 있습니다.

 

2. 라우터

Router 계약은 금고 위에 편리한 기능을 제공합니다. 예를 들어 볼트는 토큰을 전송해야 하며 스왑을 실행하기 위해 호출되는 스왑 함수, 라우터는 토큰을 볼트로 전송하고 필요한 경우 기본 토큰의 랩핑/언래핑을 처리합니다.

PositionRouter 계약은 롱/숏 포지션을 늘리거나 줄이는 두 부분으로 구성된 트랜잭션 프로세스를 처리합니다. 프로세스는 선행 실행 문제를 줄이는 데 도움이 됩니다.

  1. 사용자는 PositionRouter에 위치 증가/감소 요청을 보냅니다.
  2. 키퍼가 거래소 집합체에 지수 가격 요청
  3. 키퍼는 현재 인덱스 가격으로 포지션을 실행합니다.
  4. 허용된 슬리피지 내에서 포지션을 실행할 수 없는 경우 요청이 취소되고 자금이 사용자에게 반환됩니다.

요청 트랜잭션과 실행 트랜잭션 사이에 3분이 경과하면 사용자가 스스로 포지션을 실행할 수 있습니다. 위치 키퍼의 기능은 편의성을 제공하는 것이며 이러한 키퍼 없이도 프로토콜이 계속 작동할 수 있습니다.

스왑의 경우 기본 수수료는 0.25%이며 가격 피드는 0.12% 가격 변동 내에서 업데이트되므로 선행 실행 문제를 줄이는 데 도움이 됩니다. KeeperDAO와 통합하는 작업도 진행 중이므로 가격 업데이트가 차익 거래 기회를 생성하는 경우 차익 거래의 이익을 캡처하여 풀로 리디렉션할 수 있습니다. .

 

3. 가격 피드

PriceFeed 계약은 가격 피드 키퍼의 제출을 수락합니다. 이 키퍼는 Binance, Bitfinex 및 Coinbase의 중간 가격을 사용하여 가격을 계산합니다. 키퍼에는 두 가지 유형이 있습니다.

  • Price feed keeper: 스왑을 위해 정기적으로 가격을 제출합니다.
  • 포지션 키퍼: 포지션 실행 시 가격 제출

볼트는 해당 체인링크 가격의 구성된 비율 내에 있는 경우 키퍼의 가격을 사용합니다. 가격이 이 임계값을 초과하면 제한 가격과 체인링크 가격 사이에 스프레드가 생성됩니다. 이 임계값은 참조 거래소의 중간 가격에서 체인링크 가격의 과거 최대 편차를 기반으로 합니다. 예를 들어 최대 편차가 2.5%이고 Chainlink의 토큰 가격이 $100인 경우 키퍼 가격이 $103이면 금고의 가격은 $100에서 $103입니다. 롱포지션 오픈시 높은가격, 클로징시 낮은가격 숏포지션

Keeper와 Watcher는 현재 별도의 팀원이 운영하고 있으며 Watcher의 신뢰성이 더 확실해짐에 따라 모든 사용자가 Watcher를 실행하여 알림을 받을 수 있습니다. 여러 관찰자 계정은 현재 스프레드를 활성화하기 위해 거래를 보낼 수 있도록 설정되어 있습니다. . 계정이 최소 금액의 GMX 토큰을 걸거나 잠그도록 요구함으로써 스프레드를 시행하기 위해 더 많은 사용자가 트랜잭션을 보낼 수 있도록 하는 것도 가능합니다.

가격 피드 및 포지션 키퍼는 체인링크 키퍼 또는 [Intel SGX](https:/ /medium.com/avalancheavax/new-avalanche-bridge-builds-on-intel-sgx-technology-in-breakthrough-for-cross-chain-8f854e0e72e0) Avalanche에서 사용.

2022년 8월 28일부터 추가 계약 수준 확인이 추가되었습니다. 각각의 빠른 가격 업데이트에서 계약 변수는 업데이트 가격의 백분율 변경과 마지막 업데이트 이후 체인링크 가격의 백분율 변경을 저장합니다. 구성된 임계값으로 Chainlink 가격을 설정하면 빠른 가격과 Chainlink 가격 사이의 스프레드가 자동으로 활성화됩니다. 이에 대한 구성은 Vault.priceFeed.secondaryPriceFeed.maxCumulativeDeltaDiffs에 있습니다.

가격 피드 계약은 보안을 개선하기 위해 업데이트될 수 있으므로 계약 주소를 찾는 가장 신뢰할 수 있는 방법은 'Vault.priceFeed' 값을 확인하는 것입니다.

 

4. 액세스 제어

팀에서 제어하는 컨트롤러 계정으로 조정할 수 있는 매개변수:

  • 최대 5%까지 스왑 및 마진 거래 수수료 설정
  • GLP 풀에 대한 토큰 가중치 설정, 토큰 가중치는 스왑의 동적 수수료에 영향을 미치며, 이러한 수수료는 지정된 토큰 가중치에 대한 균형을 증가시키는 스왑이 낮아지는 반면 토큰 가중치를 원하는 금액은 더 높은 수수료가 부과되며 계산 세부 정보는 Vault.vaultUtils.getSwapFeeBasisPoints에서 확인할 수 있습니다.
  • 긴급 사용을 위한 스왑 또는 레버리지 거래 일시 중지
  • 최대 허용 레버리지 설정
  • 롱포지션과 숏포지션의 최대 총 수용량 설정

팀에서 제어하는 Timelock에서 조정할 수 있는 매개변수:

  • 신규 토큰 상장
  • Vault.priceFeed 업데이트
  • 'Vault.vaultUtils' 업데이트, VaultUtils 계약은 포지션 개시 및 마감을 검증하고 수수료 계산 방법도 지정합니다.
  • gov 값 업데이트

Timelock은 작업의 전체 세부 정보가 온체인에서 신호를 받는 시점과 작업이 실행되는 시점 사이에 24시간의 간격을 요구함으로써 작동합니다. 예제 흐름은 다음과 같습니다.

  • Timelock.signalSetPriceFeed가 호출되어 Vault 주소와 새 가격 피드의 주소를 지정합니다.
  • 최소 24시간이 경과해야 합니다.
  • Timelock.setPriceFeed를 호출할 수 있으며, 이는 Vault.priceFeed 값을 업데이트합니다.

혹시라도 발생할 수 있는 문제에 빠르게 대응할 수 있도록 24시간을 선택했습니다.

Timelock 컨트랙트는 팀 구성원에 의해 모니터링되며 Timelock.SignalPendingAction 이벤트를 구독하여 코딩 없이 누구나 모니터링할 수 있습니다. 이는 OpenZeppelin Sentinel을 사용하여 수행할 수 있습니다. Timelock 계약은 계약의 gov 값을 확인하여 찾을 수 있습니다.

악의적인 트랜잭션이 전송되는 경우 풀의 모든 자금이 손상될 수 있습니다. 이를 완화하기 위해 사용자 자금에 영향을 줄 수 있는 모든 작업은 위에서 언급한 신호, 시간 간격, 실행 프로세스를 거쳐야 합니다. 모니터링 프로세스 또는 Bug Bounty를 통해 악의적인 거래가 감지되면 고문 및 커뮤니티 구성원으로 구성된 다중 서명을 사용하여 Timelock.admin을 재정의할 수 있습니다. 값, 이것은 조치가 실행되는 것을 방지합니다. 이것은 필요하지 않을 때 거래를 일시 중지하는 것과 같은 조치에도 적용되며, 이 경우 관리자를 다중 서명으로 교체하고 거래를 다시 활성화할 수 있습니다.

 

의견

  • 거래소 수수료를 참여자(Staker 30%, LP 70%)들에게 보상하고, 추천 프로그램 등으로 빠르게 이용자를 확보하였습니다.
  • 소스코드가 잘 정리되어 있습니다만 Contract Audit 레포트에 작은 이슈들이 다수 발견 되었습니다.
  • 모든 정책을 GMX.io에서 관리하므로 탈중앙화 및 규제 이슈가 있습니다.

 

참고

  1. 홈페이지: https://gmx.io/
  2. 거래소: https://app.gmx.io/#/trade
  3. 문서: https://gmxio.gitbook.io/gmx/
  4. 기술문서: https://gmx-io.notion.site/gmx-io/GMX-Technical-Overview-47fc5ed832e243afb9e97e8a4a036353
  5. Audit: https://github.com/gmx-io/gmx-contracts/blob/master/audits/Quantstamp_Audit_Report.pdf
  6. 기술 분석: https://liamhieuvu.com/how-gmx-limit-order-and-long-short-work
  7. 토큰 분석: https://rileygmi.substack.com/p/gmx
  8. 토크노믹스 분석: https://twitter.com/eli5_defi/status/1546875347668414471/photo/1

 

기타 문의 사항 등은 덧글 달아주시구요.

도움이 되셨으면 ♥ 눌러주세요.   

반응형
Posted by ITBJ
IT/Blockchain2022. 9. 30. 17:22
반응형
Posted by ITBJ