자동 가격책정 리저브를 소개합니다

Anton Buenavista
Kyber Network
Published in
7 min readJan 23, 2019

카이버 내 리저브를 보다 활성화 시키기 위해, 새로운 유형의 리저브 ‘자동 가격책정 리저브(Automated Price Reserve — APR)’를 소개합니다. 해당 리저브는 블록체인 프로젝트들이 보다 쉽고 편하게 리저브를 관리할 수 있도록 도와줍니다. 이번 글에서는 APR을 만드는 방법과 스펙 그리고 카이버가 왜 APR을 만들게 된 것인지 마지막으로 카이버 유동성 네트워크의 현재 상황에 대해 말씀 드리고자 합니다.

APR 작동 방식

자동 가격책정 리저브는 카이버가 개발한 스마트 컨트랙트 상 알고리듬을 기반으로 암호화폐 가격을 책정합니다. 토큰의 가격은 실시간으로 일어나는 거래와 이더/토큰 잔고를 기반으로 계속해서 갱신됩니다.

최초 이더와 암호화폐가 공급되면, 거래가 일어나기전까지는 가격이 변하지 않습니다. 가격은 이더의 시장 가격 및 시장 상황 (매수세가 많은지, 매도세가 많은지) 등에 의해 결정됩니다.

아래 그림1은 초기 이더와 토큰 수량과 거래에 따라 토큰 가격이 어떻게 변하는지를 설명하는 그림입니다.

그림 1: 가격 함수(잔고와 거래 현황에 따라 가격이 어떻게 변화 하는 지를 나타냄)

APR을 만들기 위해서는

APR을 구성하려면 단 3 단계면 됩니다. 첫 째, KyberReserve.sol 그리고 LiquidityConversionRates.sol 두 개 스마트 컨트랙트를 블록체인에 배포해야 합니다. 둘 째로, 리저브 매니저는 이더와 토큰을 리저브 컨트랙트에 입금해야 합니다. 마지막으로, 리저브 매니저는 LiquidityConversionRates.sol 컨트랙트에 있는 SetLiquidityParams() 함수를 호출해야 합니다. 그렇게 되면 리저브는 자동으로 잔고가 소진 될 때까지 마켓메이킹을 수행하게 됩니다. setLiquidityParams() 함수는 리저브가 구성될 때 그리고 잔고가 다시 채워질 때마다 호출해주어야 합니다.

리저브 매니저는 처음에 입금할 이더 및 토큰의 양과 APR의 파라미터만 설정하면 됩니다. 구체적으로는 다음의 정보들을 결정해야 합니다.

  1. Liquidity Rate (유동성 비율)
  2. Initial Ether Amount (최초 이더 수량)
  3. Initial Token Amount (최초 토큰 수량)
  4. Initial Token Price (최초 토큰 가격)
  5. Minimum and Maximum Supported Price Factor (최소 최대 가격)
  6. Maximum Buy and Maximum Sell Amount in a Trade (1회 최대 거래 가능 수량)
  7. Fee Percentage (수수료율)

위 정보는 setLiquidityParams() 함수에 활용됩니다.

파라미터 관련 설명

파라미터들은 다음과 같습니다:

function setLiquidityParams(uint _rInFp, uint _pMinInFp, uint _numFpBits, uint _maxCapBuyInWei, uint _maxCapSellInWei, uint _feeInBps, uint _maxTokenToEthRateInPrecision, uint _minTokenToEthRateInPrecision)

몇 가지 알아둬야할 파라미터가 있습니다. 첫 째로, 몇 개 파라미터들은 뒤에 InFp가 적혀 있습니다. InFp는 공식의 정밀도를 의미합니다. 240으로 세팅하기를 추천드립니다.

r은 베이시스 포인트에서 혹은 100단위의 갸격 수량이 1이더만큼의 거래가 일어날 때 생기는 가격 변동 비율입니다. 0.01r의 경우, 가격은 1%만큼 변합니다. r은 초기 ETH와 토큰의 양, 원하는 최소/최대 가격 비율을 고려하여 계산됩니다. r이 적으면 적을 수록 보다 많은 이더와 토큰이 유동성을 공급하는 데 필요하게 됩니다.

최소/최대 가격 비율은 0.5:2.0으로 초기 세팅하실 것을 추천드립니다. 이는 잔고가 이더 기준 가격의 100% 상승과 50% 하락까지는 자동으로 처리됨을 의미합니다.

아래는 토큰 가격이 0.00004256 ETH일 때의 예시입니다:

설치 가이드

APR에 대한 더 자세한 가이드는 개발자 문서를 참고해주세요. 피드백이나 궁금증이 있으시다면, 카이버 개발자 텔레그램 그룹을 방문해 주세요.

APR 개발 동기

첫 번째 리저브 유형인 Fed Price Reserve는 네트워크 상에서 초기 유동성을 공급할 수 있는 수단입니다. 업체들은 리저브를 완전히 온체인으로 구현해 생태계에 유동성을 공급할 수 있습니다. 하지만 Fed Price Reserve는 운영에 있어 개발 공수나 능숙하게 다룰 수 있도록 요구되는 초기 학습량이 비교적 컸습니다. 오프체인 서버나 온체인 상의 스크립트 또한 가격을 받아오기 위해 운영해야 하는 필요성도 있습니다.

Fed Price Reserve와는 다르게 APR(자동 가격책정 리저브)은 개발 유지 편의성을 최우선에 놓고 개발되었습니다. 또한 APR은 교환비 또한 스마트 컨트랙트를 통해 모두 온체인으로 진행됩니다. 다시 말해, 리저브 매니저는 앞서 말한 개발 공수 없이 보다 쉽고 간편하게 리저브를 운영할 수 있게 되었습니다.

하지만 여기에도 트레이드 오프는 있습니다. 리저브 매니저는 미리 정의된 스마트 컨트랙트 상의 알고리듬을 따라야 하기 때문에 이전보다 커스터마이징 할 수 있는 부분은 줄어들게 됩니다. 다른 APR의 트레이드 오프는 이더와 토큰이 자동으로 마켓메이킹되어 운영되기 때문에 기존의 방식에 비해 좀 더 많은 운영 비용이 소요된다는 것입니다. 또한 여러 종류의 암호화폐 리저브를 운영하고 싶다면, 각 토큰 별로 각기 다른 APR을 배포해야 합니다.

APR은 다른 중앙/탈중앙 암호화폐 거래소에 상장되어 있지 않아, 아직 가격이 형성되어 있지 않은 암호화폐의 가격을 형성할 수 있게 설계 되었습니다. 구매자와 판매자의 상호 작용에 따라 가격은 실시간으로 형성됩니다.

유동성 풀을 키워 나갑니다

APR은 카이버 생태계에 참여하는 유동성 공급자들이 선택할 수 있는 여러 옵션 중 하나 입니다. 만약 좀 더 많은 통제권과 커스터마이징을 원한다면 기존의 Fed Price Reserve를 사용하면 되고, 개발/운영 편의성이 더 중요한 우선순위라면 APR을 선택하면 됩니다.

빅봄(BigBom)은 APR을 활용한 첫 번째 프로젝트 입니다. 미다스(Midas), DCC(Distributed Credit Chain), 디터(Dether), 어비스(The Abyss) 와 같은 프로젝트들도 APR을 활용할 예정입니다. 현재까지 16개의 리저브가 카이버 유동성 풀에 참여하고 있습니다.

앞으로 더 많은 유동성 공급자들과의 협업이 이루어질 예정이며, 이를 통해 카이버는 생태계 내 공유 유동성 풀을 계속해서 키워나가고자 합니다. 더 많은 유동성이 공급되고, 더 많은 암호화폐 환전이 여러 플랫폼에서 일어날 것이며 이를 통해 탈중앙화 어플리케이션의 발전과 도입을 앞당길 예정입니다. APR을 통해 더 많은 유동성 참여자들과 함께 할 수 있어 기쁘게 생각합니다.카이버네트워크 란

카이버의 온체인 유동성 프로토콜은 다양한 DApp과 플랫폼 간 아토믹 스왑을 가능케 합니다. 카이버 유동성 풀에 토큰 홀더를 포함해 누구나 기여할 수 있으며, 간단한 연동을 통해 DApp과 프로젝트들은 유동성을 활용할 수 있습니다. 카이버는 암호화폐가 언제 어디서든 쓰일 수 있는 미래를 만들고 있습니다.

레딧: https://www.reddit.com/r/kybernetwork/

트위터: https://twitter.com/kybernetwork/

텔레그램 그룹: https://telegram.me/kybernetwork

웹사이트: https://kyber.network/

--

--