广告

DeFi 项目 Balancer

一文了解 DeFi 项目 Balancer

写在前面:DeFi 赛道的竞争已开始升温,尽管像 Maker、Compound 这样的老牌 DeFi 项目依旧占据了优势,但越来越多的挑战者正在涌现,而 Balancer 正是其中一个潜力股,你可以将自己的稳定币放入该协议池中,从而获得相比使用 Compound 更高的收益,原因在于,你不仅能从贷款利息中获得收益,还能因为提供流动性而获得交易费收益,此外,它还能避免无常损失。

那它又是如何实现的呢?我们不妨通过 Balancer 的白皮书来具体了解它的设计。


目录

1、介绍

2、理论

2、1 值函数

2、2 即期价格

2、3 有效价格

2、4 即期价格证明

2、5 恒定值分布证明

2、6 交易公式

2、6、1 Out-Given-In

2、6、2 In-Given-Out

2、6、3 In-Given-Price

2、7 流动性提供公式

2、7、1 所有资产的存取款

2、7、2 单资产存/取款

3、实例

3、1 License

3、2 发布

3、3 数值算法

3、4 受控池与最终池

3、5 Swap 和退出费用

4、参考文献

一、介绍

指数基金是一种常见的金融工具,历史上第一只指数基金诞生于 1972 年。从那时以来,投资者们在很大程度上依赖于不同的投资组合策略来对冲风险。

指数基金保证投资者在一个投资组合中有一个稳定的、可控的风险敞口。如果其中一项资产表现不佳或表现出众,则可以选择出售或购买策略,以保持其在总投资组合中的价值份额不变。

无论是在传统金融体系还是在区块链环境下,指数基金和其他类型的投资组合,都会向投资者收取管理费用,这些费用主要是用于覆盖再平衡投资组合的成本。然而,投资组合管理和指数基金投资通常是采用的中心化解决方案,因此这类项目都具有某种形式的托管风险。

而 Balancer 协议是一个具有某些关键属性的自动做市商(AMM),这些属性使其可作为一种自平衡加权投资组合和价格传感器。

Balancer 颠覆了指数基金的概念:你无需向投资经理支付费用来再平衡你的投资组合,而是向交易员收取费用,交易员通过跟踪套利机会来再平衡你的投资组合。

Balancer 基于一个特定的 N 维曲面,该曲面定义了 Balancer 资产池中任何一对代币的成本函数。这种方法首先由 Vitalik Buterin 提出 [1],并由 Alan Lu 概括 [2],然后被流行的 Uniswap 应用 [3] 证明是可行的。

我们应用 Zargham 等人 [4] 描述的基于不变量的建模方法来构造该解决方案,并将证明这些恒值做市商拥有这一特性。

二、理论

在这篇文章中,我们使用术语「代币」(token)来指代通用资产,因为我们的第一版实现是在以太坊网络上进行 ERC20 代币操作的合约系统。然而,以太坊的执行环境并没有使该做市算法成为可能的基础。

2、1 值函数(Value Function)

Balancer 交易函数的基础,是通过将值函数 V(池权重和余额的函数)约束为一个恒定值而定义的一个曲面。我们将证明,该曲面意味着每个点的现货价格,这样,无论进行什么交易,资产池中每个代币的价值份额都保持不变。

这个值函数 V 定义为:


其中,t 代表资产池中的代币范围;Bt 是池中代币的余额;Wt 是代币的归一化权重,因此所有归一化权重之和为 1;通过使 V 恒定,我们可以定义一个不变值曲面,如下图所示。

2、2 即期价格(Spot Price)

资产池中的每对代币都有一个即期价格,该价格完全由该对代币的权重和余额定义。任何两个代币之间的即期价格是代币余额按其权重归一化的比率:



其中:

Bi 是代币 i 的余额,进入池中的交易者会出售该代币;

Bo 是代币 o 的余额,交易者会从池中购买该代币;

Wi 是代币 i 的权重;

Wo 是代币 o 的权重;

从这个定义可以很容易地看出,如果权重保持不变,那么 Balancer 资产池提供的即期价格只会随代币余额的变化而变化。如果池的所有者不向池添加代币或从池中删除代币,则代币余额只能通过交易进行更改。恒定曲面会导致交易者购买的代币(token o)价格上升,交易者出售的代币(token I)价格下降。我们可以证明,每当外部市场价格与 Balancer 池提供的价格不同时,套利者将通过与该资产池交易获得最大利润,直到其价格等于外部市场的价格。当这种情况发生时,就没有更多的套利机会了。这些套利机会保证,在一个理性的市场中,任何 Balancer 池提供的价格与市场其他部分能够同步移动。

2、3 有效价格

重要的是要记住,即期价格是最小交易的理论价格,它不会产生任何滑动。实际上,任何交易的有效价格都取决于交易量,而交易量总是会导致价格变化。如果我们将 Ao 定义为交易者购买的代币 o 的数量,Ai 是交易者卖出的代币数量,那我们可以将有效价格定义为:

如上所述,当交易金额趋于 0 时,EP 趋向于 SP:

2、4 即期价格证明

现在让我们证明,V 的选择需要公式 2。

首先,我们知道交易者在购买的东西 Ao,是从合约余额中减去的,因此,Ao = −ΔBo。同样,交易者卖的东西 Ai,是合约余额的一部分,因此,Ai = ΔBi。

代入等式 2 和等式 3,我们得到:

p7

根据定义,该限制是减去 Bi 在 Bo 函数中的偏导数:

p8

根据等式 1 中的值函数定义,我们可以分离出 Bi:

p9

现在,我们使用等式 7 来展开等式 6 中的偏导数:

p10

这得出了我们要的证明。

2、5 恒定值分布证明

我们现在将证明:Balancer 资产池中的所有代币保持恒定的值份额;并且这些值份额等于和每个代币关联的权重;让我们计算,根据池中的任意代币 t 得出的总池值。既然我们已经知道该池中有 Bt 个代币 t,那我们计算一下所有其他剩余代币都值多少个代币 t。使用相对于代币 t 的有效价格没有意义,因为我们不会进行任何实际交易。相反,为了计算理论值,我们使用相对于代币 t 的即期价格。

从等式 2 我们可以计算 ,每个代币 n 的余额值多少代币 t:

3

我们知道,以代币 t 表示的总池值,是以代币 t 表示的每个代币的值之和:

4现在要计算 Sn(每个代币 n 在池中所代表值的份额),我们要做的就是将每个代币 n 的值除以池的总值:

6

这不仅证明了每个代币所代表的总池值份额是恒定的,而且还等于该代币的权重。

2、6 交易公式

如果我们认为值函数必须保持不变(即 V 在任何交易前和交易后必须具有相同的值),那么为任何给定的 Balancer 池计算交易结果将很容易。

但实际上,由于交易状态转换后有了交易费用,这导致 V 会增加。有关费用的更多详细信息,请参见实例:互换(Swap)和退出(Exit)费用章节内容。

2、6、1 Out-Given-In

当用户发送代币 i 以获得代币 o 时,所有其他代币余额保持不变。因此,如果我们将 Ai 和 Ao 定义为代币 i 和代币 o 的交换数量,则可以计算用户在发送 Ai 时获得的 Ao 数量。已知交易后的值函数应与交易前的相同,我们可以这样写:

7

2、6、2 In-Given-Out

对于交易者来说,知道他们需要发送多少输入代币 Ai 才能获得期望的输出代币 Ao,也是非常有用的。类似的,我们可以根据 Ao 的函数计算 Ai,如下所示:

8

注意,公式 11 所定义的 Ao 在 Ai<

2、6、3 In-Given-Price

出于实际目的,打算使用我们的合约进行套利的交易者,希望知道代币 i – Ai 的数量,他们必须将这些数据发送到合约中,以将当前即期价格更改为另一个所需的数值。

期望的即期价格通常是外部市场价格,只要合约即期价格与外部市场价格不同,任何套利者都可以通过与合约交易,并使合约价格接近外部市场价格来获利。

套利者可能获得的最高利润,是当他们将合约即期价格精确调整到外部市场价格时。如前所述,这是我们的设计成功跟踪市场价格的主要原因。当在区块链上实施它时,这使其成为可靠的链上价格传感器。

可以证明用户需要与代币 o 进行交易的代币 i–Ai 的数量,以便资产池的即期价格从变为:

9

2、7 流动性提供公式资产池代币

资产池可以聚合多个不同用户提供的流动资金。为了使它们能够自由地从资产池中存取资产,Balancer 协议引入了资产池代币的概念。资产池代币表示池中包含的资产的所有权。资产池代币的未偿供应量与池的值函数成正比。如果资产存款增加了 10% 的池值,则资产池代币的未偿供应也增加了 10%。这是因为存款人(depositor)获得了 10% 的新资产池代币作为存款回报。

有两种方式可以将资产存入池中,以换取资产池代币或赎回池代币:加权资产存/取款;单资产存/取款。

2、7、1 所有资产的存取款

「所有资产」存款必须遵循资产池中现有资产的分配。如果存款包含资产池中已存在的每种资产的 10%,则值函数将增加 10%,而存储人(depositor)将获得当前未偿还资产池代币供应量的 10%。因此,要在现有 P supply 总供应量的情况下接收 P issued 资产池代币,需要为池中的每种代币存储 Dk 个代币 k:

1

其中 Bk 是代币 k 在存款前的代币余额。

类似地,加权资产取款是一种反向操作,即池内代币持有人赎回其资产池代币,以换取池内每项资产的比例份额。在给定 P supply 的现有总供应量的情况下,通过赎回 P redeemed 资产池代币,可以从池中为每个池代币提取 Ak 数量的代币 k:

2

其中 Bk 是代币 k 在取款前的代币余额。

2、7、2 单资产存/取款

当用户发现池中的资产分配很有趣,因而希望向池中提供流动性时,他们可能没有按照加权资产存款要求的正确比例拥有所有资产。

Balancer 允许任何人通过将单个资产存放到共享池中来获取资产池代币,前提是该池中包含这一资产。

将单个资产 A 存入一个共享池,相当于按比例存入所有的池资产,然后出售更多资产 A 以收回存入的所有其他代币。这样一来,存款人(depositor)最终只会花费资产 A,因为其他代币的存款金额将通过交易返还。

用于将单个资产存放到共享池的资产池代币数量,可以从上面描述的值函数中导出。

单资产存款

资产池代币供应量的增加与值函数的增加成正比。如果我们将 P issued 定义为存款回报而发行的资产池代币的数量,那么:

3

其中 V′是存款后的值函数,V 是存款前的值函数。同时考虑到存款后资产 k 的余额,Bk 是存款前资产 k 的余额,我们有:

假设单资产存款是在资产 t 中完成的,那么所有其他代币的余额在存款之后都不会发生变化。然后我们可以写:

6

如果我们将 At 定义为存放在资产 t 中的金额,那么资产 t 的新池余额为B』t = B_t + A_t。然后,我们可以代入并获得新池代币P{issued}inreturnforasinge−assetdepositI_t发行数量的最终公式

7

单资产取款

当资产池代币的持有者希望赎回其资产池代币 P redeemed 以换取单个资产 t 时, 在资产 t, At 中取款的数量是:

6

其中 Bt 是取款前资产 t 的池余额。

事实是,使用上述定义的存款和取款公式,在不考虑任何费用的情况下,如果有人为 P issued 资产池代币存入 At 数量的资产 t,然后将相同数量的资产池代币兑换成资产 t,则他们将获得相同的初始 At 数量。

单资产存/取款交易费

在单资产 t 的情况下,向共享池存款或从中取款,相当于对池中所有其他资产的存款额交易 (1−Wt)。存入金额的 Wt 以资产 t 的形式由资产池持有,因此对其收取交易费用是不公平的。

实际上,如果我们忽略任何可能的资产池退出费,仅存入资产 i,并立即提出资产 o,由此产生的交易费用,与使用池提供的交易函数,从 i 到 o 进行的交易相同。

三、实例

关于 Balancer 的第一个版本实现,会有一些初始说明,我们将在发布源代码的同时发布一个更详细的系统说明。

3、1 以太坊平台上的免费软件 Balancer 是以 GPL3 许可的以太坊智能合约系统实现的。

3、2 发布 Balancer 协议会有 3 阶段发布计划,其中第一个称为青铜版本。青铜版本强调审计和代码清晰性,但没有对 gas 成本进行好的优化;

白银版本将带来很多 gas 优化和架构改进工作,这些更改将减少交易开销,并为受控池提供更大的灵活性。

而第三阶段的黄金版本将引入几个新的功能,旨在将整个系统连接在一起。

3、3 数值算法「理论」部分中的公式足以描述系统的功能规格,但对于 EVM 虚拟机而言,它们并不容易实现,部分原因是缺少成熟的定点数学库。

我们的实现结合了一些代数变换、近似函数和数值技巧的组合,来计算这些具有有界最大误差和合理 gas 成本的公式。

本节的其余部分内容将与青铜版本源代码同时发布。

3、4 受控池与最终池「青铜版本」的发行,允许资产池的两种基本信任层:可通过「控制者」地址配置的受控池(Controlled pool)。只有「控制者」地址才能向池中添加或移除流动性(调用 join 或 exit)。这种类型的资产池允许更改池资产类型及其权重。注意,由于控制者是一个地址,它在原则上可以实现任意逻辑,比如以类似于最终池的方式管理公共存款。关键的区别在于,官方工具不会将其视为一个「无需信任」的资产池。随着「白银版本」的发布,具有更高信任要求的受控池将成为可能。最终池(Finalized pool)具有固定池资产类型、权重和费用。至关重要的是,这使得 join 和 exit 能够以安全、无需信任的方式公开访问,同时保持最小的实现。

3、5 Swap 和 exit 费用「青铜版本」会在两种情况下收费:(1)当交易者(通过 swap 及其变体)交换代币,以及(2)当流动性提供者(通过 exit 及其变体)从池中移除其流动性时。

这两种费用都可以由控制者配置,但当池最终确定时,它们也是固定的。

100% 的 swap 费用会分配给流动性提供者,即每个资产池代币可赎回的基础代币数量会增加。

大部分的 exit 费会退还给留在资金池中的流动性提供者。

其余的 exit 退出费将转移到 Balancer Labs 公司控制的帐户中,用于开发未来的版本。

1.Vitalik Buterin: Let』s run on-chain decentralized exchanges the way we run prediction markets

2.Alan Wu: Building a Decentralized Exchange in Ethereum

3. https://uniswap.io/

4. Zargham, M., Zhang, Z., Preciado, V.: A State-Space Modeling Framework for Engineering Blockchain-Enabled Economic Systems. New England Complex Systems Institute (2018)

24小时热点

链圈打诈之缅北十大酷刑之:开火车

缅北美梦,女性酷刑:吃冰棍,开火车,喝珍珠奶茶... ...

883080

ZT GLOBAL 交易所

DAO的未来

币安研究院将DAO定义为「一种通过一套经多边方式商定的具有先 ...

14546

树图链

2024年比特币涨幅规划及价格预测

比特币作为加密货币的领军者,其价格波动一直是投资者、分析师和 ...

3571

区块链圈小菜鸡

国家支持传销组织吗

不,国家不能支持传销组织。传销指的是某些居无实际商业活动而以 ...

21488

Bitstamp交易所

诈骗项目九环智能合约模式

九环智能合约模式是一种应用在区块链环境中的可以用来预防诈骗的 ...

6885

Kine Protocol

中国十大骗局之pi network(π币、pi币、派币、兀币)

中国十大骗局之pi network(π币、pi币、派币、兀币 ...

1573373

Gemini 交易所

目前区块链有哪些应用

1、支付应用:由于区块链技术的安全和透明,使它成为交易支付领 ...

67536

18516260997

国内460种传销币套路和骗子币名单大曝光

打着区块链旗号,以聚集性传销、网络传销为手段,以每枚3元的价 ...

2118185

Coin Metrics

EMEX交易所介绍

EMEX交易所介绍 EMEX是一家在赛舌尔注册的区块链资产 ...

12393

知道创宇

马斯克宣布pi币可以买派手机

马斯克宣布可以用pi币购买派手机这一消息是虚假的。首先,派币 ...

171975

MXC交易所
广告

热点专题

专门忽悠企业家的中国十大骗子大师

区块链网创立于2015年初,为国内第一批有资质的区块链媒体, ...

2771466

希壤

2023年打假总结:Pi Network项目的传销性质Pi币

曾经,号称“走路就能赚钱”拥有大量用户和广泛影响的国内APP ...

2438069

文昌链

国内460种传销币套路和骗子币名单大曝光

打着区块链旗号,以聚集性传销、网络传销为手段,以每枚3元的价 ...

2118185

Coin Metrics

诈骗披露:成功学周文强

又一个“成功学”大师周文强翻车 你想一夜暴富吗?你想年薪百 ...

2053544

Lazy Lions

原力元宇宙佛萨奇骗局

原力元宇宙佛萨奇骗局是一种不可思议的幻想计划,它由一群英勇可 ...

1925327

聚币网

2024年美元兑人民币汇率预测:会涨到8元吗?市场密切关注

2024年美元兑人民币汇率吸引了许多投资者的关注,涨到8元的 ...

1881019

波场区块链浏览器

中国十大骗局之pi network(π币、pi币、派币、兀币)

中国十大骗局之pi network(π币、pi币、派币、兀币 ...

1573373

Gemini 交易所

柴犬币SHIB来了

因其可爱形象和马斯克代言,近段时间最耀眼的加密货币非狗狗币莫 ...

1280306

Luart

链圈打诈:3000名解放军去缅甸真的假的?

3000名解放军去缅甸这个是假新闻,出兵这是个大问题,如果我 ...

1199670

a16z

非常硬核的LP流动性挖矿的核算

MDX不同挖矿方法的真实收益率 如何挖取高APY?2021年 ...

1166411

RMRK