文档章节

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

HiBlock
 HiBlock
发布于 11/16 22:28
字数 2915
阅读 11
收藏 0

image

1

活动基本信息

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

2)议题:

  • BANCOR算法的特点和优劣势

  • BANCOR算法和举例

  • 如何加入BANCOR.NETWORK交易所

  • 如何开发自己的BANCOR去中心化交易平台?

3)嘉宾:

image

王登辉

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

4)活动定位

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

  • Frency - 每周三晚上一次;

  • Focus - 聚焦区块链技术分享;

  • Fun - 20人以内会前做自我介绍,分享有深度的技术内容,技术交友;

  • Feedback - 会后有活动总结和合影照片。

2

分享实录

image

image

image

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

  • 数字货币市场形成长尾效应,缺乏流动性,无法形成成交。

  • 交易所上币成本高,项目方容易被收割,新代币在交易所上币是需要一笔不小的启动费用的。

  • 交易存在暗箱操作可能,用户容易被收割

image

  • 没有对手风险,所有的交易都是人机交易,买家不需要去找卖家,卖家不需要去找买家,交易信息公开透明。

  • 不同于中心化交易所的撮合定价,BANCOR协议的定价是根据真实供需公式定价公开透明可预测;

  • 没有竞价这个环节,不依赖流动性。刷单,刷交易量,刷净流入,净流出等操作都是无意义的。

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

  • 单点失效 对于 Bancor 协议建立的去中心化交易所,都是用代币合约来处理交易。虽然说明面上是去中心化交易所,但是需要在合约中设立超级管理员权限。当有账户存在超级管理员权限时,整个代币生态极容易发生单点失效。超级管理员权限是把双刃剑。在 Bancor 事件中,黑客利用了管理员权限盗取代币,而项目方也正利用了管理员权限来降低损失。不过我们认为,开发者依然可以通过良好的代码设计来降低代币和协议合约对管理员的依赖。

  • 牺牲交易深度 Bancor 协议的问题是价格曲线调节参数完全受项目方控制,参与而且鼓励价格投机,越早买入的人越容易获利。买盘能够推高价格,同时买盘也会降低价格,一旦曲线上升停滞容易发生「踩踏」造成较大的波动。所谓牺牲深度带来流动性。

  • 参数被操控问题 Bancor 算法根据参数 CW 的不同,以及构造关系不同,会产生不同的数学图形,或杠杆效果。比如常见的四类图形,如 3.2.2 节 4 张图所示。市场对价格变化的预期几乎完全基于 CW,因为它决定了价格曲线。那么如果项目中途改变 CW 参数呢?RAM 和 FIBOS 项目都发生过这一的情况,只不过一个是简单粗暴,一个是有其他参数配合的「合理解释」的。这类风险也是目前 Bancor 协议投资者面临的最大风险。

image

image

image

BANCOR的基本计算公式

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

  • Token的供应量【Smart Token's Supply】,简称Supply;

  • Token的价格【Smart Token's Price 】,简称Price;

  • Token的总市值【Smart Token's Total Value】,简称TotalValue;

  • 储备金余额【Connector Balance】,简称Balance;

  • 储备金固定比率【Connector Weight】,简称CW。

计算公式如下:

  • CW = Balance / TotalValue = Connector Balance / Smart Token's Value;

  • TotalValue = Price * Supply = Smart Token's Price * Smart Token's Supply ;

  • Price = Balance /(Supply * CW)= Connector Balance / (Smart Token's Supply * Connector Weight)

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

image

image

Token买入计算公式:

  • Token_Return = Supply *((1 + ETH_Paid / Balance)^ CW - 1)

举例:若当前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卖出计算公式:

  • ETH_Return = Balance *(1 - (1 - Token_Paid / Supply)^ (1 / CW))

举例:在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

© 著作权归作者所有

共有 人打赏支持
HiBlock
粉丝 13
博文 360
码字总数 481361
作品 0
私信 提问
技术工坊|BANCOR算法详解及代码实现(上海)

EOS项目在RAM分配中采用了Bancor算法,并将RAM的价格爆炒到了很高的价位,凭借EOS项目在区块链领域的强大运营宣传能力与影响力,带火了BANCOR算法。关于BANCOR算法的文章在网上很多,但是很多...

HiBlock
11/06
0
0
曾经募资最多之一的Bancor协议到底是什么?

一、Bancor的由来 1-1 历史回放 1944年二战之后,Bancor 一词由英国经济学家凯恩斯首次提出,出现在凯恩斯的拟订的 “国际清算同盟计划”中,凯恩斯希望引入 Bancor 作为超主权准备金货币,各...

Carykive
11/29
0
0
BANCOR学习:如何开发自己的BANCOR去中心化交易平台?

1 摘要 《 基于以太坊的交易所BANCOR算法实现-转换算法框架》 讲解了以太坊solidity实现的BancorConverter转换主合约的逻辑和代码,但是没有涉及核心互换及计算代码,而是通过interface类的方...

HiBlock
11/09
0
0
【追币课堂】Bancor发布首款去中心化流动网络跨链产品——BancorX

2018-09-18,今日的EOS重大消息,Bancor将发新一代跨链产品,实现从区块链2.0至区块链3.0的扩展,ETH与EOS之间将实现跨链流动网络。 From 追币网Bidream--中本错(wechat: richchencuo) 文章...

中本错
09/18
0
0
(Lochaiching)10张图带你看懂Bancor协议

2018-07-09 猿哥 和 EOS RAM 买卖相关的《Bancor Protocol》翻译 2018-07-04 EOS技术爱好者 | Lochaiching 10张图带你看懂Bancor协议 版权声明:以下内容来自微信公共帐号“EOS技术爱好者”,...

大圣2017
07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

程序中设置MySQL的默认值

import com.alibaba.fastjson.JSON;import java.beans.PropertyDescriptor;import java.lang.annotation.*;import java.lang.reflect.Field;import java.lang.reflect.Method;impo......

laolin23
28分钟前
2
0
WordPress没有上级目录的写权限

sudo chmod -R 777 wordpress/wp-content

临江仙卜算子
36分钟前
4
0
大数据学习之大数据技术笔记—spring入门

篇一 spring介绍 spring.io 官网 快速开始 Aop 面向切面编程,可以任何位置,并且可以细致到方法上 连接框架与框架 Spring 就是 IOC AOP 思想 有效的组织中间层对象一般都是切入 service 层 ...

董黎明
37分钟前
5
0
ASP.NET Core MVC 静态文件配置

在启动文件中添加以下配置 public class Startup{ public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddDirectoryBrowser(); ......

whltian
今天
2
0
linux之自定义命令

本人使用的是ubuntu系统,不喜欢建各种桌面快捷链接,但是每次启动个软件,去查找又麻烦,所以自定义了命令,来快捷的启动应用: 1、修改/etc/bash.bashrc,在文件末尾,加上如下List-1中的内...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部