指数基金破坏者?一文了解DeFi新锐Balancer
写在前面:DeFi赛道的竞争已开始升温,尽管像Maker、Compound这样的老牌DeFi项目依旧占据了优势,但越来越多的挑战者正在涌现,而 Balancer 正是其中一个潜力股,你可以将自己的稳定币放入该协议池中,从而获得相比使用Compound更高的收益,原因在于,你不仅能从贷款利息中获得收益,还能因为提供流动性而获得交易费收益,此外,它还能避免无常损失。那它又是如何实现的呢?我们不妨通过Balancer的白皮书来具体了解它的设计。
注:原文作者是Fernando Martinelli和Nikolai Mushegian
目录
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;
2、2 即期价格(Spot Price)
资产池中的每对代币都有一个即期价格,该价格完全由该对代币的权重和余额定义。任何两个代币之间的即期价格, 或简称 ,是代币余额按其权重归一化的比率:
其中:
- Bi是代币i的余额,进入池中的交易者会出售该代币;
- Bo是代币o的余额,交易者会从池中购买该代币;
- Wi是代币i的权重;
- Wo是代币o的权重;
2、3 有效价格
重要的是要记住, 是即期价格,这是最小交易的理论价格,它不会产生任何滑动。实际上,任何交易的有效价格都取决于交易量,而交易量总是会导致价格变化。如果我们将Ao定义为交易者购买的代币o的数量,Ai是交易者卖出的代币数量,那我们可以将有效价格定义为:
如上所述,当交易金额趋于0时,EP趋向于SP:
2、4 即期价格证明
现在让我们证明,V的选择需要公式2。首先,我们知道交易者在购买的东西Ao,是从合约余额中减去的,因此,Ao = −ΔBo。同样,交易者卖的东西Ai,是合约余额的一部分,因此,Ai = ΔBi。
代入等式2和等式3,我们得到:
根据定义,该限制是减去Bi在Bo函数中的偏导数:
根据等式1中的值函数定义,我们可以分离出Bi:
现在,我们使用等式7来展开等式6中的偏导数:
这得出了我们要的证明。
2、5 恒定值分布证明
我们现在将证明:- Balancer资产池中的所有代币保持恒定的值份额;并且
- 这些值份额等于和每个代币关联的权重;
从等式2我们可以计算 ,即每个代币n的余额值多少代币t:
我们知道,以代币t表示的总池值,是以代币t表示的每个代币的值之和:
现在要计算Sn(每个代币n在池中所代表值的份额),我们要做的就是将每个代币n的值 除以池的总值 :
这不仅证明了每个代币所代表的总池值份额是恒定的,而且还等于该代币的权重。
2、6 交易公式
如果我们认为值函数必须保持不变(即V在任何交易前和交易后必须具有相同的值),那么为任何给定的Balancer池计算交易结果将很容易。但实际上,由于交易状态转换后有了交易费用,这导致V会增加。有关费用的更多详细信息,请参见实例:互换(Swap)和退出(Exit)费用章节内容。
2、6、1 Out-Given-In
当用户发送代币i以获得代币o时,所有其他代币余额保持不变。因此,如果我们将Ai和Ao定义为代币i和代币o的交换数量,则可以计算用户在发送Ai时获得的Ao数量。 已知交易后的值函数应与交易前的相同,我们可以这样写:
2、6、2 In-Given-Out
对于交易者来说,知道他们需要发送多少输入代币Ai才能获得期望的输出代币Ao,也是非常有用的。类似的,我们可以根据Ao的函数计算Ai,如下所示:
注意,公式11所定义的Ao在Ai<<Bi时趋向于 ,正如预期的那样。这可以用洛必达法则(L'Hospital rule)来证明,但这个证明不在本文的讨论范围之内。
2、6、3 In-Given-Price
出于实际目的,打算使用我们的合约进行套利的交易者,希望知道代币i – Ai的数量,他们必须将这些数据发送到合约中,以将当前即期价格 更改为另一个所需的 。
期望的即期价格通常是外部市场价格,只要合约即期价格与外部市场价格不同,任何套利者都可以通过与合约交易,并使合约价格接近外部市场价格来获利。
套利者可能获得的最高利润,是当他们将合约即期价格精确调整到外部市场价格时。如前所述,这是我们的设计成功跟踪市场价格的主要原因。当在区块链上实施它时,这使其成为可靠的链上价格传感器。
可以证明用户需要与代币o进行交易的代币i–Ai的数量,以便资产池的即期价格从 变为 :
2、7 流动性提供公式
资产池代币资产池可以聚合多个不同用户提供的流动资金。为了使它们能够自由地从资产池中存取资产,Balancer协议引入了资产池代币的概念。资产池代币表示池中包含的资产的所有权。资产池代币的未偿供应量与池的值函数成正比。如果资产存款增加了10%的池值,则资产池代币的未偿供应也增加了10%。这是因为存款人(depositor)获得了10%的新资产池代币作为存款回报。
有两种方式可以将资产存入池中,以换取资产池代币或赎回池代币:
- 加权资产存/取款;
- 单资产存/取款;
“ 所有 资产”存款必须遵循资产池中现有资产的分配。 如果存款包含资产池中已存在的每种资产的10%,则值函数将增加10%,而存储人(depositor)将获得当前未偿还资产池代币供应量的10%。因此,要在现有P supply总供应量的情况下接收P issued资产池代币,需要为池中的每种代币存储Dk个代币k:
其中Bk是代币k在存款前的代币余额。
类似地,加权资产取款是一种反向操作,即池内代币持有人赎回其资产池代币,以换取池内每项资产的比例份额。在给定P supply的现有总供应量的情况下,通过赎回P redeemed资产池代币,可以从池中为每个池代币提取Ak数量的代币k:
其中Bk是代币k在取款前的代币余额。
2、7、2 单资产存/取款
当用户发现池中的资产分配很有趣,因而希望向池中提供流动性时,他们可能没有按照加权资产存款要求的正确比例拥有所有资产。
Balancer允许任何人通过将单个资产存放到共享池中来获取资产池代币,前提是该池中包含这一资产。
将单个资产A存入一个共享池,相当于按比例存入所有的池资产,然后出售更多资产A以收回存入的所有其他代币。这样一来,存款人(depositor) 最终只会花费资产A,因为其他代币的存款金额将通过交易返还。
用于将单个资产存放到共享池的资产池代币数量,可以从上面描述的值函数中导出。
单资产存款
资产池代币供应量的增加与值函数的增加成正比。如果我们将P issued定义为存款回报而发行的资产池代币的数量,那么:
其中V′是存款后的值函数,V是存款前的值函数。同时考虑到 是存款后资产k的余额,Bk是存款前资产k的余额,我们有:
假设单资产存款是在资产t中完成的,那么所有其他代币的余额在存款之后都不会发生变化。然后我们可以写:
如果我们将At定义为存放在资产t中的金额,那么资产t的新池余额为
$$B’t = B_t + A_t$$
。然后,我们可以代入并获得新池代币
$P{issued}inreturnforasinge−assetdepositI_t$发行
数量的最终公式:
单资产取款
当资产池代币的持有者希望赎回其资产池代币P redeemed 以换取单个资产t时,在资产t, At中取款的数量是:
其中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) ↵
原文:https://balancer.finance/whitepaper/ 作者:Fernando Martinelli和Nikolai Mushegian 编译:洒脱喜 稿源(译):巴比特资讯(http://www.8btc.com/article/599680)
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum