不上交易所,不用交易对手,任何通证都能买卖,神奇的Bancor
Bancor,应该是2017年下半年最著名的区块链项目之一了。利用一套算法和智能合约,Bancor提供了让用户可以在通证不上交易所,不用交易对手的情况下,就能随时买卖在Bancor上列出的通证,而价格可以随行就市,为急需流通性的通证持有者打开了完美的通路,这是怎么做到的?
Bancor上是有一个交易对的概念的。项目方在Bancor上线自己的“通证”时,必须指定一个或者多个交易对的通证,这个指定的交易对的通证,可以是已经在Bancor上线的其他“通证”,也可以是市面上的ERC20通证,比如ETH,比如Bancor自己的通证BNT。
2018年年底,Bancor上线了BancorX,现在Bancor还能支持EOS链上的通证了。
在这里必须要说明,在Bancor上线的“通证”,这个打引号的“通证”,是Bancor系统上的所谓智能通证(Smart Token),这个和我们平时所指的ERC20通证不完全是一个东西。当然,Bancor提供了将智能通证和ERC20通证匹配的方法,我们会在后续讲到。
根据项目方自身的意愿,需要质押一定数量的交易对的通证。根据质押的交易对通证的多少,我们得出一个该交易对上通证的链接权重:
而有了CW后,任何时候的一个通证的价格就可以根据以下公式算出来:
我们假设通证A的项目方在Bancor上线,选择了B作为交易对。然后项目方质押了一定的B,生成了当前交易对的CW,以后这个CW就一直固定了下来。上线后,任何支付B购买A的行为,都会导致质押物B的余额变多,以及通证剩余供应量的减少,因为CW是固定的,一次下一次再购买A的时候的价格就上涨了。反之,有用户通过支付A,想要拿回B,导致质押物余额变少,通证供应量增加,从而通证价格下跌。
由于每次分子分母的变化都会导致价格的变化,任何一个买卖,其实都相当于由更多的合起来是买卖的总数的小买卖组成,这是一个无限可以分下去的过程。从数学上可以证明,以下公式:
1). 购买的时候,
2). 卖出的时候,
特别注意:目前Bancor白皮书为2018年3月份的版本。在这个版本里面,卖出的公式在白皮书上是错误的!
3). 购买或者卖出时需要采用的有效价格为:
让我们来举个例子。一个通证A,对标的质押物是ETH,初始的时候,A的供应量是1000,市场价格为1。项目方抵押了一个ETH,假设当前市场上ETH的价格为500,因此:
;
现在,有一个用户想要用0.8个ETH购买通证A,他能买到多少?
1).
这个结果很让人吃惊。传统第一印象中,我支付了0.8个ETH,相当于80%的质押物的总数,但只买到了34%左右的通证。这就是由于实际价格在每一次微小的买卖中都会发生变动的结果。
2). 我们看看用户实际支付的价格是多少:
而在初始情况下,我们的价格为1,用户实际是用1.15的价格用0.8个ETH买了通证A。3). 现在我们再看下市场上其他用户看到的通证A的价格是如何的:
可以看到,由于通证A的供应减少,市面上的价格已经从1上涨到了1.34。
现在另外一个用户,想要卖掉手头的通证A。假设他正好持有341.64个通证A,我们来看看会发生什么情况。
他能拿到多少ETH?
而此时,通证A的供应量为1000,质押物的量为1 ETH,正好回到了初始状态。
在做推理的时候我们发现,Bancor应该有个限制,即卖出通证的数量导致的通证总供应量的剩余数量,不能小于初始供应量。
在这个例子中,初始状态下,用户只能用ETH购买通证A,而不能用额外的A换取ETH。
比较有意思的地方就在于,项目方在Banor上币的时候对于CW的选择,决定了未来价格的波动状态。我们看图:
通过图我们可以了解
- 当CW=1的时候,在Banor系统里面的价格(和质押物相比的币币价格)是不会变的;这个很适合锚定一个质押物币种的通证;
- 在CW=50%的时候,随着通着供应量的增加(说明需求多,越来越多的人用锚定物买入通证),其价格是线性增长的。
- 当CW<50%,甚至接近0的时候,其价格在后期会有一个高速的提升。也就是说,其价格会随着需求量的变化而有非常显著的变化。
下一篇我们讲讲Bancor是怎么把智能通证和ERC20通证联系在一起的。