浅析流动性引导池(LBP)—— 原理与观点

2021/12/08

摘要

最近,流动性引导池(Liquidity Bootstraping Pool) 频繁出现(下文简称 LBP),如 XY Finance,PathDAO,GuidlFi 等,均在 copperlaunch 采用 LBP 进行了 IDO。本文旨在从传统 AMM 出发,理解 LBP 的优越性与局限性,尝试静态和动态地对采用 LBP 的代币发行进行了分析。笔者认为,不同于传统的 LP,LBP 为资金量不足的项目方提供了具有优秀价格发现机制的公开代币发行解决方案。

Part 1 基于 AMM 的传统 Token Launch

我们都知道,若采用传统的 AMM 来投放初始 LP 进行 Token Launch,交易对中的两种 Token 价值之比应该是 50:50。发行方为了避免过高的滑点,必须准备用于提供流动性的大量的另一种 Token。我们假设 ABC 项目准备发行ABC,项目方需要在Uniswap上提供‘ABC,项目方需要在 Uniswap 上提供 ABC,项目方需要在Uniswap上提供‘ABC - $DAI 的交易对,团队认为代币的初始公平市场价格应为 2 美元。(注:在本文中谈到项目代币 ,均指的是代币发行中用于为发行方筹集资金或其他用途的 Token,而非某一特定项目的代币,定价代币 则指的是交易对中用于支撑初始流动性的另一方 Token)

当我们使用 dx x 兑换dyy 时,我们有,

{xy=k(x+dx)(y−dy)=k\left\{\begin{array}{l} x y=k \\ (x+d x)(y-d y)=k \end{array}\right. {xy=k(x+dx)(y−dy)=k​

实际兑换中,y(ABC) 相对于 x(DAI) 的单价为

dx/dy=x+dxyd x / d y=\frac{x+d x}{y} dx/dy=yx+dx​

$ABC 单价为 (20000+1000)/ 10000 = 2.1(DAI)

兑换前,池中的 y 单价为 x/y = 2 (DAI),那么 y 单价的滑点就产生了,

Slippage y Price =dx/dy−x/y=dxy\text { Slippage }_{y \text { Price }}=d x / d y-x / y=\frac{d x}{y} Slippage y Price ​=dx/dy−x/y=ydx​

转换为百分比形式则为 (2.1 - 2)/(2)*100%=5%

观察滑点公式我们可以得出,

  • 交易量 dx 越大,产生的滑点就越大,一次交易中与名义价位的偏离就越大,用户体验越差,巨鲸交易的意愿就越低。

  • 池中的资金储备(x*y)越多、交易深度越大,则能尽量减少滑点的溢价,使用户的交易损耗降低。

ABC 初始流动性DAI 初始流动性交易 $1,000 的滑点
10, 00020, 0005%
20, 00040, 0002.5%

使用传统 AMM 发行 Token 的缺点就很明显了,要想降低滑点,项目方就要有巨大的初始资金量来供应 LP。

Part 2 流动性引导池

这时候,Banlencer 带着 LBP 横空出世。LBP 带来的最大创新,正是它大大降低了原始资金的需求量。

简单来说,不同于 AMM 方式中所必须的 50:50,项目方可以选择模板,以线性或者曲线速率的方式来将流动池中初始较高的项目代币权重,降低到一个设定好的较低比例,如下图所示。用户可以选择在比例降低过程的任意时间点进行交易。

项目代币权重线性下降 项目代币权重曲线下降

2.1 静态分析 - 低资金量定价

2.1.1 纵向比较 - 实际 LP 与 名义 LP

重点强调一下,如图所示,假设 $ABC-$DAI 初始权重为 80:20,这里的比例是权重之比 ,而不是数量之比 ,所以比例降低的过程中,是项目方的代币价值权重降低,而不是说它的数量降低(感谢 AFR-LA 的耐心解释)。举个例子,项目方注入 10, 000 个 $ABC 和 1000 个 $DAI,初始权重比为 80:20 ,这也意味着项目方原本需要拿出1000/0.2=5000 $DAI但项目方仅拿出了 1000 $DAI ,并声明这是 5000 $DAI,用这 5000 $DAI 来锚定池子中的 $ABC。而这 100 个 $ABC ,同理项目声明它们是 10000/0.8 = 12500 $ABC。通过采用 LBP 这种非对称性的流动性方案,就注入初始流动性的一瞬间而言,项目方用10000$ABC - 1000$DAI 实际 LP ,实现了12500$ABC - 5000$DAI 名义 LP 的定价效果。

我们先回归到传统的 AMM 中价格计算公式:

dx/dy=x+dxyd x / d y=\frac{x+d x}{y} dx/dy=yx+dx​

忽略单笔交易的滑点,那么我们就可以得到最原始的价格公式,商品数量之比即为价格之比,

dx/dy=xyd x / d y=\frac{x}{y} dx/dy=yx​

刚才提到了 LBP 中项目方可以采用低资金定价, LBP 中的**名义 LP **下的定价为(10/0.2)/(100/0.8)=0.4($ABC/$DAI),即$ABC 的开盘单价为 0.4 $DAI。

综上,得出 LBP 中,代币单价的计算公式为,

dx/dy=xactual/Weightxyactual/Weightydx/dy = \frac{x_{actual}/Weight_x}{y_{actual}/Weight_y} dx/dy=yactual​/Weighty​xactual​/Weightx​​

2.1.2 横向比较 - 滑点和流通量

我们来看看在相同资金量的情况下,初始比例为 20:80 的 ABC−ABC-ABC−DAI 的 LBP 中滑点和流通量情况:

ABC 初始流动性DAI 初始流动性交易 $1,000 的滑点
40, 00020, 0002.5%
80, 00040, 0001.25%

可以看到,采用 LBP 进行 Token Launch,ABC 项目代币的初始流通量增加了 4 倍,滑点降到了原来 1/2。注意在 2.1.1 中我只提到了采用 LBP 可以实现深度更好的名义 LP 的定价效果 ,但很明显它是无法提供同等流动性 的,项目代币的价值与为销售提供的储备资产的价值成正比,因此项目团队可以在销售中筹集的资金金额受到提供给 LBP 的储备资产总价值的限制。

在本例中,LBP 权重比为 20:80(储备资产:项目代币),如果前期资本为 20K $DAI,起始价格为 10 $DAI,则可以出售的代币数量为(20,000 / 0.2)/ 10 = 10,000代币。

过高的项目代币与定价代币之比,会显著地降低发行初期的项目代币可售出量。

2.1 动态分析 - 价格发现机制

项目代币权重线性下降 项目代币权重曲线下降

我们在 2.1 中已经得到了 LBP 中代币价格的计算公式,

dx/dy=xactual/Weightxyactual/Weighty=xactual⋅Weightyyactual⋅Weightxdx/dy = \frac{x_{actual}/Weight_x}{y_{actual}/Weight_y} = \frac{x_{actual}\cdot Weight_y}{y_{actual}\cdot Weight_x} dx/dy=yactual​/Weighty​xactual​/Weightx​​=yactual​⋅Weightx​xactual​⋅Weighty​​

观察公式,假设该 LBP 池采用权重线性下降的模板,代币 $ABC 的销售价格随着 y 权重的下降,x 权重的上升,代币的价格理应逐步下降,具体的推导细节恕本人才疏学浅不做深入。假设 LBPs 的时间期限内,没有任何买入,最终的价格的变化和图中最下方曲线的表现类似,呈一个下降速度逐渐放缓的下降曲线。

image-20211205153853555

而在「无买入曲线」上方的两条曲线,则是当有不同价位入场的买方时可能出现的价格曲线。可以看出,虽然 LBP 池具有相对较高的初始定价,但随着买方力量与价格衰减机制之间的相互博弈,价格曲线倾向于在一个相对稳定的区间波动,可以说 LBP 创造了一个充满博弈的价格发现机制。

另外提一句,LBP 的另一个独特配置是能够在需要时暂停 swap,这种需求的产生,往往源于价格的不合理暴涨或暴跌,不过一般来说项目方还是希望把代币全部销售出去,所以很少会使用这项功能。

Part 3 总结

优势

  • 对资金量不足的项目方十分友好
  • (相对)高流通量和低滑点
  • 优秀价格发现机制
  • 类荷兰拍的价格变化曲线,有效避免了开盘 FOMO 导致的价格异常变化
  • 具有独特配置,项目方可以在需要时暂停 swap(反过来对于交易者来说可能是个问题)

潜在的问题

  • 相同开盘价下,无法提供传统 AMM 对称 LP 的流动性

  • 具有独特配置,项目方可以在需要时暂停 swap

可以深入研究的方向

  • 在 Kovan 测试网上试用一次 copperlaunch 上的 LBP
  • 跟踪采用 LBP 发行的项目代币的后续表现,探究后续价格与发行方式的关联性

参考资料

深入分析 AMM 恒定乘积模型的滑点与无常损失

Liquidity Bootstrapping Pool (LBP) | Alexandria (coinmarketcap.com)

Liquidity Bootstrapping Pools (LBPs) - Balancer

LBP 流动性引导池:在 Token 分发中建立流动性 — Mirror

What is a Balancer Liquidity Bootstrapping Pool (LBP)? Everything you NEED to know! - YouTube