深入浅出讲解BANCOR算法
wxf2017
发表于 2022-12-5 19:24:11
130
0
0
1)了解BANNCOR协议的基本原理;
2)通过举例熟悉BANNCOR算法的效果。
# @5 y/ E7 o6 \0 {0 Z' i
2、BANCOR算法的来源在20世纪40年代,英国经济学家凯恩斯提出采用30种有代表性的商品作为价值锚定发行国际货币Bancor的构想。而其他国家或机构再以Bancor为价值锚定发行各自的货币。然而这一方案没有得到实施,取而代之的是美元成为国际货币。
Bancor算法能够真正进入大众的视野里,可能要归功于EOS项目。由于EOS项目在RAM分配中采用了优化后的Bancor算法,并将RAM的价格爆炒到了很高的价位,凭借EOS项目在区块链领域的强大运营宣传能力与影响力,Bancor算法广为流传。
6 y4 [3 \/ j- o! @( x
3、BANCOR协议的基本思路在以太坊上发行的大量ERC20-Token是没有价值锚定的,其价值完全依赖于项目方的技术与运营能力,若项目失败了,则通证(TOKEN)价值就很可能归零。若利用智能合约的强大而灵活的“资金流转控制”能力,在通证合约中控制着一定量的储备金,让通证与储备金之间拥有一定的兑换能力,那么Token的价值就可以储备金为连接器代币,而不完全依赖于项目方。
3 E8 R- d2 d* Z+ G+ ~; g
通证持有者也就不用承担项目失败或者项目方可能诈骗跑路的风险。在以太坊平台上,显然ETH的价值与公信力最大,是最佳的储备金与连接器代币(Connector,又称锚定物),不过其他有价值的通证也可以作为连接器代币,而且连接器代币可以有多个。. t1 U: b; x0 ?0 m
9 c1 ?. K) v* G t+ O; p# d
若通证与连接器代币之间的兑换算法采用了Bancor算法,又符合ERC20标准,则被称为智能通证(Smart-Token)。为了简单起见,以下的论述以ETH作为连接器代币举例说明。购买与售卖Token的过程如下:
+ ]: y. f; u. U5 ]1 M: _9 G5 u
“购买者”发送一定量的ETH到Token合约地址,触发了合约代码自动执行”购买功能代码”,获得对应数量的Token;( b* o1 Z. o: E* M; p0 S
# a- ?7 g( u& i& Z l2 V2 V; q b
“售卖者”发送一定量的Token到Token合约地址,触发了合约代码自动执行“售卖功能代码”,获得对应数量的ETH。; B: ]& n2 w3 Z; z, ]
5 _3 }1 c; O5 e$ b) D) G8 o+ x' f
若AToken与BToken都是以ETH为连接器代币的智能通证,那么Token持有者无需通过交易所,仅仅凭借智能合约提供的买卖与兑换功能,就能实现AToken与BToken的自由兑换,比如AToken–>ETH–>BToken,多种智能通证之间通过共同的连接器代币串接起来,就形成了一个价值网络(BancorNetwork)。
0 Y0 M# U# r, }; S/ z& w2 m7 n
用于去中心化流动性的Bancor网络可以作为中心化交易所的替代,用于连接到网络中的任何代币,并带来诸多积极意义。例如,一个带有两个连接器的智能代币,其CW值为100%,其功能类似于去中心化代币交易对。我们将这种智能代币称为中继代币。9 r: z6 V" S9 J3 m4 a" d; q7 k' b
5 J8 z% g- E/ I, S: w- R( e \/ g
中继代币允许用户通过一个即时的两步过程在两个连接的代币之间进行转换,即使用其中一个连接器代币购买中继代币,然后立即将其出售给另一个连接的代币。由于定价算法,这将导致中继代币相对于连接器代币的价格上升(由于购买),和中继代币相对于连接器代币的价格下降(由于出售),这与预期完全一致。如前所述,中继代币的挂牌价格不太可能长久地与外部交易所中任何一个连接器代币的价格明显抵触,因为套利机会鼓励套利者在中继代币相对于连接器代币的价格与其在其他市场上的价格趋于相同。
$ g8 l! h X- p8 p
$ O+ `- M/ u6 i2 ~6 ~4 N1 f
这种特殊的智能代币配置允许不符合Bancor协议的现有标准代币(没有连接器)也可以向后兼容(换句话说,通过中继代币与网络中的每个代币进行转换),从而增强了可行性并接触到流动性网络。
% b4 \+ v% F) [) s' B9 O
4、BANCOR的计算公式和举例4.1BANCOR的基本计算公式计算公式涉及多个参数,解释如下:
Token的供应量【SmartToken’sSupply】,简称Supply;+ L& a5 O% y" \' v5 V5 O
Token的价格【SmartToken’sPrice】,简称Price;8 S/ _& Y, r/ P1 f* h! s7 N U2 M8 k8 o
Token的总市值【SmartToken’sTotalValue】,简称TotalValue;0 i% |3 ?; o6 I
储备金余额【ConnectorBalance】,简称Balance;" H& d, \+ x9 Q+ p1 C/ W/ V9 ?
3 G/ r/ ]& l" B
储备金固定比率【ConnectorWeight】,简称CW。
4 g! B# a0 r8 v3 D2 r! _6 `
计算公式如下:4 Q* ?8 z/ s: C$ q6 f9 z
& c2 Y* @% W4 e8 u+ v- i
CW=Balance/TotalValue=ConnectorBalance/SmartToken’sValue;
TotalValue=Price*Supply=SmartToken’sPrice*SmartToken’sSupply;; {, Y" u- t2 N
Price=Balance/(Supply*CW)=ConnectorBalance/(SmartToken’sSupply*ConnectorWeight). w: k) K) }0 b+ H5 M
举例:若当前AToken的发行量为1000,报价为0.5个ETH兑换1个AToken,那么AToken的总价值为500个ETH,但是储备金余额可能并没有500个ETH,比如为250个ETH,那么CW则为0.5(50%)。4.2Token买入计算公式及举例Token买入计算公式:& J: l3 n3 }' ]
) _& F4 H* E# k) f! s* ]
Token_Return=Supply*((1+ETH_Paid/Balance)^CW–1)
2 |& k9 Y9 Q) q e1 [7 e
举例:若当前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的报价。4.3Token卖出计算公式及举例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。bancor_protocol_whitepaper_en.pdf白皮书的公式如下:
+ ~, I; J! Y+ \$ ` o8 x
我们代入举例场景看看结果是否一致?ETH_Return=250*((1+1000/(2000-1000))^(1/0.5)–1)=750个;如果代币余额和总供应量取交易发生后的结果数量,则这2个公式的计算结果是一致的。ETH_Return=1000*((1+1000/2000)^(1/0.5)–1)=1250个;如果代币余额和总供应量取交易发生前的结果数量,则结果明显是错误的。所以,辉哥认为白皮书的公式描述不够严谨。5、BANCOR不同连接器权重与供需关系分析图1显示了智能代币的价格,对CW的不同值的变化。简要讨论一下插图案例:$ Z9 Z* E1 K1 N% N) O; s) x/ Q
6 f) n7 C* k/ u5 |+ t' I" v
【辉哥备注】Supply–智能代币的结余供应量【SmartToken’sSupply】,是指连接器外所有用户持有的智能代币总量。QuotedPrice–智能代币的报价【SmartToken’sPrice】实际上,用3.1的公式是无法实现价格的平滑处理的,实际公式为3.3下一章的微积分公式。
( U6 w- g6 t# N$ R! Y6 w$ S4 ]: L
(a)第一种情况是CW=100%,在这种情况下,不管需求如何变化,智能代币的价格完全跟随于连接代币准备金的变化,两者的相对值不会发生变化。价格实际上与其连接代币的准备金挂钩,智能代币成为该值的一种代理。这可以比作金本位,一种货币制度,发行机构承诺将货币兑换成一定数量的黄金。例如,直到1971年,美元一直以每盎司35美元的汇率盯住黄金。2 | C U) l2 \+ R
(b)第二个线性情况是CW=50%,其中智能代币价格随供应量线性移动(随着连接器准备金而增长或收缩)。当智能代币的需求较低时(即当出售量大于购买量时),智能代币价格会下降;当需求量较高时(即当购买量大于出售量时),智能代币价格会上涨。这种关系是供求关系的典型运作方式,唯一的例外是,智能货币的供应不是固定的,而是由需求决定的,而且在价格上涨时也不会稀释单位价格。【辉哥备注】从智能合约买智能代币的量>当卖智能代币给智能合约的量时,就是需>供(从智能合约外部用户的视角),Supply上升,智能代币的价格线性上升。0 a4 Q3 }" Y' D
( Z8 @* m! \. z. T0 M
(C)第三个非线性的例子是,CW在0%到50%之间,这显示了价格和供给之间的相似增长关系,但是随着供给的增加,价格曲线增长得更加迅猛。图表显示了CW=10%的特定价格曲线。低于10%的CW会比这个反应更强烈(更尖锐的指数曲线),而高于10%的CW会随着接近50%而相对地趋于线性(b)。
(D)最后一种非线性情况,CW在50%到100%之间,其中价格和供应之间的增长关系曲线增长力度不及(b),这意味着智能代币的价格对供应变化的反应越来越少,直到达到我们在(a)中看到的持平的100%关系。具体图表显示了CW=90%的价格曲线。从理论上讲,智能代币也可能具有大于100%的CW,但是,这是代币随着需求增加而变得更便宜的特定情况,并且超出了本讨论的范围。9 ^9 ]( v8 w: r: |; o) i) [3 |! P
- I4 b6 e7 U2 e9 T8 A
6、BANCOR常见问题和解答6.1智能代币,连接器代币的定义和区别【智能代币(SmartTokens)】智能代币是Bancor协议的核心。它们的运作类似于常规代币,在ETH区块链上使用的符合ERC20标准[5],但也要包含额外的逻辑,即允许用户通过它的智能合约直接购买和出售代币,价格通过程序自动调整以反映供求关系。实际上,智能代币拥有一种内置的流动性机制,确保它们可以持续地为兑换为其他代币。
成为第一个吐槽的人