안녕하세요. IT반장입니다.
이번 글에서는 탈중앙화거래소 중에서 속도가 빠르고 최근 TVL이 가장 높은 dYdX에 대해서 알아보겠습니다.
1. 개요 |
1. 개요
- 목표
- 사용자들이 중간자 개입 없이 자신만이 거래에 대한 권한을 가질 수 있는 강력하고 전문적인 거래소 구축
- 전 세계 어디에서도 사용할 수 있는 트레이딩 플랫폼
- 설립자 Antonio Juliano
- 전 Uber 개발자이자 Coinbase 소프트웨어 엔지니어인 Antonio Juliano는 2017년에 플랫폼을 설립했으며 2019년에 프로토콜을 출시
- 탈중앙화 금융(DeFi) 세계에 마진 거래를 도입하기로 결정하고 dYdX에 대한 아이디어를 구상
- 본사는 미국 샌프란시스코
- dYdX Foundation은 스위스 추크에 위치
- 미국을 포함하여 제한된 국가는 서비스 안함
- 취급하는 암호화폐: 37개(2022.09.22 현재)
- 마진 거래: 10x ~ 20x
- 수수료: 무료(~10만 달러/월)
- 서비스 사고 및 다운타임에 대해서 공지하고 있음(참고[2])
- 데이터 센터: AWS AP-NORTHEAST-1 리전(도쿄)
- 미국 IP는 엄격히 제한함
2. 아키텍쳐
- dYdX는 StarkEx (Ethereum Layer2 ZK-Rollup or Validium data-availability modes)를 연동함(참고[3])
- StarkEx Solution Architecture
- StarkWare(StarkEx) 에서 컨트랙트 관리 및 검증을 수행함
- 거래소는 거래를 매칭하여 제출함
- StarkEx High-Level Architecture
- 이용자의 자금을 악의적인 거래소가 훔칠 수 없도록 하면서도 고속 거래 및 낮은 수수료를 보장
- 머클 트리 기반의 검증 방식 사용 (Fact Registry, 참고[4])
- StarkEx Smart Contract Architecture
- Proxy Contract: 상태 정보 및 관련 컨트랙트 정보 저장(solidity proxy pattern, 참고[5])
- Dispatcher Contract: 업그레이드 가능한 컨트랙트 구현 패턴(diamond standard, 참고[6])
- Sub-Contracts: StarkEx 에서 필요한 기능들이 구현된 컨트랙트들
- Verifier Fact-Registry: Fact Registry를 검증하는 컨트랙트
- Committee Fact-Registry: Fact Registry를 등록하는 컨트랙트
- StarkEx Back End Architecture
- Gateway: 거래소로 부터 Tx를 수신
- Batching & Validation: 배치 작업 및 Tx 검증
- Baches info: 배치 정보 공개
- Changes Approval GW: 사용자 지정 오프체인 로직을 사용할 수 있도록 함(위원회 승인 필요)
- Proving: 외부 증명 서비스를 통해 상태 전환 증명 생성, 온체인 검증자(Fact Registry)에 등록
- Packing: 블록체인에 전송할 데이터(주소, payload 등)를 묶음
- Blockchain Writer: 보낼 데이터에 네트워크 정보(가스, nonce, 서명 등)를 포함하여 블록체인에 전송
- Catcher: 블록체인을 모니터링하여 배치 모듈에 내용 전달
- StarkEx Partner Integration
- Front End: 사용자 요청에 대해 온체인(이더리움)과 오프체인(StarkEx) 둘 다 지원해야 함
- 일반적으로 사용자가 온체인 요청을 하면 백엔드에서는 오프체인 요청이 되도록 구성
- Order Verification: 사용자 주문 확인(서명, 잔액, 금고ID 등)
- Business Logic: StarkEx에 전달할 Tx 처리 및 계정 상태 업데이트
- TX Stream: 0부터 시작하는 tx_ids라는 연속적인 식별자로 유효성을 검사하고, 인덱싱
- Tx Sender: StarkEx Gateway에 Tx 전송 (비동기식)
- Error Handler: 유효하지 않은 거래 정보를 수신하여 이전 상태로 복원
- State Approval: 모든 배치를 블록체인으로 전송하기 전에 승인하는 절차
- Censorship Prevention: 검열 방지를 위해 사용자가 특정 작업을 블록체인 상의 StarkEx 컨트랙트에 직접 제출 가능하도록 함
3. 무기한 계약(Perpetual Contracts)
- dYdX는 다양한 자산에 대한 비보관형 탈중앙화된 마진 상품을 제공
- Margin(증거금)
- 담보는 USDC로 보유
개시 증거금 요건 = abs(S × P × I)
유지 증거금 요건 = abs(S × P × M)
총 개시 증거금 요건 = Σ abs(S i × Pi × I i )
총 유지 마진 요구 사항 = Σ abs(S i × P i × M i )
총 계정 가치 = Q + Σ (S i × P i )
무료 담보 = 총 계정 가치 - 총 개시 증거금 요구 사항
S 포지션 크기입니다(롱이면 양수, 숏이면 음수)
P 시장에 대한 오라클 가격입니다
I 는 시장의 개시 증거금 비율입니다.
M 는 시장에 대한 유지 마진 비율입니다.
- Liquidations(청산)
종가(숏) = P × (1 + (M × V / W))
종가(롱) = P × (1 − (M × V / W))
P 시장에 대한 오라클 가격입니다
M 는 시장에 대한 유지 마진 비율입니다.
V 위에서 정의한 총 계정 가치입니다.
W 위에서 정의한 총 유지 증거금 요구 사항입니다.
- Funding(펀딩)
- 롱 과 숏 거래자 사이에 교환
- 펀딩 비율은 1시간 비율로 표시
- 펀딩 비율 계산
프리미엄 = (최대(0, 임팩트 입찰가 - 지수 가격) - 최대(0, 지수 가격 - 임팩트 매도호가)) / 지수 가격
Impact Bid Price = 임팩트 명목 가치의 시장 매도 평균 실행 가격
임팩트 매도호가 = 임팩트 명목 가치의 시장 매수에 대한 평균 실행 가격
영향 명목 금액 = 500 USDC / 개시 증거금 비율
펀딩 비율 = (프리미엄 요소 / 8) + 이자율 요소
- Contract Loss Mechanisms(계약 손실 메커니븜)
- 변동성이 크게 되면 일부 계정의 가치는 0 아래로 떨어질 수 있음
- 보험 기금으로 손실 부담
- 보험 기금이 고갈된 경우 가장 높은 이익과 레버리지를 가진 포지션으로 마이너스 잔고 계정을 상쇄할 수 있음
- Oracle Prices(오라클 가격)
- 각 거래 후 각 계정이 잘 담보되었는지 확인
- 계정을 청산해야 하는 시점 결정
- 15개의 독립적인 Chainlink 노드로 계산
- Index Prices(지수 가격)
- 펀딩 비율 계산
- Stop-Limit and Take-Profilt 주문과 같은 트리거 가능한 주문 트리거(촉발)
4. 보안
- PeckShield 에 외부 감사(참고[7])
5. 평가
- 중앙화된 거래소의 빠른 거래 속도와 탈중앙화된 거래소의 스마트 컨트랙트 방식을 하이브리드 형태로 제공하는 DEX 서비스
- 기술적으로 완전 탈중앙화가 아닌 자체 거래소 구축 모듈에 의존하는 방식이므로 다양한 문제가 발생할 수 있음
- 이용자 보호를 위한 보험 및 추가적인 보호 방식을 제공하지만 공격 발생시 실효적으로 대응하기 어려운 것으로 판단됨
참고 목록
[1] 홈페이지: https://trade.dydx.exchange/
[2] 서비스 제공 상태: https://status.dydx.exchange/uptime
[3] StarkEx: https://docs.starkware.co/starkex/
[4] StarkEx Fact Registry: https://docs.starkware.co/starkex/fact-registry.html
[5] Solidity Proxy Patterns: https://blog.openzeppelin.com/proxy-patterns/
[6] Diamond Standard: https://hiddentao.com/archives/2020/05/28/upgradeable-smart-contracts-using-diamond-standard
[7] dYdX security audit: https://github.com/starkware-libs/starkex-contracts/blob/master/audit/StarkPerpetual_v1.0_Audit_Report.pdf
문서 이력
- v1.0 (20220922) : 최초 등록
도움이 되셨다면
눌러 주세요. ^^
'IT > Blockchain' 카테고리의 다른 글
[Blockchain][DAO] 탈중앙화 자율조직 DAO 현황 및 이슈 (0) | 2022.09.30 |
---|---|
[Blockchain][DeFi] 탈중앙화 금융 알파카(Alpaca) 분석 (0) | 2022.09.27 |
[Blockchain][DeFi] 디파이 메이커다오(MakerDAO) 분석 (1) | 2022.09.21 |
[책] mastering bitcoin 2nd editon 무료 보기 (0) | 2018.04.26 |
[Ethereum] geth(go ethereum) help (0) | 2018.03.28 |