HiBlock区块链社区

【分享实录】BANCOR算法详解及代码实现

2018-11-16  本文已影响0人  宇宙永恒
image

1

活动基本信息

1)主题:【区块链技术工坊22期】BANCOR算法详解及代码实现

2)议题:

3)嘉宾:

image

王登辉

创业股平台 CTO,尖晶技术赋能中心副总经理, HiBlock区块链社区上海合伙人,电子科技大学硕士毕业, 10年华为/中兴 产品.研发经验,深耕区块链应用。

4)活动定位

由HiBlock、创业股平台和兄弟区块链社群共同主办的区块链技术工坊,深度分享区块链知识,实现小会技术交友。区块链技术工坊坚持4F原则:

2

分享实录

image image image

目前小规模通证交易痛点:

image image

轻松创建 Token

Bancor 使创建数字资产变得更容易,解放用户生成 Token 的巨大潜力。这些token 还提供便宜的访问服务,这些服务之前都是很昂贵的,或者其他方式无法访问的。

模块化工具包

Bancor 协议建立了唯一的标准从而使多种应用场景变得可能。由于智能代币能够将其他智能代币作为储备,它们可以被用来作为新的金融,银行或其他货币解决方案的模块,这些模块能够向它们自己乃至整个生态系统传递价值。

嵌套估值

通过在储备中持有一个预先存在的代币,智能代币与相关资产有一个预先的估值。因此,由于与这些预先储备的代币的联系,智能代币的建立,或直接或间接的与更大的价值相连接(这些预先存在的代币所代表的价值)。生态系统的长期演变是开放的,对于 Bancor 协议来说,网络可能会设定它们对投机或波动性的偏好。

互联的框架

通过帮助一些非常小的实体和网络在无须牺牲个体独特性的前提下共享和交换资源,智能代币使它们连接成一个更大的网络。

image

连续流动性

用户总能通过智能合约在网络中直接购买或出售代币,即便市场中只有很少或者没有其他买家或卖家。因为价格会根据兑换规模进行调整,所以总可以使用特定价格来兑换代币。Bancor 协议有效地使得流动性与交易量脱钩。

没有内置手续费

默认情况下,智能代币不会对它们执行的兑换收取费用。用户承担的唯一费用是处理下层区块链易所需的费用(例如,以太坊的 gas)。虽然智能代币的发行者可能为通过他们的特定智能代币进行的兑换设定可选的使用费(称为捐赠)。

Bancor 协议不会为了获取运营利润而收取兑换费用,而是从代币网络的扩展以及用户数量的增长中获利。

可调整的价格敏感度

大量连接器余额和高权重的带来的影响,是使得智能代币价格对大宗交易导致的短期投机和价格波动更不敏感。例如,一个 CW 为 10%的智能代币,相当于交易所里一个占代币市值 10%的订单。这种灵敏度可以通过 CW 和连接器余额进行调整,以实现特定智能代币的预期配置。

没有价差

Bancor 公式在处理买单和卖单时使用同样的价格计算方法。这与传统交易所不同,传统交易所的买入价格总是低于卖出价格。买卖价差,即所谓的价差,是传统的做市商赚取利润的原因。如上所述,Bancor 协议不会为了运营而获得这种利润,另外为了鼓励采用该网络,可能会引入去中心化的价差,从而使所有参与者受益。

价格可预测

智能代币的价格算法是完全透明的,允许用户在执行兑换之前预先计算他们想要兑换的有效价格。这与传统的以订单为基础的交易所形成了鲜明对比,在传统交易所,大量订单可能导致价格不可预测地下滑至明显不同的水平。

兼容 ERC20

智能代币是与 ERC20 兼容的代币(尽管具备额外的功能),它们与现有的代币应用程序(如钱包或 DApp)无缝集成,因为它们符合流行的 ERC20 代币标准。此外,任何现有的 ERC20 标准代币都可以通过带有连接器的智能代币连接到Bancor 网络,这使得 Bancor 协议向后兼容现有的 ERC20 代币。

image image image image

BANCOR的基本计算公式

计算公式涉及多个参数,解释如下:

计算公式如下:

举例:若当前AToken的发行量为1000,报价为0.5个ETH兑换1个AToken,那么AToken的总价值为500个ETH,但是储备金余额可能并没有500个ETH,比如为250个ETH,那么CW则为0.5(50%)。

image image

Token买入计算公式:

举例:若当前AToken的发行量为1000,储备金余额为250个ETH,CW为0.5,那么当前的报价则为0.5个ETH兑换1个AToken;现在Bob想花750个ETH购买AToken,带入公式:Token_Return = 1000 *((1 + 750 / 250)^ 0.5 - 1)= 1000

即Bob花了750个ETH购买了1000个AToken,本次购买的平均价格为0.75个ETH兑换1个AToken,比初始报价已经高了许多。Bob的购买行为推高了AToken的报价。若Bob接着购买同样数量的AToken,则需要付出更多的ETH代价,每一笔购买都会继续推高AToken的报价。

image

Token卖出计算公式:

举例:在Bob的那笔交易完成后,AToken的发行总量为2000个,储备金余额为1000个ETH,CW维持不变、仍然为0.5,那么通过公式可以计算当前的报价为1个ETH兑换1个AToken;现在Alice想卖掉1000个AToken,带入公式:ETH_Return = 1000 *(1 - (1 - 1000 / 2000)^ (1 /0.5))= 750

即Alice 卖掉了1000个AToken,获得了750个ETH,本次购买的平均价格为0.75个ETH兑换1个AToken。因为Bob的购买行为推高了AToken的报价,而Alice是在Bob的购买行为之后卖掉了AToken,所以Alice卖到了相对较高的价位。假如没有Bob的购买行为,回到AToken的供应量为1000的那个时候,Alice卖掉全部的AToken,也只能获得250个ETH。

image image

网址: https://www.bancor.network/communities/5a174bc0171b0100018276b3/currency

image image

核心点为需要存入10万美元等值的BNT智能代币。

image image

1000个CLOB可以兑换多少个TKN1?
SmartTokenAmount = SmartTokenTokenSupply *((1 + ConnectorToken / ConnectorTokenBalance)^ CW - 1)�= 1000 * (( 1 + 1000 / 90000 )^ 0.9 - 1 )�=?9.99446694706181297191051400502(个TNK1)

image image

9.994466947个TKN1可以兑换多少个ETH呢?

connectorTokenAmount = ConnectorTokenBalance *(1 - (1 - SmartTokenAmount / SmartTokenTokenSupply)^ (1 / CW) )
connectorTokenAmount = 10 * (1 - (1 - (9.994466947 / (1000 + 9.994466947)))^ (1 / 0.1) )�= 10 * (1 - (1 - (9.994466947 / (1000 + 9.994466947)))^ (1 / 0.1) )�= 10 * (1 - (1 - (0.00989556603929837667128805564395))^ (1 / 0.1) )�= 10 * (1 - (1 - (0.00989556603929837667128805564395))^ (1 / 0.1) )�= 10 * (1 - 0.99010443396070162332871194435605 ^ 10 )�= 10 * (1 - 0.90533655025365121589722721359431)�=?0.94663449746348784102772786405694(个ETH)
兑换结论:1000个CLB可以兑换0.946个ETH
按照假设的市价,两者的价值均为1000元左右,符合期望。

image

省略运行部分。

image

参考记录文章:

本次活动照片:

image image

本文作者:HiBlock区块链技术布道群-辉哥

原文发布于简书

整理:Ella

加微信baobaotalk_com,加入技术布道群

下期活动预告:

image
上一篇 下一篇

猜你喜欢

热点阅读