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

안녕하세요. IBCT EOS CHROME 팀의 Juno 입니다. 뱅커 알고리즘 Part 1. 포스팅에 이어서 Part 2. 포스팅을 시작해 보겠습니다.

Part 1. 뱅커 알고리즘에 대한 전반적인 설명과 Connector Weight 분석
Part 2. 뱅커 알고리즘을 통한 매수/매도 절차 설명
Part 3. 뱅커 Relay에 대한 설명

이번 Part 2. 포스팅에서는 뱅커 알고리즘을 통해 사람들이 토큰 매수 및 매도를 진행 할 때 어떤 방식으로 토큰의 수량과 가격이 결정 되는지 알아 보도록 하겠습니다. 예제를 통한 설명을 진행하기에 앞서 Part 1. 에서 설명한 개념을 정리해 보도록 하겠습니다.

우선 Part 1과 Part 2에서 설명하는 뱅커 알고리즘은 Part 3에서 설명할 뱅커 릴레이와는 살짝 다른 개념입니다. Part 1과 2에서 설명하는 뱅커 알고리즘은 사람과 자판기 사이의 거래로 보시면 됩니다. 콜라 자판기를 생각해 보죠. 돈을 넣으면 코카 콜라 자판기에서는 팹시가 나오지 않습니다. 코카콜라가 나오죠. 반면 Part 3 에서 설명할 뱅커 릴레이는 콜라를 넣으면 팹시가 나오는 다른 유형의 거래 입니다.

Part 1,2의 뱅커 알고리즘이 자판기와 다른 점이 있다면 자판기는 원화를 넣으면 코카콜라가 나오지만 코카 콜라를 넣으면 돈을 도로 뱉지는 않습니다. 반면, 뱅커 알고리즘은 양 방향 거래가 가능합니다. 가상의 HIT 토큰과 비트코인이 연동 된 뱅커 알고리즘에 HIT 토큰을 뱅커 알고리즘에 넣으면 그에 상응하는 비트코인이 나오고, 비트코인을 넣으면 HIT 토큰이 나오게 됩니다. 거래가 어떻게 진행 되는지 그래프를 사용하여 자세히 설명해 드리도록 하겠습니다.

CW:50% (HIT 토큰의 한 단위: 1개)

위 그래프와 차트는 Part 1에서 설명한 Connector Weight이 50%으로 설정 되어 있을 때의 가격 변화를 나타 냅니다. CW가 50%인 경우에는 전체 HIT 토큰 발행량의 50% 가치를 뱅커 보증금으로 보증을 하게 됩니다. 전체 HIT 토큰 발행량이 1,000, 뱅커 보증금이 25,000원인 경우 전체 발행량의 50%, 즉 500 HIT 토큰이 25,000원의 가치를 갖게 됩니다.

CW:50% (HIT 토큰의 한 단위가 1이 아닌경우)

위 그래프를 조금 자세히 들여다 보도록 하겠습니다. HIT 토큰을 1 개 추가 발행한다고 하였을 때 점 1은 점 2로 바뀌게 됩니다. 그러면 점 1에서 책정된 HIT 토큰 가격, 1 HIT = 50원은 점 2에서 1 HIT = 50.05원으로 상승하게 됩니다. 그리고 이 가격 상승을 위해 선 1–2의 아래 면적인 A만큼의 금액이 추가로 뱅커 보증금에 예치 되어야 합니다. 위 내용을 발행 전과 1개 HIT 발행 후로 나누어서 정리하자면 다음과 같습니다:

<발행 전: 점 1>

뱅커 보증금: 25,000 원
총 HIT 발행량: 1000 개
HIT 가격: 50 원
CW: 50%

<발행 후: 점 2>

뱅커 보증금: 25,000 원 + A원
총 HIT 발행량: 1000 + 1개
최종 HIT 가격: 50.05 원
CW: 50%

여기서 주의해야 할 점은 점 1에서 사용자가 HIT 토큰을 1개 더 추가로 구입하여 점 2로 이동을 할 때 50원 보다 살짝 더 높은 금액을 지불하게 됩니다. 그 이유는 선1–2가 양의 기울기를 가지고 있기 때문입니다. 이 말이 조금 이해하기 힘들 수 있는데요. 좀 더 풀어서 설명해 보겠습니다. 가상화폐의 특성상 HIT 토큰 1개는 무수히 작은 토큰으로 나뉠 수 있습니다. 소숫점 3자리까지 분할이 가능한 토큰이라고 가정을 해 보겠습니다. 그렇다면 1000개에서 1001개 사이의 1000.001, 1000.002, 1000.003 ….. 1000.998, 1000.999 와 같은 매우 자잘한 HIT 토큰이 뱅커 알고리즘 자판기에서 인출 될 때마다 아주 미세하게 HIT 토큰 가격을 바꾸게 됩니다. 매우 작은 HIT 토큰 수량 단위 를 dQ라고 하고 매우 작게 변동하는 가격을 dP라고 정해보겠습니다. 그러면 사용자는 총 1개의 HIT 토큰을 구매하기 위해 1000개 ~ 1001개 사이의 모든 dQ x dP의 합만큼 금액을 지불해야 하는 것입니다. 결국 선 1–2 아래 면적에 해당하는 만큰 뱅커 보증금을 지불을 해야만 최종적으로 HIT 토큰 1개를 추가 발행 받을 수 있는 것입니다. 이러한 수학적 개념이 바로 저희가 고등학교 시절 배운 “적분” 입니다.

실제 뱅커 알고리즘에서 사용하는 수학 공식을 사용하여 설명해 드리도록 하겠습니다. 공식은 다음과 같습니다.

뱅커 알고리즘 공식

이해를 돕기 위해 토큰을 구입하는 경우와 토큰을 판매하는 경우로 나누어서 설명을 진행하겠습니다. 공식(1)의 경우 새로 추가되는 보증금액에 따라 몇 개의 토큰이 발행되는가에 대한 공식입니다. 공식(1)을 뒤집게 되면 공식 (2)가 도출되는데요. 공식 (2)는 뱅커 알고리즘에 유입되는 토큰 양에 따라 얼만큼의 보증금액을 되 돌려주는지에 대한 공식입니다.

예제를 통해 살펴 보겠습니다.

예제 1)

주어진 값:

1. 지금까지 발행 된 HIT 토큰양: 1,000개

2. 뱅커에 예치되어 있는 금액: 25,000원

3. Connector Weight: 50%

4. 발행 전 HIT 가격 = 50원

문제: 5,250원으로 몇 개의 HIT 토큰을 구입할 수 있는가?

공식 (1)

따라서, 5,250원이 뱅커 보증금에 추가 되면 100개의 HIT 토큰이 발행됩니다. 그렇다면 발행 된 이후 HIT 토큰의 가격은 어떻게 변하는지 공식 (4)를 사용하여 알아보도록 하겠습니다.

공식 (4)

이번 거래를 통해서 5,250원을 뱅커 알고리즘에 넣고 돌리니 총 100개의 새로운 HIT 토큰을 받았습니다. HIT 토큰의 가격은 거래 전 50원에서 55원으로 상승 한것을 알 수 있습니다. 그렇다면 실제로 제가 100개의 HIT 토큰을 구매하기 위해 지급한 HIT 토큰 개당 가격은 얼마일까요? 공식 (3)을 사용하여 평균 구매 단가를 구할 수 있습니다.

공식 (3)

이번 거래에 제가 지불한 HIT코인의 평균 단가는 52.5원 입니다.

이번에는 토큰을 넣고 보증금을 되돌려 받는 거래를 살펴 보도록 하겠습니다.

예제 2)

주어진 값:

1. 지금까지 발행 된 HIT 토큰양: 1,100개

2. 뱅커에 예치되어 있는 금액: 30,250원

3. Connector Weight: 50%

4. 소각 전 HIT 가격 = 55원

문제: 100개의 HIT 토큰으로 얼마의 보증금을 되 돌려 받을 수 있는가?

이 문제는 공식 2를 사용하여 다음과 같이 쉽게 계산할 수 있습니다.

공식 (2)

여기서 주의해야 할 점은 최종 값이 마이너스 값이라는 것입니다. 기존에 뱅커에 예치되어 있는 금액 30,250원 중 5,250원이 빠져 나갔기 때문입니다. 뱅커 보증금의 잔고가 줄어들었기 때문에 HIT 토큰의 가격 역시 하락하게 됩니다. 또한, 뱅커 알고리즘으로 다시 들어온 HIT 토큰은 소각이 되게 됩니다. 따라서, HIT 토큰이 소각 후, 그리고 뱅커 잔고가 줄어든 후 HIT 토큰의 가격은 공식 (4)를 사용하여 계산할 수 있습니다.

공식 (4)

또한, 이번 거래에서 진행된 실제 거래 가격은 예제 1과 동일한 방식으로 공식 (3)을 사용하여 계산할 수 있습니다.

공식 (3)

결론

지금 까지 Part 1과 Part 2에 걸쳐 뱅커 알고리즘이 어떤 방식으로 작동을 하는지 알아 보았습니다. 다시 한번 정리 하자면, 개인이 뱅커 알고리즘을 사용할 경우 토큰 자판기 형식으로 사용 됩니다. 본 예제에서 사용된 HIT 토큰과 뱅커 알고리즘 내에 저장되어 있는 원화가 연동이 되어 자동으로 거래가 성사 됩니다. 뱅커 알고리즘 공식을 사용하여 어떠한 방식으로 원화를 넣으면 새로운 HIT 토큰이 발행이 되는지, 그리고 반대로 HIT 토큰을 뱅커 알고리즘에 넣어서 소각을 시키면 어떤 방식으로 원화가 지불이 되는지에 대해서 알아 보았습니다. 또한, 각각의 거래가 마무리 된 후 HIT 토큰 가격 변동이 어떤 방식으로 일어나는지 자세히 알아 보았습니다.

뱅커 알고리즘 시리즈의 마지막, Part 3.에서는 뱅커 릴레이란 개념에 대해서 자세히 알아보도록 하겠습니다!