Bancor利用一套算法和智能合约,可以在通证不上交易所,不用交易对手的情况下,就能随时买卖。Bancor上是有一个交易对的概念的。项目方在Bancor上线自己的“通证”时,必须指定一个或者多个交易对的通证,这个指定的交易对的通证,可以是已经在Bancor上线的其他“通证”,也可以是市面上的ERC20通证,比如ETH,比如Bancor自己的通证BNT。
根据项目方自身的意愿,需要质押一定数量的交易对的通证。根据质押的交易对通证的多少,我们得出一个该交易对上通证的链接权重:
而有了CW后,任何时候的一个通证的价格就可以根据以下公式算出来:
我们假设通证A的项目方在Bancor上线,选择了ETH作为交易对。然后项目方质押了一定的ETH,生成了当前交易对的CW,以后这个CW就一直固定了下来。上线后,任何支付ETH购买A的行为,都会导致质押物B的余额变多,以及交易对需要增发通证A,从而导致A的供应量的增加;反之,有用户通过提供A,想要拿回ETH,导致质押物余额变少,相应数量的通证A被回收,导致通证供应量也减少。
由于每次分子分母的变化都会导致价格的变化,任何一个买卖,其实都相当于由更多的合起来是买卖的总数的小买卖组成,这是一个无限可以分下去的过程。从数学上可以证明,以下公式:
1). 购买的时候,
2). 卖出的时候,
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的价格是如何的:
可以看到,市面上的价格已经从1上涨到了1.34。此时,整体通证A的供应量为1341.64,而质押物的数量为1.8个ETH。
现在另外一个用户,想要卖掉手头的通证A。假设他正好持有341.64个通证A,我们来看看会发生什么情况。
他能拿到多少ETH?
而此时,通证A的供应量为1000,质押物的量为1 ETH,正好回到了初始状态。
比较有意思的地方就在于,项目方在Banor上币的时候对于CW的选择,决定了未来价格的波动状态。我们看图:
通过图我们可以了解
- 当CW=1的时候,在Banor系统里面的价格(和质押物相比的币币价格)是不会变的;这个很适合锚定一个质押物币种的通证;
- 在CW=50%的时候,随着通着供应量的增加(说明需求多,越来越多的人用锚定物买入通证),其价格是线性增长的。
- 当CW<50%,甚至接近0的时候,其价格在后期会有一个高速的提升。也就是说,其价格会随着需求量的变化而有非常显著的变化。