뱅커 (Bancor)알고리즘에 대해서 알아 보기 Part. 3

Juno
EOS Chrome
Published in
8 min readDec 6, 2018

--

안녕하세요. IBCT EOS CHROME 팀의 Juno 입니다. 뱅커 알고리즘 Part 1, Part 2에 이어서 이번 뱅커 알고리즘 시리즈의 대미를 장식할 Part 3. 포스팅을 시작해 보겠습니다. 앞서 Part 1, 2를 아직 읽지 못하신 분들은 아래 링크로 뱅커 알고리즘의 기본 원리에 대해 읽어보실 수 있습니다.

Part 1. 뱅커 알고리즘에 대한 전반적인 설명과 Connector Weight 분석

Part 2. 뱅커 알고리즘을 통한 매수/매도 절차 설명

Part 3. 뱅커 Relay에 대한 설명

Part 1, 2에서 설명한 1개의 뱅커 알고리즘은 토큰 자판기와 같습니다. 반면, 뱅커 릴레이는 2개의 뱅커 알고리즘이 연동되는 형태로 자동화된 분산화 거래소와 같습니다. 앞서 설명한 콜라 자판기를 예로 들어 설명해 보겠습니다. 1개의 뱅커 알고리즘은 양방향 거래가 가능한 콜라 자판기와 같습니다. 돈을 넣으면 콜라가 나오고 콜라를 넣으면 돈이 나오는 거래가 가능합니다. 반면, 뱅커 릴레이는 모든 종류의 거래가 가능한 자동화 거래소와 같습니다. 어떤 종류의 거래에 특화된 뱅커 릴레이냐에 따라 콜라를 넣으면 팹시를 받을수도 있고 오렌지 주스를 받을수도 있습니다.

콜라를 넣으면 팹시가 나오는 뱅커 릴레이를 구현하기 위해서 두 개의 뱅커 알고리즘이 필요합니다. 첫번째로, 콜라를 뱅커 알고리즘 A에 넣으면 Connecting Token이 자동으로 발행됩니다. 이 Connecting Token은 사람들이 사용할 수 있는 토큰이 아니라 시스템 상에만 존재하는 토큰입니다. 두번째로, 발행된 Connecting Token은 뱅커 알고리즘 B로 전달됩니다. 마지막으로, 지불된 Connecting Token양에 따라 뱅커 알고리즘B는 예치되어 있는 팹시를 제공하게 됩니다.

실제 뱅커 릴레이를 사용하는 EOS RAM Market을 예로 들어 차근차근 설명을 진행해 보겠습니다.

뱅커 릴레이를 사용한 이오스 램 마켓

EOS RAM Market의 뱅커 릴레이 구조

뱅커 릴레이에서 사용되는 주요 컴포넌트는 다음과 같습니다:

  1. Connecting Token: Ramcore (단위: 원)
  2. Bancor Algorithm 1: Ramcore 기반 EOS 저장
  3. Bancor Algorithm 2: Ramcore 기반 RAM 저장

이해를 돕기 위해 Ramcore라는 Connecting Token은 원화로 표시를 하여 설명을 진행하도록 하겠습니다. 이번 설명에서는 Ramcore = 원화 라고 생각하시면 됩니다. Bancor Algorithm 1은 250개의 EOS를 저장하고 있고 1개 EOS의 가격은 Ramcore(단위: 원)으로 표기 되어 있습니다. Bancor Algorithm 2는 250 GB만큼의 RAM을 저장하고 있고 1GB RAM의 가격은 Ramcore(단위: 원)으로 표기 되어 있습니다.

매우 중요한 뱅커 릴레이의 특징은 100%의 Ramcore의 가치가 50,000원으로 고정 되어 있다는 것입니다. 예를 들어, EOS가 파란색 Bancor Algorithm 1 으로 유입이 되고 그에 상응하는 금액의 RAM이 빨간색 Bancor Algorithm 2 으로 유출되는 경우에도 전체 Ramcore의 가치( 50,000원)는 변하지 않습니다.

앞서 Part 1, 2 에서 자세히 설명한 Connector Weight (CW)라는 개념 역시 뱅커 릴레이에서 사용 됩니다. 현재 각 Bancor Algorithm 1, 2의 CW는 50%로 셋팅 되어 있습니다. 이 뜻은 파란색 Bancor Algorithm 1에 저장된 전체 EOS 가치를 전체 Ramcore의 가치 중 50%인 25,000원으로 보증한다는 의미 입니다. 같은 맥락으로 빨간색 Bancor Algorithm 2에 저장된 전체 RAM 가치를 나머지25,000원 으로 보증한다는 의미 입니다. 결국, 각각의 Bancor Algorithm1, 2에 저장되어 있는 EOS와 RAM은 수량에 상관 없이 항시 Ramcore = 25,000원의 가치를 유지하게 됩니다.

뱅커 릴레이 거래에서 변하지 않는 상수를 정리해 보면 다음과 같습니다:

  1. Ramcore의 50,000원 가치
  2. 각 Bancor Algorithm 의 50% Connector Weight
이오스 램마켓 뱅커 릴레이 Step 1, 2

자 이제 뱅커 릴레이를 사용하여 EOS로 RAM을 구매해 보겠습니다. 먼저, 50개의 EOS를 파란색 Bancor Algorithm 1에 넣습니다. 그러면 이제 파란색 부분에 저장되어 있는 EOS는 250개에서 300개로 늘어나게 됩니다. 저장 되어있는 EOS가 늘어나게 되면 총 가치는 25,000에서 30,000원으로 상승하게 됩니다. 반면 빨간색 RAM 부분 Bancor Algorithm 2의 가치에는 아무런 변화가 없습니다. 하지만, 순간적으로 전체 Ramcore 가치가 50,000원 에서 55,000원으로 상승을 했기 때문에 각 Bancor Algorithm의 CW가 50%를 이탈하는 현상이 발생 합니다.

이오스 램마켓 뱅커 릴레이 Step 3, 4

앞서 말한 뱅커 릴레이 특성상 Ramcore는 반드시 50,000원의 가치를 유지해야 하며 각 Bancor Algorithm 1, 2역시 50% CW 을 유지해야 합니다. 따라서, 55,000원의 Ramcore가치는 5천 원에 상응하는 50GB의 RAM을 빨간색 Bancor Algorithm 2의 저장소에서 구매자에게 제공하게 됩니다. 따라서, Ramcore의 총 가치는 다시 50,000원으로 돌아오게 됩니다.

그러면 이제 각 Bancor Algorithm 1, 2의 CW을 50%로 맞추어 주어야 합니다. 100% Ramcore = 50,000원의 50%이기 때문에 각 Bancor Algorithm 1, 2는 25,000원의 가치를 가져야 합니다. 따라서,저장되어 있는 전체 EOS와 RAM의 가치가 각각 25,000원이 되도록 EOS의 가격과 RAM의 가격을 조절해 줍니다. 이 경우, 1개의 EOS의 가치는 100원에서 83.3원으로 내려가게 됩니다. 그리고 1GB RAM의 가치는 125원으로 올라가게 됩니다. 결론적으로, EOS는 상대적으로 가격이 더 저렴하게 되고 RAM은 상대적으로 더 비싸지게 되어 1개의 EOS로 구입할 수 있는 RAM의 양이 줄어들게 됩니다. 시장의 원리에 따라 공급이 많아지는 부분의 가격이 낮아지고 수요가 많아지는 부분의 가격이 높아지게 되는 것입니다.

이번 예제는 설명의 단순화를 위해 50 EOS를 지불하면 50 GB의 RAM을 구매하게 된다는 가정을 했지만 실제로 뱅커 릴레이에서 사용하는 가격 책정 방식과는 다소 차이가 있습니다. 뱅커 알고리즘은 적분 개념을 도입하여 가격을 책정하게 됩니다. 다시 말하자면, 50 EOS 만큼의 RAM을 구매한다고 가정할 경우 EOS의 최소 단위인 0.0001 EOS가 파란색 Bancor Algorithm 1에 저장 될때마다 Ramcore(원)으로 매긴 EOS의 가격과 RAM의 가격이 미세하게 올라가게 됩니다. 50 EOS 만큼 RAM을 구입한다는 것은 다음과 같은 계산을 500,000번 진행하는 것과 같습니다.

0.0001 EOS x 1 GB Ram/EOS+ 0.0001 EOS x 0.9999 GB Ram/EOS + 0.0001 EOS x 0.9998 GB Ram/EOS …

매번 Bancor Algorithm 1, 2의 EOS와 RAM 저장소 양이 변화함에 따라 상대적 가격이 즉각적으로 변하게 됩니다. 그리고 이오스 램마켓 뱅커 알고리즘의 가격 변동폭과 변동 속도를 짐작해 볼 수 있는 개념들은 Part 1에서 언급한 Price Slippage 외에도 Liquidity Depth란 개념이 존재 합니다. Liquidity Depth는 각 Bancor Algorithm에 미리 저장되어 있는 재화의 양을 말합니다. 위 예제의 경우에는 미리 저장되어 있는 EOS와 RAM을 말하는 것입니다. 미리 저장되어 있는 EOS와 RAM이 많으면 많을 수록, Bancor Algorithm에 새로 추가 및 제공되는 EOS와 RAM이 가격 변동에 미치는 영향이 줄어들게 됩니다. 마치 작은 찻잔과 세숫대야에 동일 양의 물을 담으면 작은 찻잔에 담긴 물의 높이 변화가 세숫대야에 담긴 물의 높이 변화보다 훨씬 큰 것과 같습니다.

결론

지금가지 뱅커 (Bancor)알고리즘에 대해서 알아 보기 Part 3 시리즈, 뱅커 릴레이에 대해서 알아 보았습니다. 뱅커 알고리즘을 보다 다양한 거래에 사용할 수 있도록 디자인된 뱅커 릴레이는 현재 탈 중앙거래소 및 EOS RAM Market에서 P2P거래 및 거래소 Orderbook 기반 거래를 대체할 용도로 사용되고 있습니다. 시장의 가격 결정력을 그대로 가지고 오지만 너무 심한 간접비용이 들지 않고 사용자의 입장에서 모든 거래는 즉각적으로 이루어 진다는 점을 미루어 보아 매우 혁신적이며 실험적인 시도라는 생각이 듭니다. 앞으로 뱅커 알고리즘 그리고 뱅커 릴레이의 새로운 시도를 모니터링하여 독자들에게 꾸준히 전달해 드리도록 하겠습니다. 지금까지 EOS CHROME 팀의 Juno 였습니다. 감사합니다!

--

--