IBO的金融原理和应用方向分析
导读: 关于IBO市场的各种分析如天花烂坠,但大都如耍流氓般只给结论,让阅读者怀疑人生,信也不是不信也不是。而本文作者从经济学、金融学基础原理出发,将IBO市场的金融特性、应用前景,事无巨细整理进统一的论述体系中,一步步推导至结论。朴素扎实的论证方法让人眼前一亮,不由让人赞叹:明白觉厉。
作者: Sanchez,山菜。沉迷探索区块链通证经济与应用落地场景,行业从业者/Researcher,泛金融领域天赋专精。个人公众号: 冰山链报 || Get Schwifty in the Blockchain Galaxy
上篇:基础篇
名词说明:
Bancor Protocol:指整套流动性与价格机制的算法公式和理论基础。
Bancor Network:是Bancor项目组以Bancor Protocol为核心机制开发的一套去中心化交易所。
Bancor Protocol是什么
一句人话说明:班科协议为代币提供了一套自动化的价格发现机制与流动性解决方案。
想象一下曾经金本位体系下的货币,所有货币的发行和定价都是和黄金价值挂钩的,美元可以换回货真价实的黄金,而不是像现在一样背后只锚定了国家信用背书。
在这种语境下,我们把黄金等价为connector token,也就是货币的锚定币种,把货币等价为smart token也就是现在的代币。将这种逻辑类比过来其实就是Bancor Protocol的思想:所有smart token在发行背后,都价值锚定了某种共识更强、流动性更好、价值更稳定的connector token作为背书和准备金。
有了这个思想,下一步需要解决的就是实现的细化,首先,怎么确定“汇率”?代币(smart token)和对应的锚定币种(connector token)按照怎样的价格比例兑换?这里就要引入锚定币权重(connector weight),简称CW,也是“汇率”的核心影响因子。
其次,代币背后的锚定币种能有一种还是多种?可以有多种,举例来说,假设美元同时锚定了黄金和白银,美元和这两种不同锚定物的兑换比例,就体现在美元和黄金、白银分别不同的CW上。
最后,代币之间的兑换如何实现?在确定了“汇率”的价格决定机制后,由于代币和锚定币种间转换都是双向的,于是所有token兑换之间就有了传递性和可逆性,整个系统下可以实现connector token与smart token的多对多关系。
Bancor Protocol的关键公式与计算
关于Bancor Protocol计算的说明和解释,Bancor的白皮书及formula计算说明讲的非常清楚。各类文章也很多,这里简单说一下。核心就是解释下CW的价格决定机制。
(以下公式全部引用于Bancor Protocol白皮书)
公式1
公式2
公式3
公式1体现了CW定义的核心思想,CW是锚定代币池资金量与发行代币总市值的比值。公式2给出了代币总市值的计算公式。公式3由公式1,2得出,是整个定价机制的核心,也就是:
Connector Balance = Price Supply CW
需要注意的是,公式3其实隐含了时间概念,其中的价格是T时刻的价格,outstanding supply指的是T时刻未发行部分代币总数量。当T=0,也就是代币刚开始发行时,outstanding supply就变成了total supply,connector balance变为connector reserve也就是锚定货币的初始准备金,在固定CW的情况下,确定了发行的初始价格。
公式4
公式5
公式6
公式4与公式5的推导,由公式1-3得出,好学的同学可参考Formulas for Bancor System,(传送门: https://drive.google.com/file/d/0B3HPNP-GDn7aRkVaV3dkVl9NS2M/view ),推导利用了基础的微积分知识,需要大一水平的数学分析/高等数学知识,不影响继续阅读。
公式4-6的真实意义在于,由于公式3确定的价格曲线是连续的,在任一微小变动后价格都不严格相同。所以当真实交易一笔买入代币或者卖出代币时,最终的有效成交价格是可以被严格计算出来的,也就是说,交易滑点是在交易前就是已知确定的。公式4-6就是分别给出了一定数量下买入、卖出以及有效成交价格的计算公式。
关于CW
在Bancor Protocol机制下,CW的值初始是预设好的。根据公式3,在确定T初始锚定代币准备金总量、总代币数量以及CW之后,对应的supply-price曲线可以很容易的画出来,如下图。
这图基本讲Bancor的文章都会有,不赘述,这里只补充一点。如果从公式层面操纵Bancor价格,玩法是可以很多的,核心只要保证Connector Balance = Price Supply CW等式成立即可,其中的四个参数,想玩可以随便玩。
举个简单的例子,把connector balance减半,CW减半,公式依然成立,等于通过调整CW,在保证价格不变的情况下,提出池子里的锚定货币。其他的玩法自己试试就都知道了,不是文章重点,不展开了。
Bancor Protocol的核心优势在哪
它要解决什么问题?
很多文章和解读偏重从Bancor协议的公式、计算、CW拟合曲线上重篇分析,毕竟这是价格机制决定的核心,从炒币盈利来说最为关键。但如果想从高维理解Bancor Protocol,只明白价格计算公式还是停留在“术”上。
理解Bancor Protocol的核心,首先要理解“流动性”在金融中的重要地位。Bancor的全部use case和algorithm最终都在围绕流动性的深度、成本、实现难度等各个维度上展开。
回想一下目前代币市场上流动性是如何产生的,主要分为OTC(场外)和交易所(场内),而核心的定价来源主要来自场内,场外交易在场内形成的定价基础上,叠加各类因素作用,产生溢价或折价。而场内的价格确定,最主要来自于order book上的买卖订单关系。
所谓的order book,是在某个时刻所有买卖订单形成的一个合集,买单价格自低往高排列,卖单价格自高往低排列,而买单卖单重叠的部分不断被撮合完成交易,而上一次被撮合成交的价格,就是当前这个token展示的价格。
交易所的这种撮合定价机制,是一种古老的,基于微观供需关系形成的价格发现动态平衡。这在市场中被验证为是很高效和公平的解决方案,但是同样存在很多问题:
1. 交易深度与交易滑点(depth & slippage)
在这种定价机制下,由于买卖双方成交需要找到对手方,整个市场的流动性非常依赖orderbook的深度。
举例来说,如果用户在上图的orderbook中想按照6462的价格市价买入10个BTC,这笔交易会吃掉图中显示的所有卖盘。最终实际成交的平均价格在6466左右,而这个实际成交价格与下单价格的损耗就是滑点(%)。
现在市场上token有千余种,主流货币的买卖深度还好,而对二三线在场内交易的长尾token,每天的真实成交量也就几十万,法币价值几万的买卖单就可以砸穿整个orderbook,造成token价格的大幅波动。这对项目方、持币者、交易者来说都是不利的(只对依赖波动性的投机交易者有利)。
2. 流动性提供成本
在山寨token鄙视链中,更下游的是还没有上交易所的币种。对于持有该类token的用户,标准化的流动性解决方案都没有,想买不知找谁买,卖不知找谁卖,只能靠原始的场外otc来解决需求。
项目为了代币上交易所进而提供基本的流动性,上币费、空投费等各类成本都在等着项目方,而上币后面临的市值管理、流动性管理等问题,对天赋点点在技术上的项目方也是巨大的隐形成本。流动性提供诉求直接导致了交易所话语权无限大。
3. 交易费用
即使上了交易所后,对生态中的用户而言,需要承担每次交易的交易手续费,部分交易所对部分币种设置maker负费用,taker正费用的定价,本质上就是因为作为maker,你在帮交易所提供流动性,而taker是在消耗流动性,交易所为不同交易类型的用户对流动性的影响提供差异化定价。
4. 币币交易对缺失
由于代币世界的特殊性,不存在唯一的锚定标准代币,所以币币之间的交易往往需要中间媒介。比如我想用ENJ换成LOOM,由于没有交易所存在ENJ/LOOM的交易对,我只能选择用ENJ换成ETH(或BTC,USDT,EOS等其他共识强流动性高的token),再用ETH换成LOOM。
熊市阶段下的区块链行业,和之前屁屁踢融资模式不同,项目方都是精悍干练,先出活再拿钱。
目前行业相对的热点都是看得见摸得着的真实应用,无论是游戏、自媒体、钱包、行情、金融还是其他,对这类实干路线的项目,他们需要通证经济机制的赋能,又没法牵扯太多精力参与流动性与市值管理。按照曾经的私募-爱西欧-交易所的一二级流动性管理模式真的科学?
Bancor Protocol BEGS TO DIFFER.
Bancor Protocol想干的事情,其实只是在解决流动性提供这个古老的难题,为此,它提供了流动性四大法宝。
1. 异步流动性
所谓异步,就是不需要同时存在买盘/卖盘的对手盘完成撮合交易。由于Bancor提供的connector pool的机制,当你在Bancor Protocol机制下去买入或者卖出币时,整个成交机制不需要实时有对手单这个条件,哪怕整个交易系统下只有1个人在买,你依然能够以一个不击穿token价格的合理的价格完成交易。这在交易所撮合机制下是天方夜谭。
当然,本质上,你的交易对手方其实是项目方,只是整个过程由connector pool和既定的价格算法机制代劳了。
硬要类比的话,这等价于在交易所撮合模式下,项目方实时在做market maker帮所有交易者提供流动性,并在提供流动性的同时保证整个价格曲线是按照一个既定的曲线来走,不拉盘不砸盘。负责任的说,这种成本在撮合机制下高出天际。
另外说一下交易滑点,Bancor机制下,当你一个大单买入或者卖出时,同样你是不能按照当前的展示价格实际成交的。但是,你可以根据自己的ordersize,精确的计算出滑点比例。而在撮合机制下,滑点比例是不确定的,可能很大也可能很小,所以在滑点这个问题上,两种机制各有高下。
2. 长尾流动性
目前市面上有千余种代币,整个市场的交易量就算在牛市,最多最多也就集中在前100的token。特别对于很多已经或将要出现的小而美的utility token,天生就不比security token承载交易价值的流动性天赋点。
而通过Bancor Protocol,哪怕是market cap和total number非常非常小的token,同样可以以极低的成本实现异步流动性。省去了早期上交易所、market making的一揽子烦恼。
3. 低成本流动性
简单直白,交易费用可选为零,做市费用极低,上币费用极低。当然,在后面的实际应用中,出于种种考虑,我们会看到一些不同的交易费率设置,后面细表。
4. 网络流动性
回到上文中ENJ/LOOM交易对的问题,在Bancor Protocol白皮书中明确提出,并且在Bancor network下已经实现。
如果两种代币共享至少一种connector token,如ENJ和LOOM都选择ETH作为connector token,则可以无缝完成ENJ/LOOM的兑换。这种兑换传递链可以不断的传递下去,当然承担的后果是整个交易的波动性是翻倍上升。但在闪兑和小额兑换场景下,这种优势非常明显。
关于Bancor Protocol机制的判断和认知
上面扯了这么多,其实只想说明一件事请,Bancor Protocol在流动性机制上确实想了很多,这点是需要被肯定的。最后谈谈几点对于Bancor Protocol的认知。
Bancor Protocol能否取代交易所?
简单粗暴的回答,不能。
如果我们把已经流通的token定义为二级市场,把未流通的token转为已流通的token的过程定义为一级市场。
那么私募和爱西欧肯定属于一级市场,而在交易所撮合机制下,代币发行方做市参与的交易属于一级市场(也就是项目方把自己手里的代币买入卖出的过程),代币发行方不参与的交易属于二级市场。
在这种语境下,Bancor Protocol解决的流动性,实际上是同时解决了一二级市场的流动性。但从上面的分析中其实可以得出结论,Bancor Protocol更擅长解决一级市场的流动性,也就是流动性从0到1或者到10的过程。
对于流动性体量特别大的代币,Bancor的交易系统并不足够友好,每次大单的滑点虽然可控但却一定存在。而交易所撮合模式承载了传统金融发展至今的百年智慧,并且不断将人性逐利的因素加入体系设计中,叠加在其上的各种金融衍生品、交易优化、估值模型等等仍具有重要意义,在目前金融属性仍然特别厚重的区块链3.0世界中,被替代可能性严格为零。
理想情况下,更有可能的情景是,在早期token的分发和二级市场流动性提供中以Bancor作为冷启动,当流动性到达一定阈值后,不涉及流通代币总量变化的纯粹的二级市场交易会自发的发生,两种交易模式会同时存在,哪方的交易量更大取决于具体的交易机制设计。
只有当流通代币总量不能满足当前生态下代币承载的稀缺资源时,才会重回Bancor主导的交易模式,从而使流通代币总量总大。
Bancor Protocol适用于哪些类型场景?
接着上个问题,既然更适用于流动性从0到10的过程,那么更适合的是小而美的项目,团队天赋点不在交易所上币和市值管理能力,希望专注于项目,代币有非常实际的应用场景、消耗机制,承载和锚定了稀缺资源。对于动辄就要融千万上亿的项目,其实并不适合。
结合这个分析来看,Bancor Protocol其实特别适合目前的Dapp生态。Token有使用价值在先,发币在后,这部分下篇重点展开。
为什么利用Bancor Protocol的融资会被定义为IBO?
假定一种情况,在一定时间内,某个代币的Bancor Protocol规定只能买入不能卖出,那这个过程其实相当于是按照一条项目方既定的价格曲线(固定准备金与CW),完成了一级市场融资。对于曾经的基石轮、私募轮、爱西欧轮,亦或股权的天使轮、A轮、A+轮,这其实是一个将不同轮次价格阶梯从离散到连续的一个过程,很像telegram当年的融资定价模式。这点我们在下篇也会用实例展开。
Bancor Protocol机制的use case?
Bancor Protocol的白皮书中设计的使用场景,笔者会主观的分为两类:
第一种,其实已经通过Bancor network最后实现的,就是多种代币通过relay token相互转换的模式。
还用之前的例子来说,ENJ背后的锚定币种有ETH和BNT,LOOM背后的锚定币种有ETH和EOS,因为ENJ和LOOM共享ETH这个锚定币种,可以无缝完成ENJ/LOOM的转换。
具体实现就是先用ENJ的Bancor Protocol价格曲线换成ETH,再用LOOM的Bancor Protocol价格曲线将ETH换回LOOM。同理ENJ/EOS,LOOM/BNT这几个交易币对同样可以无缝实现。
但是,Bancor network并不算成功,因为交易量对比传统交易所非常小。其中原因在我看来,是因为用错了场景,如果作为PC端传统交易所的使用场景,用户的核心诉求是赚钱。显然,Bancor Protocol单调的价格发现机制并不合适,继承了更多金融属性和功能的撮合机制下的交易所占尽优势。这点稍微做过交易的肯定都能理解。
而要真正发挥Bancor Protocol在交易兑换上的优势,在现阶段可见的方式是集成到钱包中的闪兑场景。
以太坊生态下的0x和kyber包括其他钱包内置交易所的体验目前并不算特别好,EOS生态下的newdex体验还不错,如果Bancornetwork能往这个方向发展,随着token应用场景提升,钱包内兑换的需求继续增加,还有一定潜力。
第二种,是我专门拎出来的一类,Bounty token,也就是在发行时connector base是空的或者很小的代币。这对于小项目来说,是冷启动并充分利用通证机制赋能的一个很好的实践点,为真正的应用类通证提供了一套基础设施。目前还没有看到以这种形式来实践的项目,点到为止,蓦然回首再观澜。
说了这么多,中场休息。在下篇中,我们将系统梳理Bancor Protocol的真实应用,从Bancor& BancorX、RAM、FIBOS、TPT/PUB一步一步走到今天的整个过程,以及其中的踩坑和经验分析。
下篇:应用篇
Bancor Protocol到目前为止,有了多次的应用实践,是时候分析一波每次尝试的经验与复盘了,这几次实践分别是:
Bancor network & Bancor X
EOS RAM
FIBOS
PUB/TPT
Bancor network & Bancor X:
去中心化交易所
Bancor network是Bancor项目组以Bancor Protocol机制为核心建立的去中心化交易所。其中的主要connector token为ETH以及Bancor自己发行的代币BNT,而BNT本身也按照CW=10%的参数锚定ETH。
Bancor network是对Bancor Protocol白皮书中提到的network token以及代币之间无缝兑换的践行。可以看到,不同代币之间的流转确实可以无缝实现,交易的滑点也会在交易时给出提示。但整个项目并不成功,单个代币的24小时交易量在几千到几万USD,非常少。
其中原因,在上篇文章中也提了自己的看法,交易所是具有非常强金融属性和功能的组织,包括通过算法(twap、vwap等)优化消除大单滑点等特性,这方面Bancor望尘莫及。当token本身不承载稀缺资源,只承载交易和投机价值时,在Bancor交易体系和撮合机制交易所体系共存流通的情况下,二级市场的流动性会大概率会偏向交易所。这是Bancor network实践总结出来的教训。
最近,Bancor又推出了BancorX,其实是将Bancor Protocol的实现从ETH网络搬到了EOS网络。不得不说,对于去中心化交易所,EOS生态下的体验要比ETH生态下好很多,没有gas费用支出、成交速度快等特点,结合目前遍地开花的EOS钱包,BancorX如果能内嵌优化使用场景,还是有一战之力。
不过个人主观感觉,Bancor Protocol主做交易所并没有将优势用在刀刃上,或者说现在市场环境时机不成熟,就算在EOS钱包生态下,如果能在newdex等去中心化平台上交易,为啥还要选择在Bancor系统下交易呢,唯一的可能除去套利因素外,只能是二级市场流通的总量不够了,需要通过Bancor的一级增发。
所以还是回到这个结论,在之前语境定义的一二级市场流动性下,Bancor更适合一级市场流动性。
EOS – RAM : Bancor Protocol成名之战
EOS的RAM价格机制,可以说是将Bancor Protocol推向大众视野的主要推手。
RAM是什么以及在EOS生态中的地位,和NET、CPU的关系,对于EOS生态下DAPP开发的作用等等,限于篇幅原因,这里不详细展开,相关文章非常多。这里主要想提几个关键点。
RAM、RAMCORE以及EOS换算
根据github中代码中的计算公式(链接见文末#1)
转换成公式来说就是
公式7
其中A为RAMCORE发行总量,B为EOS池的数量(connector balance),C为当前未释放的RAM容量,X为购买投入EOS数量,RAMCORE为X单位EOS转换后的RAMCORE数量,RAM为对应RAMCORE转换为RAM的数量。0.5/1000为初始CW值。
也就是说,其中包含EOS-RAMCORE与RAM-RAMCORE两组利用Bancor Protocol定价的交易对,两组交易对的CW值相同。并不存在一个直接的利用Bancor Protocol的EOS-RAM交易对,而是通过交易传递产生了EOS-RAM交易对。经过简单代入推导,最后得出RAM的购买公式是:
公式8
这说明什么?CW在其中被约掉了,也就是说RAM价格曲线只与B和C的初始值设定有关!Bancor Protocol在其中更多的是起到了一个relay的机制,CW值其实只是其中的一个参数或者在代码中被定义为F,并没有起到Bancor Protocol中CW对定价的影响。
更多数学相关的推导和证明,其实不难,EOSPARK有篇文章写的很好,不赘述,请见文末参考链接#3。
为什么重点说明这点,因为后面还有这个公式的升级版。
BM最终对RAM机制做了哪些更新?
所有人都知道RAM价格疯涨,BM不断提扩容改参数刷新存在感,最终RAM价格暴跌到无人关注。那么,BM最后到底对RAM机制做了哪些更新呢?
其一,RAM扩容机制。代码部分贴图。翻译成人话就是说,每新出一个块,增加1kb RAM内存。直观的理解就是在公式7中,C的值在接近连续的匀速变大,定量EOS换成的RAM变多,即RAM价格降低。这种连续的缓慢扩容机制,也被后来者锁学习。
其二,F从0.005改为0.5。这一点的改动,BM在medium的官方文章中也提到了。需要指出的是,F值的改动影响的更多是连续近似成离散过程的数学计算,主要的影响也就是trading slippage,对RAM价格曲线本身并无影响。因为正如上文所说,公式7中的F值在定价过程中已经抵消,价格曲线影响因素仅有B与C的初始值,这个F和Bancor Protocol白皮书中的CW区别很大。
你要问EOS-RAM真正的价格曲线到底是什么,其实用excel利用迭代思想很容易就能离散近似的画出来,参考链接#3里也有近似推导,留作思考题啦。
RAM利用Bancor Protocol的价格机制
到底算不算成功?
首先需要搞清楚,RAM的定价并没有利用Bancor Protocol中cw价格曲线的精髓,更多是把Bancor Protocol relay的机制进行了一种定价方式。因此内外网上很多说BM最后通过改CW改价格曲线的批判是不属实的。
Github上关于RAM公式F值变动的讨论(参考链接#5)
https://github.com/EOSIO/eosio.contracts/pull/2
其次,RAM作为稀有资源的载体,这种eos-ram的分发机制不一定是最优,但一定是经过思考。曾经有过建议,为什么RAM不按照EOS持有比例直接分配给所有人,但由于RAM的直接使用者是开发者,同时又是稀缺资源,平均分发机制并不给持有者提供卖出RAM的动力,随着主网生态繁荣,很可能陷入开发者无RAM可用但却有大量RAM闲置的状态。
所以,作为Bancor Protocol的应用先驱,RAM有很多可圈可点的尝试,其对价格曲线参数的选取、将CW优化掉的机制、增发方式的选取,也不断被后来者学习。但总的来说,RAM保持了Bancor Protocol的一个核心思想即价格曲线的稳定性,这点在后来的尝试中被突破。
最后,不得不说,投机是所有经济系统中不可被忽视的一环,RAM本身的分配理性考量,在引入了BP角色、交易逐利、市场羊群效应等各种因素下,还是不可避免波动性上了天。但个人觉得,这是必然会交的一笔学费,投机在所有经济体的行为体系中,只要逐利的第一性存在,永远是无法被规避的,只能逐渐教育磨合和适应。
FIBOS:IBO之一
Bancor Protocol原生机制
FIBOS项目是EOS主网上线后推的一个以JavaScript为主导编程语言的侧链项目,其对应的代币为FO,按照EOS为锚定货币的Bancor Protocol发行。
虽然FIBOS被说成是追随RAM的定价机制发行募集的,但根据上面的分析就会发现并非如此。其实在我看来,FIBOS才是第一个真真正正利用Bancor Protocol的定价机制进行一级市场发行的项目。Bancor network自己当年的一级市场发行可都是用的爱西欧模式。
FIBOS的定价模型严格利用了公式1-6,其中的CW值设定,根据官方说明选取的是11%,EOS池初始值(connectorreserve)为550000eos,FO总发行量100亿,其中开放兑换的是50亿,初始FO价格根据公式3计算为1EOS:1000FO。
FO和EOS在生态体系内等价,链上也有自己的RAM,兑换机制和EOS-RAM很类似。所以FO本身,其实也承载了在这条侧链上开发DAPP的稀缺资源的功能。FO在发行初期为规避过度投机,仅仅开发了命令行编程的购买方法,本人作为全程参(tou)与(ji)者表示很有趣。
FIBOS选择JavaScript这种群众基础好的语言,最主要的核心还是为了鼓励dapp开发,也只有dapp开发量起来了,才能让FO作为稀缺资源的期望真正做实,反哺FO价格和FIBOS开发团队,所以项目一直以来的发声也都是“用不上FO就别买”,吸取了RAM早期价格波动过大对生态的不利影响。
FIBOS的Bancor Protocol实践的一些思考
为了赋能FIBOS上dapp开发者通证经济的威力,方便以后DAPP在FIBOS链上以FO作为锚定币种发通证,最近又发布了FIBOS经济白皮书(传送门: https://dapp.fo/whitepaper ,参考链接#6),其中将锁仓与解锁、增发模型、销毁模型等机制在Bancor Protocol协议语境下提供了指导性操作。
回归到公式
Connector Balance = Price Supply CW
锁仓与解锁:supply增加的第一种情况,为了保证价格不突变,选择增加connector balance中的connector reserve,也就是增加锚定货币准备金,这个来源可以是项目方按照当前的价格卖掉手中的代币获取。
增发模型:supply增加的第二种情况,为了保证价格不突变,这次选择的是减小CW值,会改变整个定价曲线。
销毁模型:supply减少的情况。为了保证价格不突变,选择增大CW值,也会改变整个定价曲线。
为什么说是选择,因为在满足恒等式情况下,如何调整变量,完全是可以人为的来控制和设计的。这里的把销毁和增发诠释为调整价格曲线,是否符合持币者(不只是项目方)的利益,很难判定,至少会和价格在上涨还是下跌趋势中有很大关系。
从FIBOS白皮书的描述,可以感觉到团队更多想把FO打造成一套生态,把IBO的融资功能作为杀手级应用和ETH当年的爱西欧对标起来,很多机制设计的角度站在项目方的立场进行了思考,但姑且不谈细节机制的实现,这有一个基本前提是生态本身的共识和稳定性足够强,而FO本身又是锚定EOS的一个生态,整体的波动性是双倍快乐。这个大目标还有很长一段路,需要脚踏实地慢慢的走。
TPT/PUB:IBO之二
Bancor Protocol relay机制
花开两朵,各表一枝。FIBOS之后,EOS钱包tokenpocket的TPT代币发行又掀起了一股短暂的小热潮。而随着对TPT的研究,虽然TPT在TPdex和Newdex上均可交易,但其实际初始发行是由dapppub( https://dapp.pub/ )发行完成的,而dapppub自己也发行了自己的代币PUB。(改版之后dapppub网页平台上已看不到TPT)
深入研究了dapppub代币发行白皮书之后,发现这套代币发行逻辑和思考还是很有意思的,在tele上也和dapppub创始人进行多次交流,我们来抽丝剥茧的看一下。
首先,明确定位,这是一套主要针对Dapp通证所设计的通证体系。
引用一段白皮书中不能同意更多的论述:
“传统以太坊上的ERC20代币在设计上刻意强化了通证的流通特性,但是对于一个DApp来讲,通证的流动性并不是越强越好,根据Dapp的经济规模和发展阶段会对通证有不同的诉求……我们认为应用型通证应该着重于用户本身的通证使用诉求以及通证长期投资者的分红收益诉求……”
这也是我在认知Bancor Protocol过程中,认为现阶段最好的实践点。别急着以融资需求为出发点,动辄就建设个大而全的currency token、security token体系,先用应用类通证把微观层面的“积分体系”玩转了再说。之前苦于这类盘子小的应用型通证流动性提供成本过于高,而Bancor体系+ eos生态提供了一个很好的早期流动性解决方案。
其次,具体到算法实现上,dapppub没有采用传统的CW体系,而是采用了类似RAM的定价体系。回忆之前讨论过的RAM与Bancor Protocol的关系,已经论证过这套机制中其实没CW什么事,是一套把Bancor Protocol relay机制借鉴过来的定价模型,整个价格曲线主要依据锚定代币的初始准备金。
以此为基础,考虑应用型通证的使用场景,整套协议包括通证“使用协议”、“分红协议”,“期权协议”,“交易手续费”几个模块。具体的公式和推导参考文末链接#8,本质上和RAM的公式推演是非常类似的。整体的逻辑关系见下图:
拿通证使用协议公式来举个例子,经过推演过后的公式如下(参考链接#7):
通证被消耗后,重新返回到通证池中,同时基准货币资金池不变(也就是用户交易积攒的EOS总量不变),而基准货币基储量改变,所以价格曲线改变,导致通证价格提升。(其他协议具体公式请参考链接#8)
期权协议利用了RAM逐步扩容的思想,在确定了锁定周期、锁定数量之后,会按照公式逐步释放,相当于是逐步增发的过程。其对于持币者的影响与使用协议恰好相反,导致价格下跌。这也是为什么通证消耗场景会特别重要,因为需要不断反向对冲掉期权协议的影响。
分红协议最容易理解,直接将分红金额冲进基础货币资金池,基准货币基储量和资金量都会变化,从而使通证价格提升。
通证交易手续费的设计也很有意思,采用了曲线递减的方式,发行者可在初始时设定初始费率和基础费率,随着时间流逝,期权部分的代币逐渐释放,同时交易费率逐渐变低,最终在期权释放完成后,公式中的交易费率变为基础费率。
通过设置较高的初始交易手续费(如30%),可以变相促使投资者锁仓,也会增加投机成本,而早期产生的高额交易手续费也可选择直接按照分红模式返还给资金池,从而缓解Dapp初期的代币价格剧烈波动。
回顾这套IBO发行体系,其宗旨在于为Dapp的应用类通证提供服务,在协议设计中参考了RAM的Bancor relay机制,同时优化掉了CW而选择基础货币基储量作为一个价格曲线的调节器。这里要特别说明的是,这个“基础货币基储量”是一个虚值,可以理解为一个dummy variable,和FIBOS体系下的准备金完全不是一回事,项目方并没有这么多的基础货币充进来,它只是一个价格曲线条件的调节参数。
具体到技术层面,真正将这套代币系统和通证的应用场景联动还需要实现,其中各项参数的开源和监督也需要更加透明。目前已经发行的TPT就是基于这种机制,在TPT的白皮书上,通证应用场景还并不丰富,主要集中在分红上,而核心的消耗机制还有待加强。PUB目前的设计更简单粗暴,发币消耗100PUB。对于发币初期,两者的机制都还可以接受,总体来说是一个非常好的方向。
结语
聊到现在,Bancor在区块链领域的前世今生基本都涉及到了,而谈到目前所谓的IBO市场,读者们至少要清楚目前是有两种非常不同的体系:
一种是Bancor Protocol原生的定价机制,以CW为核心调节价格曲线,以FIBOS为代表。
一种是RAM改良版的基于Bancor Protocol进行relay的定价机制,抛弃了CW,以准备金为核心调节价格曲线,以TPT/PUB为代表。
总结下来,Bancor Protocol作为一套流动性和价格机制的解决方案,最擅长的还是在早期流动性或者说一级市场流动性领域,和交易所并不是在一个维度里竞争。因此,它对于盘子小但又需要通证机制赋能的长尾项目,在目前环境下也就是Dapp类项目,是一个不错的选择。
而在发行代币的设计上,代币主要承载的是融资功能还是应用功能,又会将这条路分叉成不尽相同的两个方向。由衷的希望,未来真的能看到更多的项目,并不(只)用通证搂钱,而是用通证赋能,真正激活各自垂直领域的生态体系。
Sanchez
2018.9.30
参考资料:
https://github.com/EOSIO/eosio.contracts/blob/master/eosio.system/src/eosio.system.cpp#L79
https://medium.com/@bytemaster/eosio-ram-market-Bancor-algorithm-b8e8d4e20c73
https://github.com/EOSIO/eos/blob/v1.0.5/contracts/eosio.system/exchange_state.cpp#L4
https://github.com/EOSIO/eosio.contracts/pull/2
https://medium.com/dapppub/consumption-protocol-formula-derivation-9d334a96897d
https://storage.googleapis.com/website-Bancor/2018/04/01ba8253-Bancor_protocol_whitepaper_en.pdf
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!