October 19, 2021
ZH

深度解析Swarm及“Bzzaar”的绑定曲线

深度解析 Swarm 及“Bzzaar”的绑定曲线

本文详细阐述了在单一供应方式“绑定曲线”机制下 BZZ 代币与价格的关联关系。

自六月以来,Bzzaar作为买卖 BZZ 的交易平台,以其独特方式开启了新的代币经济模式。与传统的交易平台不同,Bzzaar 平台并不依赖传统的做市商来进行 BZZ 的交易,而是利用绑定曲线(Bonding Curve,也有译作“联合曲线”或“债券曲线”)机制来即时完成交易。

新的项目可以方便地调用合约至他们自己的接口,从而允许创建一个前端模态(Modal)来托管交易。基于此,需要 BZZ 的项目就能够为它们的用户提供一个直接调用 Bzzaar 合约功能的交易界面。绑定曲线机制对社区开源,旨在推动整个 Swarm 生态的发展。

什么是绑定曲线?

绑定曲线(Bonding curve)是一种以 y=f(x)形式出现的数学函数,它能够根据现存的代币数量,即市场供应量,来确定单一代币的价格。绑定曲线机制的独特之处在于,它可以取代在传统交易平台中必要的市场做市商,而是通过自身提供市场流动性。

用最简单的语言来解释——绑定曲线其实是一种智能合约,它可以根据预设的数学公式来生成或销毁代币。这个公式是一条可以图形化的曲线,它定义了代币价格和供应量之间的关系,即代币的价格会随着其供应量的增加而上升。

我们来详细解释一下。在传统交易所中,市场做市商会根据用户想要买卖代币的价格信息,积极地调整价格,以便让代币的购买和销售能够即时进行。用户也可以设定买卖单,保证交易只在代币价格达到某个预设水平时发生。然而遗憾的是,有时这个预设的价格可能永远无法达到。

图 1. 传统的做市商交易平台

利用 Bzzaar 的绑定曲线,用户在交易平台购买时会产生代币,而在向交易平台出售时则会销毁代币。这便构建了一个自我调节的交易市场,币价与之保持动态调整。当用户购买代币时,下一个代币的价格会随之上涨,而当用户在绑定曲线机制中将代币售出时,币价则会下降。由于绑定曲线的公式是已知的,因此币价是可预测的,且完全取决于任何给定时刻的市场供应量。

图 2. 绑定曲线如何决定代币价格

绑定曲线的优势

除了让成交更迅速外,绑定曲线还具有其他方面的优势:

  • 抗操控性: 相对于试图影响币价的外部因素,如拉盘和砸盘行为,代币的价格表现出更强的抗操控性。这是因为绑定曲线能确保每一枚代币都以可预见的价格出售,从而在出现慌乱性抛售时能够保护用户。
  • 无需第三方做市商: 鉴于每个代币的价格由绑定曲线预设,因此不需要任何市场做市商的介入。绑定曲线本身就起到了自动做市商的作用。
  • 对需求即时响应: 由于绑定曲线能够铸造和销毁代币,因此代币的价格能够即时根据其需求作出调整。
  • 公平的分配方式: 绑定曲线无需验证节点,从而跳过了生成额外代币作为验证节点奖励的需要。因此项目代币没有通胀率,也没有预先设定的通胀问题。节点运营商则从现有的代币池中获取奖励,以补偿其对生态系统提供的带宽和存储资源。

如何使用绑定曲线

我们已经了解了绑定曲线的概念,接下来让我们探讨一下作为用户,如何与绑定曲线进行互动。我们可以使用绑定曲线进行的最基础的计算是,在当前代币供应量下,计算一个代币的最高成本。我们只需要将当前的代币供应值代入公式中的 x(或 s)即可。

然而,用户往往并不只购买一枚代币,而如果为用户所购买的每枚代币分别计算单个成本,那么计算会变得极其繁琐。我们以用户在当前代币供应量为 a 时想要购买 b 数量的代币为例:

图 3.曲线下的面积

我们知道,如果我们将代币供应量从 a 到 a+b 之间对应的每个币价加在一起,那么我们可以得到曲线下的面积。然而,这种计算方式对于大量买入该代币的情况并不现实。一个更为简便的方法是使用微积分。在微积分中,曲线下的面积是通过对函数求积分来确定的。

例如,函数(并非 Bzzaar 的实际价格函数)采取的形式是:

函数的积分将是:

其中,y 是购买 b 数量代币的总成本。

同样的方法也可以帮助用户计算他们将 b 数量代币在绑定曲线机制下售出后可以获得的资金:

绑定曲线在 Bzzaar 中是如何工作的

Bzzaar 拥有自己的数学函数来确定单个 BZZ 代币的价格。为了深入理解绑定曲线函数的运作方式,我们首先需要了解“数据块(Chunk)”。

所有上传到 Swarm 的数据都会被自动切分成若干数据块,并被存储在多个 Bee 节点中并得到哈希值。在 Swarm 中,数据块是基本的存储单位,每个数据块包含的数据量最大为 4 千字节。用户在上传数据时需要购买一批邮票(Postage stamp)。每个数据块都需要一张邮票,因为邮票将一定的 BZZ 价值附加到对应的数据块上。邮票批次在深度为 16 的桶容器(Bucket)中创建。Swarm 的整个地址空间被划分为 216(65,536)个不同的桶。

Swarm 在小数位数上与大多数其他 ECR-20 代币有所不同。它使用 16 位小数位,这是为了确保在绑定曲线合约的计算中 gas 消耗是高效的,同时保持人类友好的名义规模为 1100,原子规模为 1。因此,在所有的 BZZ 代币都在绑定曲线机制下交易时,第一枚铸造的 BZZ 代币价格将是 0.01DAI。

现在,让我们深入研究绑定曲线的公式:

其中,p 表示单个 BZZ 代币的价格,s 是当前的 BZZ 供应量,精确到小数点后 16 位,c 是一个固定常数,为 6.25×10^23。

p 的积分为:

为了启动绑定曲线的工作,前期需要投入大量的初始抵押金。通过首次代币发行(ICO)以及后续的额外代币铸造,共计售出 66,208,125 枚 BZZ 代币,从而获得了总计 3,364,662 美元的抵押金。根据这一抵押金总额和已售代币量,BZZ 在 Bzzaar 上的起始价格被定为 1.92DAI。为了验证在 1.92DAI 价格时的 BZZ 供应量,我们只需在绑定曲线方程中,将 s 替换为 66,208,125:

最大供应量

理论上,BZZ 代币硬编码的最大供应量为 1.25 亿枚。但由于绑定曲线的高阶多项式特性和相关的成本,达到这个理论最大值几乎不可能。为了进一步阐明这些成本,我们假定流通供应量为 1.2 亿 BZZ 时,这相当于是最大供应量的 96%的理论值:

这就意味着,铸造的第 1.2 亿枚 BZZ 代币将花费 6.87 亿 DAI。

我们可以取几个不同的供应量值来观察在该供应量下对应的币价和市值。表格如下:

图 4. BZZ 供应量对价格和市值的影响

图 5. Bzzaar 绑定曲线的直观展示

紧急关闭绑定曲线机制

绑定曲线机制具备自我运行的特性,无需任何外部条件的输入。然而,在以下三种关键情况下,可能会触发紧急关闭:

  • 在绑定曲线合约中发现严重或可被利用的漏洞;
  • MakerDAO 出现严重漏洞或因任何原因被关闭;
  • DAI 与美元价值脱钩。

目前,是否触发紧急关闭的决定权在 Swarm 基金会。

额外信息

所有合约信息对于 Swarm 和绑定曲线感兴趣的用户都是公开透明的。Swarm已经通过了 QuantStamp 的全面审计,最终的审计报告也已公开。如果您对 Swarm、BZZ、Bee 节点和 Bzzaar 有更多的了解需求,欢迎加入Discord上的 Swarm 社区。

Follow Swarm community news on X / Twitter.
Discussions about Swarm can be found on Reddit.
All tech support and other channels have moved to Discord!
Please feel free to reach out via info@ethswarm.org
Join the newsletter! .

Read more…

By clicking on Subscribe you consent to usage of your given e-mail address for receiving communication and news about the Swarm project and news. Data will be controlled and processed by Swarm Foundation.