一、Bancor的由来
1-1 历史回放
1944年二战之后,Bancor 一词由英国经济学家凯恩斯首次提出,出现在凯恩斯的拟订的 “国际清算同盟计划”中,凯恩斯希望引入 Bancor 作为超主权准备金货币,各国货币之间的兑换都通过 Bancor 来实现。
然而由于当时的英国势力微薄,美国崛起,使得英国在国际金融霸权的争夺中败落下风,这一计划并未被采用,推出了后来大名鼎鼎的布雷顿森林体系。
1-2 大放异彩
虽然凯恩斯计划并未被采用,但是这一想法被后来的很多区块链项目借鉴。来自于硅谷和以色列的项目方,以Bancor 方案为启发,为了解决数字货币交易中的问题通过设计一个协议,试图以代码的方式优化数字货币交易流程,将该协议命名为“Bancor 协议”,同时致敬凯恩斯。
随着前一段时间 EOS RAM 的暴涨,Bancor 协议被越来越多的人所熟知,同时越来越多的项目开始采用 Bancor 协议,包括 BNT、进化星球以及最近NW刚刚发行的NEST。
二、Bancor协议是什么
Bancor协议包括两部分:Bancor 协议和 Bancor 算法
2-2 Bancor 协议
Bancor 协议是一种协议,也就是说大家都可以采用这种协议发行代币。
2-3 Bancor 算法
算法是什么?简单来说算法是为了实现某个目的的一整套规则方法,比如排序算法,就是为了实现排序的一套方法,你按照这套方法做就可以实现排序。
注意:Bancor 算法是为了实现Bancor 协议的这套方法。
三、为什么需要Bancor协议
了解了Bancor协议之后,我们来看一下为什么需要Bancor协议?它到底解决了什么痛点?
首先,我们来看下经济学中的概念“双重需求巧合”,什么意思呢?
要求交易双方恰巧都想要对方的东西, 也就是所谓的需求的恰好匹配
举个例子,我有一个苹果,恰好你需要一个苹果,切换到区块链的场景中,假如我有 BLK (布洛克的代币缩写),而恰好你需要 BLK,要想让这个恰好发生的概率足够大,就需要比较多的人持有 BLK ,并且有很多有想要购买 BLK ,也就是说 BLK 需要足够的流动性,而对于大量的小币种根本没有这样的流动性,Bancor协议的出现就是主要为了去解决小币种的流动性问题,从而解决双重需求巧合的问题。
四、Bancor基本原理
Bancor原理简单来说,就是通过向机器抵押一定数量的抵押物(比如BTC)来发行代币(比如 BLK)。
举个例子:
1.若想要发行代币 BLK,首先币范向机器 抵押 250 个ETH(一般选用的是共识更强的代币)
2.抵押之后,币范发行了布洛克的代币 BLK ,假设数量 1000 个 BLK,也就是说 1个BLK价值 0.25 ETH
3.小明想要买 BLK ,他不需要要找持有 BLK 的人购买,而是往智能合约转入相应的 ETH 就可以,智能合约会自动转换成 BLK 转账给小明
4.小明想要卖出 BLK ,同样往智能合约转入相应的 BLK 就可以,智能合约会自动转换成 ETH 转账给小明
这个例子阐述了了两个基本事实:
1.BLK从发行开始就是自带价值的,或者用串串的话叫形成了价值锚定, 1个BLK = 0.25 ETH
2.买卖BLK是通过Bancor协议实现的,不需要依靠流动性支撑完成买卖操作
五、代币的定价、波动问题
了解了基本原理之后,Bancor 算法是一种能够根据买卖行为动态调节价格的算法。Bancor 算法通过数学公式,计算出每一次交易的实时价格。我们来看Bancor最重要的一个公式:
代币的价格 = 抵押物资产价值 / (代币的流通量 * CW)
CW 指的是恒定储备率,取值在 0~1 之间 (可以为1),再回到上面 BLK的例子,其实我们假设了 CW = 1,这个时候 1个BLK 才是 0.25 ETH ,但实际上绝大多数的场景下,CW 不是1 (CW = 1 有1的价值和场景,此处按下不表),假如 BLK 的CW = 0.5,那么 BLK 的价格是:
BLK = 10 / (1000 * 0.5) = 0.5
此时 BLK 的价格就是 0.02 ETH
代币的买卖
一般来说,某种代币发行之后 CW 一般都是固定不变的,买卖操作都会对代币的价格产生波动,而这种波动主要是由于流通量的变化导致的。
引入CW之后,当小明要买 10 个 ETH 的 BLK 的时候,我们来看一下操作过程以及币价的波动
1.将 10 个 ETH 发送给智能合约
2.智能合约将 10个 ETH 存储到抵押金,此时抵押物价值增加
3.根据 Bancor 协议中的代币新发行量公式(此处直接使用了,就不引用公式了)
1000 指的是买卖之前的当前代币总供应量
10 指的是支付的抵押物的数量,此处是 10个 ETH
150 指的是原来的抵押物数量 ,此处是最初的250个 ETH
50% 值得是 CW 的值
计算下来之后发现小明的这 10 个ETH 可以买到 19.8 个 BLK,此时 BLK 的价格就是:
1.Bancor协议计算出 BLK 当前的价格为 0.5051 ,即相比原来的0.5 稍有上涨
2.最后智能合约将 19.8 个BLK 发送到小明的地址,价格显示 0.5051
卖出的过程就是上述的反过程,不在赘述,通过上述过程可以看到的是不需要流动性,通过Bancor协议就可以产生代币价格的波动,而且这种波动都是可以预期的。
六、Bancor协议的优劣势
Bancor协议的优势很明显,可以很轻松的创建代币,并解决了流动性的问题,没有对手风险,所有交易都是人机交易,交易信息公开透明。
这就是为什么越来越多的项目开始采用Bancor协议的原因,但是Bancor协议也存在一些问题,这里简单说一下:
1.价值锚定的问题,前面我们提到 1 个BLK价值 0.25 ETH,这个价值谁定的呢?不是市场定的,也不是机构定的,就是项目方自己定的
2.通过牺牲交易深度换取流动性,这点不能说是问题,但是需要提一下,市场深度是指市场在承受大额交易时 token 价格不出现大幅波动的能力,很明显Bancor 协议在大额交易的时候价格也会大幅波动
3.时间优势明显,项目方和相关信息优势者可以利用早期信息不对称来赚取利益;就算所有信息公开公布,也容易在最初形成人机大战,人的交易速度是永远赶不上脚本的。(这个点DappReview的文章)RAM的例子很能说明这个问题,后续进场的基本都被收割了。
4.CW 参数被操纵的问题,这个算是项目方的问题吧,不能说是协议的问题,虽然CW参数是公开的,但是项目方确实有足够的动力去调整CW参数以便自己获取更大的利益,RAM和FIBOS都出现了这个情况。