Bancor Protocol

#BancorProtocolとは
###Continuous Liquidity for Cryptographic Tokens through their Smart Contractsを目指して

Bancorとは、2017年6月にEthrereumベースで発行されたトークンで正式名称はBancor Protocol Network(略称BNT)という。ICOを実施、開始からわずか数時間で15.3億ドルの資金調達に成功した!!このトークンには、いわゆるBancor Protocolというものが実装されている。資本準備金(balance)を常に蓄えわえて、いつでも新しくトークンを発行する仕組みがある。

#Bancorとは
そもそもbancorは、1940年から1942年にケインズとシューマッハーが提案した超国家的な通貨のことを言う。第二次世界大戦後に世界経済を安定させるため、英国がブレトン・ウッズ会議でバンコールの導入を公式提案したが、アメリカ合衆国の合意をとりつけることができず、実現には至らなかった。この会議では最終的に、バンコールではなく、世界銀行とIMFによって管理された制度において、物理的な金（きん）と結び付けられる固定為替相場制（金本位制）が採用された。そして、金との兌換性を維持した米ドルを基軸通貨とするブレトン・ウッズ体制は1971年のニクソンショックまで続くことになる。

#Abstruct

Bancor Protocolを実装することで可能なること。
1.売り手がいなくても買える。買い手がいなくても売れる。(流動性が上がる)
2.他のトークンとの交換が瞬時に取引所を返さずにできる。
3.トークンをまとめたトークンバスケットなどを作ることができる。


例えば、以下は特定のトークンの架け橋になるトークンである。このトークンを介して、
トークンAからトークンBに一瞬で交換される。
![スクリーンショット 2018-03-30 0.29.39.png](https://qiita-image-store.s3.amazonaws.com/0/245789/a9ec7719-36cb-0a7d-8502-574db442eb3b.png)
交換をほぼ手数料がかからず以下のようにできる。
![スクリーンショット 2018-03-30 0.30.48.png](https://qiita-image-store.s3.amazonaws.com/0/245789/b6ab2040-6960-e520-f733-882ced2374f3.png)

交換の際には、messengerかtelegramかwechatのアカウントが必要になる。
![スクリーンショット 2018-03-30 0.30.04.png](https://qiita-image-store.s3.amazonaws.com/0/245789/ad91ed79-15ae-32cb-fba6-b7f3934edd93.png)


新しいトークンを発行しても初めは、流動性の問題に悩まされる、、、
BNTには、売りたいときに売れて、買いたいときに変える流動性を担保する仕組みが備わっている!!

これはBancor ProtocolというProtocolを実装しているからだ。このProtocolは、価格方程式というロジックによって、ブロック上のトークンの自動価格決定と自律的な流動性メカニズムを支えている。また、bancor Protocolを実装した<font color="OrangeRed">スマートトークン</font>には、複数のスマートトークンと繋がっていて、接続されたトークンのスマートトークンをスマートトークンのコントラクトを通じて直接購入または清算することができる(後述、トークンリレー)。

ちなみに、ここで出てきた<font color="OrangeRed">スマートトークン</font>とは、上記のBancor Protocolを実装したトークンのことである。

これらの対応は、実は非中央集権の思想に合致している。トークンが株などと同様に取引所で扱われる場合、マーケットメーカが流動性を出すために安く売って違う市場で高く売るアービトラージ行為で儲かることになる。つまり資金を持っている人がさらに強くなる仕組み自体を変えられていない。一方、BancorProtocolを実装すれば、流動性の問題とアービトラージの問題を解消できる。

#価格決定方程式
##Connector Weight
Bancor Protocolは、手元にある資本準備金(balance)を使って、そのトークンの価値を保証し、トークンの新規発行、廃棄をスマートコントラクトで自動化したプログラムである。
はじめに、トークンの時価総額のうちのどのくらいの割合をReseve(depositまたは、connector balance) $R$[eth]として蓄えておくかについてのべる。この割合は、Bancorの中で唯一の定数で固定準備率(fractional reserve ratio) $F$ と呼ばれ、トークンの発行元がはじめに設定できる。この値を一定に保ちながらトークンの価格 $P$[eth]や発行数(供給量) $S$ が価格方程式に基づき決まり、スマートコントラクトによって売買が行われる。上の定義から、トークンの時価総額(Smart Token’s total value)は、

```math
\mbox{Total value} = PS
\tag{1}
```

であるので、reserve $R$ は、

```math
R=(固定準備率)\times(トークンの時価総額)=FSP
\tag{2}
```
で決まる。
##価格決定方程式
上の(2)式をトークンの価格 $P$ についてとくと、

```math
P=\frac{R}{FS}
\tag{3}
```
を得る。
この式は、市場の原理にしたがっていて、需要が増える、すなわちそのトークンに蓄えられているreserve $R$[eth] が増えるとき、そのトークンの価格が上がり、供給 $S$ が増える価格が下がることを表している。このように、スマートトークンの価格は(3)式によって決まる。(今回は簡単のためにparent currencyをethだとして単位をつけています。以下では断りがない限りparent currencyはethだと思い計算を行う。)

また、方程式(2)はいわゆる自己無頓着方程式(セルフコンシステント)のような形をしている。
具体的には、reserveの価格は、現在のトークンの価格から計算されるので、$R$はPに依存して決まる。

```math
P=f(P)
```

##価格Pの供給発展


上の(3)式を $P$ 関して完全に解くと、あるsupplyのときにトークンの価格がどのような値になるかを求まる。(supplyを変化させた時にreserveがどれくらい変化するかを求めたいが、価格も同時に変化するのでこの変化が無視できるような微小量の変化を考えることで解くことができる。そこで以下では、微小量で計算を進める)

買い手が新しくスマートトークン微小量購入するときを考えよう。このとき、supply $S$ から微小量$dS$だけ増えた $S+ dS$になったとする。この微小量のスマートトークンを発行するために買い手は、このときのスマートトークンの価格とトークンの量 $dS$ をかけた額のethをdepositすることになる。したがって、reserveの増加量 $dR$ は、

```math
dR=PdS \tag{4}
```
である。一方、(2)式より、$dR$は、全微分で求まり、$F$ が定数のことに注意すれば、

```math
dR=F d(SP)=FdSP+FSdP \tag{5}
```
を得る。以上(4),(5)式より、

```math
PdS(1-F)=FSdP
```
これは、変数分離型の微分方程式なので簡単に解けて、

```math
P=CS^{\frac{1-F}{F}}
```
となる。ただし、$C$ は積分定数で初期条件として、supply $S_0$ の時に価格を$P_{0}$であるとすると、

```math
P=\bigg(\frac{S}{S_0}\bigg)^{\frac{1-F}{F}}P_0
\tag{6}
```
と最終的にあるsupply $S$ におけるトークンの価格がもとまった。
この式を元に、様々なConnector Weight(CW) $F$ でその発展を図示すると、以下のようになる。
![スクリーンショット 2018-04-01 12.30.19.png](https://qiita-image-store.s3.amazonaws.com/0/206272/01571d80-fad1-d5a9-a9d4-c17b9a2876e5.png)

ちなみ、これらを一つのグラフに書き込むと、以下のようになる。この図は、トークンの初めの価格を1ethとして設定し、それ以降有効なグラフである。(初めの交点よりも左側が正しい)定性的には、以下のうように説明できる。$CW=1$の場合は、常にdepositされたethと同等の市場価値になるように調整される。したがって、トークンの価格は、ethの価格と同じになることになる。(30[eth]depositすると市場価値は、30[eth]上がる。)
したがって、トークンの価値もethに対して一定である。一方、$CW$が1から小さくなると、depositされたethに対して、それよりも大きな市場価値がつくことになる。例えば、$CW=0.1$のとき、30[eth]depositすると、市場価格は、300[eth]増加することになる。このため、supplyも低くすみ価格は大きく変化することになる。
![スクリーンショット 2018-04-02 0.52.09.png](https://qiita-image-store.s3.amazonaws.com/0/206272/74008260-f699-ca5e-3844-85041ddf67b1.png)
最後に、supplyが$S_0$ のときにスマートトークンをT[BNT]だけ買った場合、どの程度のEthが必要になるかについて求める。必要なEthの量をEで表すと、価格がsupplyとともに、常に変化することに注意すれば、積分、

```math
E=\int^{S_0+T}_{S_0}PdS
```
によって求まることがわかる。(6)式の結果を用いれば、

```math
E=\int^{S_0+T}_{S_0}\bigg(\frac{S}{S_0}\bigg)^{\frac{1-F}{F}}P_0dS \\
=FS_0P_0\bigg(\sqrt[F]{1+\frac{T}{S_0}}-1\bigg)
```
が得られる。さらに、$FS_0P_0$は、初めのreserveの値なので、これを$R_0$とすると、最終的に

```math
E=R_0\bigg(\sqrt[F]{1+\frac{T}{S_0}}-1\bigg)
\tag{7}
```

を得る。さらに、あるEthで購入できるトークンの数が知りたければ、(7)式を $T$について逆解きして、

```math
T=S_0\bigg(\bigg(1+\frac{E}{R_0}\bigg)^{F}-1\bigg)
\tag{8}
```

と計算される。これらの計算は、スマートコントラクトして取引所など無しに自動で行われている。

#結論
今後小さなスケールの経済圏や、youtubeのように個人が通貨を発行し、トークンの市場はロングテールになるだろう。その時、その通貨の流動性を上げるのにbancor Protocolはかなり役に立つだろう。

# 謝辞
@isseium さんにtypoの指摘をいただき、直させていただきました。ありがとうございます。

#Reference
-[Eyal Hertzog, Guy Benartzi, Galia Benartzi.Bancor Protocol(white paper)](https://about.bancor.network/static/bancor_protocol_whitepaper_en.pdf)
-[Meni Rosenfeld.Formulas for Bancor system](http://meissereconomics.com/assets/abfe-lesson5-bancor.pdf)
-[Bancor プロトコル:Smart Tokenの革新性とは。「Coincidence of Wantsの解決」とそれがもたらす「取引の再発明」](https://qiita.com/ABmushi/items/e0886421617d4632c42b)
-[Why Bancor Will Work?](https://steemit.com/bancor/@paulcoman/why-bancor-will-work)
-[Bancor Protocol はトークンエコノミーを支える大発明となるか？（前後編)]
(https://medium.com/@mach/bancor-protocol-%E3%81%AF%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%82%A8%E3%82%B3%E3%83%8E%E3%83%9F%E3%83%BC%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E5%A4%A7%E7%99%BA%E6%98%8E%E3%81%A8%E3%81%AA%E3%82%8B%E3%81%8B-%E5%89%8D%E7%B7%A8-9769b79f2bca)
-[Crypto Note](https://sites.google.com/site/kingernote/home)
-[bancor(wiki)](https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%AB)