[DEX系列] 1. 不同价值资产的交易

  • Decipher
  • 发布于 2022-07-22 16:55
  • 阅读 15

本文讨论了去中心化交易所(DEX)的背景及其内部机制,尤其是自动化市场制造商(AMM)的发展及其在不同DEX(如Bancor,Uniswap和Balancer)中的应用。文章详细阐述了AMM模型的数学原理,流动性管理以及不同项目在解决市场流动性问题及用户体验方面的创新和改进。

首尔大学区块链学会Decipher的DeFi探讨团队 DEX系列文章 。 探究了加密货币市场上推动发展的DEX,希望共同思考未来去中心化金融的发展方向。本系列介绍了在DEX的某些功能(如AMM算法)的基础上成立的项目。

[DEX Series]

  1. 不同价值资产的交易
  2. 相同价值资产的交易
  3. 期货交易
  4. MEV

目录

  1. 去中心化交易所(DEX)的背景
  2. AMM的出现及概念
  3. 各DEX的AMM模型及特点分析(Bancor, Uniswap, Balancer)
  4. 总结

1. 去中心化交易所(DEX)的背景

现有平台经济的问题

平台经济(platform economy) 是由平台(platform)推动的 经济 和社会活动(来源:维基百科)

据世界经济论坛(World Economic Forum, WEF)预测,2025年数字平台的收入将达到60万亿美元,未来10年全球新增价值的70%将通过数字平台创造(来源:https://froma.co/acticles/689

平台经济模型是指IT公司为人们创建一个进行经济活动的平台,并从中获得收益的经济模型。现有数字平台的代表性例子包括Uber、亚马逊、Facebook、谷歌等。快速发展的平台经济现在已经成为一个典型的经济模型,但随着快速增长许多弊端也随之出现。在赢家通吃的平台经济中,幸存的大型IT公司垄断了市场,参与者的报酬问题和超短期劳动者的产生等问题突显出来。实际上对平台有贡献的市场参与者却被平台商家持续地获取巨额财富,而不是直接雇佣的“人力服务”形式,因此需要对平台劳动者的权益问题进行应对的声音逐渐增多。

从平台经济到协议(Protocol)经济

协议经济是指个人间自发约定协议(承诺)来交易的形式,旨在通过去中心化和去垄断化降低交易成本,建立一个公平分配的生态系统。

(来源:KB知识维他命研究报告)

旨在解决平台经济问题的协议经济具有以下特点:

(1) 信息分散 — 在现有平台经济中,平台商家对信息拥有垄断权,通过信息获利。协议经济通过去中心化和分散化的信息,让每个人都能平等地获得信息。

(2) 最小化中介成本 — 成功垄断的平台商家可以按高额费用收取巨额利润。但实际上,在平台上创造价值的主体是用户,因此有必要对用户进行适当的报酬。协议经济的目标是在最小化中介成本的同时,公平地分配给生产实际价值的用户相应水平的利益。

(3) 共识规则 — 需要一种技术使得交易结算记录的验证可以在没有中介机构的情况下由网络参与者直接确认,这是相互信任的技术。

协议经济的最大基础技术是区块链。通过区块链技术,可以实现去中心化/去权力化的开放网络和规则的透明性,并且用户可以通过智能合约轻松设定不受现有平台约束的规则。

协议经济 - 去中心化交易所(DEX)的出现

现有的中心化交易所(CEX;Centralized Exchange)能够通过创造市场并收取买卖双方的交易手续费获取收益。交易所通过这样的垄断方式累积了巨额财富。

交易所业务也属于一种典型的平台商业形态,因此在区块链上出现去中心化交易所(DEX;Decentralized Exchange)也是理所当然的。通过区块链技术,交易所逐步尝试转变为去中心化的协议经济模型,因此去中心化交易所得以出现。

本文将集中分析去中心化交易所是如何实现的,尤其是AMM模型,并说明各去中心化交易所的特点和利用情况。

2. AMM(Automated Market Maker)的出现及概念

AMM的出现

订单簿(订单簿) 是在股票或加密货币交易时显示特定市场上存在的所有买卖订单的记录的屏幕。当有人新添加自己的 出价 时变成 做市商(Maker),而选择 当前存在的订单进行交易 则成为 交易者(Taker)。传统的交易者通过提交订单到订单簿中,并在产生相对立的角色交易者时便完成交易。

此外,订单簿上存在 最小价位单位。由交易所的政策确定,通常是根据品种的价格,10,000元以下的最小价位单位为某个数额,以上为另外一个数额。对于 流动性丰富 的品种, 所有价位 通常都以 最小价位单位间隔 进行定单挂单,而在 流动性不足的情况下,最高卖出价和最低买入价之间可能存在间隙。填补这间隙的则是市场做市商(Market Maker)或流动性提供者(Liquidity Provider)。市场做市商或流动性提供者与交易所或经纪商签订合同,填补交易的流动性,因为充足的交易流动性可以让交易者更加方便进行交易。

最初,以太坊链上的去中心化交易所 难以运营订单簿

(1) 提交买卖订单或取消交易须支付Gas费,因此 交易成本 变得非常高。试图通过去中介来提高效率而提升用户利益的去中心化交易所却反而需要更多的交易成本,是不合理的。

(2) 因为存在低扩展性问题 ,所以速度 非常慢,难以创建和管理订单。

由于无法将订单簿置于链上,交易者无法提交出价从而进行交易。由于这些问题,用户不再使用去中心化交易所,造成为 流动性减少用户便利性降低导致参与者进一步减少的恶性循环。这时,无需使用订单簿、自动将买卖双方连接,并通过市场价形成出价的自动化做市商(Automated Market Maker;AMM) 概念应运而生。

AMM的概念

AMM是 自动化市场做市商 的缩写,它移除了依靠激励提供报价的市场做市商,使得人们可以进行交易。以第一部分中涉及的代币交换DEX为例,用户把自己的代币放入去中心化交易所的 流动性池,而其他人则将要出售的代币放入并提取想要的代币。

我们要深入了解的 AMM模型 是研究 如何在流动性池中 '代币之间的价格是怎样被数学地形成''如何有效地获取流动性' 以及 '如何减少如滑点(slippage)等不必要的部分'。我们将按照DEX出现的时间顺序分析Bancor、Uniswap和Balancer。

3. 各DEX的AMM模型及特点分析(Bancor, Uniswap, Balancer)

Bancor的AMM

Bancor(以下简称“Bancor”)的名称源于第二次世界大战后 凯恩斯 提出的 超国家储备货币(Supranational reserve currency)。在DeFi概念出现之前的2017年,Bancor已经在以太坊上 发布了首个AMM模型

Bancor可以比喻为一个 自动售货机。它提出了BNT概念作为 智能代币。这一 智能代币 是连接所有其他代币的 连接器(connector)代币,使得所有代币之间的转换成为可能。可以看作是凯恩斯的超国家储备货币概念的相似之处。通过使用智能合约的算法,即使没有交易所的订单簿,也可以 使用智能代币交换所需的两种加密货币。用户将智能代币发送至智能代币合约,当智能代币放入Bancor协议时,便会转换为所需资产,而智能代币将被销毁。

BNT-DAI对的流动性供应过程与交换过程。

BNT代币的价格不固定于外部资产,而是可根据市场波动。Bancor V1中,向流动性池提供流动性的流动性提供者须持有所需提供的代币及BNT代币。因此,他们面临两个个别资产的风险暴露。

Bancor V2

Bancor作为第一代AMM(Automated Market Maker)面临了哪些问题,而V2又打算如何解决这些问题?

Bancor面临的问题

  1. 非自愿代币暴露:流动性提供者所提供的代币暴露于流动性池中多种代币价格波动,可能失去偏好的代币的多头头寸。
  2. 无常损失:当流动性提供者在流动性池中资产的价格比例失调时,LP代币的价值损失,暴露于无常损失之中。
  3. 高资本 低效率:滑点高,交易成本增加。

Bancor V2/V2.1的改进

  1. Bancor Exchange的单一代币曝光

在早期版本中,流动性提供者对AMM池中的所有代币存在曝光,而在V2中,可以选择单个ERC20代币向流动性池提供流动性。因此,流动性提供者无需持有额外的备用代币,用户能够选择在0–100%的范围内对AMM所有代币的暴露。

运作方式如下:

1) 为风险资产(如ETH,WBTC,LINK)或Bancor网络代币(BNT)的池提供流动性。

2) 为支持不含BNT的“单一代币存款”,协议会共同投资BNT以与用户存款匹配。例如,若用户存入$MATIC价值$100,000 USD,协议将向$MATIC池中添加$100,000的BNT代币。

3) 协议所投资的BNT通常在用户提取相关份额(即用户所存入的$MATIC)之前保留在池中,通过手续费,协议将销毁投资BNT及累计的手续费。

4) 投资于协议的BNT也可以在BNT代币持有者向池子提供BNT的情况下被销毁。当此时,用户存入的BNT从池中收回,该协议的价值将被销毁,与协议投资的BNT价值处于同一水平。

  1. Bancor网络的无常损失保护

无常损失(IL)是当池中不同代币的价格彼此偏离时产生的。偏差越大,IL风险越高,因此由于交易手续费与补偿导致LP的收益减少。IL加大的同时也意味着用户无法完全分享代币价格的上升。

在Bancor v2中,利用链上Oracle,当两资产对的价格比例发生偏离时,可自动调整每种代币的份额。这被称为动态自动化市场做市商(Dynamic Automated Market Maker;DAMM)。换句话说,初始供应的流动性使得两种资产的价值达到50:50,但随着价格的实时变化,可能变为54:46的比例,从而防止IL的发生。

(来源:https://www.youtube.com/watch?v=cizLhxSKrAc

此外,使用DAMM还可以减少滑点。Bancor团队声称,其 资本效率 可提升20倍。

Bancor v2.1取消了流动性提供者的IL风险,转向Bancor交换协议。该协议将IL风险聚合至整个池中。为补偿整个网络的IL成本,协议将利用从交换所收益的BNT共同投资于池。若在提款时LP的IL不足以完全补偿,协议将通过发行新BNT进行覆盖。

运作方式如下:

1) 当用户新存款时,协议的保险政策将每天增长1%,在100天后可保障IL损失的全部范围。

在这一期限结束后,初始100天或之后发生的所有无常损失将在取款时给予确认。在100天期限之前的提现只能获得部分IL的补偿。例如,在池中取款60天后,将获得60%补偿。

2) 对于在前30天内提款的份额,不提供IL的补偿。LP仅受诸如标准AMM中发生的IL的影响。

3) 换句话说,即使代币价格上涨,若LP在100天内获得完全保护,那么其仍可获得与保留代币的价值相同的撤回权。举个例子,如果LP存入1个ETH,且ETH价格翻倍,LP在质押期后仍可提取出至少与费用和补偿相等于1ETH的价值。

“使用Bancor V2 可以创建具有固定流动性准备金的AMM,以保持AMM中代币的相对价格(利用链上Oracle)。Oracle被用于在发生损失时激励套利者将价值带回池中,从而帮助调整池的权重与手续费,以减轻不稳定资产的永久损失。”

Bancor V3

2021年11月30日,Bancor发布了V3的路线图,其中包含Omni Pool、Infinity Pool、IL保护、自动复利奖赏、双向奖励、流动性方向等。

通过Omni Pool缩短交易路径,IL损失的保护以及其他一系列更新方向,都是为了实现流动性的高效供给和资本效率的提高。

Uniswap AMM模型

Uniswap的详细分析可以参考单独的Decipher系列(Uniswap探讨),本文将简要介绍。

Uniswap之前的常量和模型

最基本形式的AMM用于同一种资产间互换的流动性供给公式可以称为mStable的下一AMM公式。

X + Y = K

上述的AMM公式被称为常量和公式,正如名称所示,这一公式构思于两种资产价值的“和”为一定的概念。mStable主要用于稳定币间的转化,因此使用了这一公式。

可以应用此公式,创建用于交换不等于1的其他资产流动性池的公式如下:

p * X + Y = K

该公式使用两个资产价格的比率提供流动性,并利用该流动性池进行交换。

缺点

然而,以上公式存在一个重大缺点。如果两种代币价格比不断扩大的话,用户将持续从流动性池中交换价格上升的代币,导致流动性池中仅余较少价值的代币。这将导致资产的外部参照价格不再是1:1,且其中一方的流动性池可能被摧毁。

Uniswap的常量乘积公式

这种方法最初是由Vitalik Buterin构想并由Alan Lu进行推广。你可以通过熟悉Zargham的论文理解基于不变量的模型方法。

Uniswap比之前的常量和公式进行了改炼并使之成为标准。正如名称中的“乘积”所述,其利用两代币储备数量的乘积始终维持在一定范围内决定价格。

X * Y = K

不详请参考Decipher Medium之前的Uniswap系列

本文将审视Uniswap的发展轨迹。

在早期的Uniswap V1中,随机的ERC20代币对并不被支持。例如,要交换两个不同的代币,必须通过以太币进行兑换。也就是说,将我想出售的代币兑换成以太坊然后再通过以太坊转回别的代币。这种方式效率低下。

因此,在 Uniswap V2 中,为了改善 “交易效率”,支持ERC20代币对交易,并允许用户自行确定 交易路径 。以此提高了 交易效率。用户可以在不同目标中,选择直接交换两种代币或通过特定路径进行兑换。

UNI V3

关于Uniswap V3的详细信息请参考上文,本系列会简单讨论Uniswap的问题意识与解决方法。

基于CPMM功能交换代币时会发生 滑点 。在使用中心化交易所时,如果超出当前挂单的数量提交市场价的订单,也可能遭遇卖价上移和买价下降的体验,滑点概念应视为相似。这个滑点问题在 流动性不足的情况下更为显著

最终, 滑点问题 本质上属于 流动性问题。为改善Uniswap V2中的 “滑点问题”(资本效率),Uniswap V3被发布。

V3之前的Uniswap公式存在若干问题。

(1) 基于Uniswap设定的AMM公式,用户仅能充当 价格接受者(Price Taker) 的角色。在传统作市商模式下,用户可同时扮演 价格接受者(Price Taker)做市商(Maker) 两种角色,但是Uniswap存在了优秀合成机制的限制。(2) 使用 AMM 公式,用户提供的流动性被提供在价格范围 [0,∞) 的全部。在订单簿基础的交易所中,用户可以在自己期望的价格范围内挂单,而在完全偏离价格范围内,几乎没有人会挂单,因此在市场价格附近挂单的现象很常见。相比之下,Uniswap 的 AMM 也被称为“懒惰流动性”,因为资本并未被“有效”利用。

(3) 由于上述现象,价格滑点进一步加剧。在订单簿基础的交易所中,相同的 Tick 下交易时不会发生滑点,因此 Uniswap V3 试图解决上述三个问题。

V3 的核心,Tick是什么

Uniswap V3 提出的多数新功能都源于 Tick。

Tick 是最小的报价单位。之前我提到,即使在现有的中心化交易所中,也存在最小的报价单位。为了弥补用户提供的流动性在 [0, ∞) 价格范围内被全部供应的问题,交易/流动性被分成了 Tick 单位的小系统。

利用 Tick 的系统设计,Uniswap V3 将传统交易所的订单簿基础交易的优势与 AMM 的优点相结合。

集中流动性(Concentrated Liquidity)

例如,集中稳定币之间的流动性意味着流动性提供者(LPs,Liquidity Providers)可以在他们所期望的价格范围 / Tick 上提供流动性。

例如,在稳定币之间的交易对或同一价值资产(如 BTC 和 renBTC)之间的交易中,因为这些资产在特定价格上只会交易,所以只需在特定区间集中流动性即可。用户现在可以设置自己想要的区间供流动性,从而实现资本效率化。比如,当特定 Tick 上流动性主要被提供时,可以说流动性深度(Liquidity Depth)提升了。

Uniswap V2 和 V3 的流动性结构(深度)比较

通常,当用户对某项服务的成功与否进行比较时,会通过该协议的 TVL(Total Value Locked)来比较。还有人通过将总市值除以 TVL 以区分高估/低估的尝试。然而,Uniswap 在引入 V3 时宣称单纯的 TVL 比较变得毫无意义,因为它们在流动性上的使用更加高效,因此 Uniswap 的 $1 可能具有其他协议的 $100 TVL 的价值。最终,我认为 Defi 竞争的关键在于如何以有限的资本高效利用和提升用户体验,从而形成良性循环的结构。

Balancer 的 AMM 模型

由两个或更多代币构成的流动性池

Balancer 可以按照用户自定的比例将多个代币放入 流动性池 并构建其投资组合。这可以比喻为构建一个指数基金。投资者可以利用每个指数基金的策略来对冲风险和分散投资组合。管理指数基金的投资组合经理需要支付一定的费用以进行 再平衡和交易。此外,通过这种集中管理方式来管理投资组合可能存在托管风险。

Balancer 的价值函数 “V” 如下所示。

t : 表示流动性池中的每个代币

Bt : 表示流动性池中代币的余额

Wt : 表示流动性池中每个代币的占比的规范化数值。(Wt 的总和应为 1)

在上述公式中,每个代币的外部参考价格变化时,整个池中每个代币的价值占比是保持不变的

最终,Balancer 的流动性公式可以被视为Uniswap 流动性公式的一般形式

上述公式展示了当 x,y,z 三个资产按 Wx, Wy, Wz 的比率被放入时的 AMM 公式。

当将三个资产设置为相同的占比,且在交易 x,y 代币的情况下,z 代币不会对交易产生影响,可以视为常数。在这种情况下,Uniswap 的 Constant Product 公式如下得出

Balancer AMM 公式与之前 AMM 公式的区别

Balancer AMM 公式与之前的 AMM 公式有两个区别:

(1) 传统流动性池由两个代币构成的代币对组成,而Balancer 流动性池可以放入多个代币。

(2) 在构建传统流动性池并生成代币对时,要求两种代币的价值比为 50:50。而Balancer 流动性池可以随意设置代币们的比率

在 Balancer 中,基本上可以为交易创建N 维流动性池

上述图表示了由 3 个资产构成的流动性池的流动性分布图。由于是 3 个资产,所以形成了具有 3 个坐标轴的 3 维流动性池,当有 N 个资产时,将形成N 维流动性池

绿色的截面是 流动性截面的样子。考虑到在 X,Y 代币的交易中,可以将 Z 视为常数,如果沿着任意垂直于 z 轴的截面(黄绿色部分)切割该形状,便可以观察到与 Uniswap 的 AMM 曲线相似的曲线

各资产间的关系

如前所述,尽管它是一个由多个资产构成的代币池,但在实际交易希望的两个代币之外的其他代币可以视为常数。

(出处 : https://ko.0xzx.com/20200930118126.html )

在由 x, y, z, m 四个代币构成的池中,z 和 m 部分是 常数,因此可以得出由 x, y 变量和常数 k 组成的公式。

(出处 : https://ko.0xzx.com/20200930118126.html)

将 y³ 部分替换为 Y,则我们会得到我们熟悉的 X * Y = K 的 Uniswap AMM 公式。

资产的价值

总资产乘以各个资产的占比,可以得出 每个单独资产的价值。因此,总资产的价值是各个单一资产的价值由 单个资产的占比所除得的值

池中单独资产的价值

流动性池总体资产的价值

各资产的价格

如果想要卖出 i 资产并买入 o 资产,则特定时刻的相对价格(Spot Price) 为以下公式。

然而,当交易发生时,滑点 将不可避免地发生,并且根据滑点,交易的同时,价格也会微调。考虑到这一点,假设 A0 为用户购得的代币 o 的数量,Ai 为用户售出的代币 i 的数量,考虑滑点后的有效价格(Effective Price)为:

当 EP 趋近于极限时,上述表述的 SP 将成为瞬时价格,因此这两种价格之间的关系如下。

交易公式

即便在交易之后,流动性池的整体价值也应保持不变。因此,当交易前后 AMM 公式的结果值相等时,可以建立如下等式。

如果展开上述公式,当 Ai 代币被投入并获取 Ao 代币时,获取的 o 代币数量 Ao 与流动性池中 o 代币的余额(Bo)的关系为:

加权池的优点

流动性池内代币占比不同(以下称为加权池) 时,可以获得以下三个优点:

首先,可以控制风险暴露。使用加权池时,可以在维持提供流动性的能力的同时,选择对特定资产的价格变化或风险的暴露。例如,如果一位用户认为 A 代币的价格将大幅上涨,他可以向池中提供高比例的 A 代币。这样如果 A 代币的价格大幅上涨,便能获得可观的收益。

两个对和多个对的代币池比较

其次,Divergence Loss(非永久性损失)也会减少。当 A 代币的价格大幅上涨时,通过提高在加权池中 A 代币的比例,流动性提供者的 Divergence Loss(非永久性损失)也会减小。当然,尽管完全消除非永久性损失是不可能的,但可以通过以下图表看到它得以明显改善。相反,如果某一代币的比例过高,则其他代币的流动性可能会不足,因此滑点可能会发生,因此需要权衡滑点和非永久性损失的收益与损失。

当池的比重被设定为50:50时,非永久性损失为 0.62%(https://baller.netlify.app/

通过访问上述网站,你可以计算出在两种代币的比率不同的情况下,非永久性损失的发生程度,以及在多个代币下的非永久性损失。

加权池对价格上涨/下跌和 IL 更有优势

第三,可以增加代币的交易对。当加权池中有 n 个代币时,可以交易其中任何两个代币,因此可以交易的对数为 nC2。如下散点图所示,随着水平方向输入的池中代币数量,垂直方向可交易的代币组合数也随之增加。

根据流动性池中代币的数量,交易组合的数量

相同价值资产间交易

在稳定币之间的交易中,将会使用一个引入权重概念的新公式。

N : 流动池中代币的数量

xi : 代币的余额

A : 放大系数

D : D 通过重复计算得到,算法可在下述 github 上查看:

可以了解到放大系数越大则与恒定和公式的形状将更为相似

稳定交换交易是指同等价值资产之间的交换。例如,在与美国美元价值Hook的 DAI、USDT、USDC 和同一资产Hook的 WBTC、renBTC、hBTC 之间的交易。如同在 Uniswap V3 中所见,使用集合了恒定和公式与恒定乘积公式形式的 AMM 公式进行集中流动性交易。同等价值的资产之间的交易将在本系列的下篇文章中进行探讨。

应用

利用能够以不同占比来设定流动性池的 Balancer 池公式,可以创建 LBP(Liquidity Bootstrapping Pools)。流动性引导池在前面解释的加权 AMM 公式的基础上,增加了一个随时间变化的比例变量。可以设定池内的初始代币占比及最终代币占比。这种 引导池有三个优点

(1) 随着时间的推移,人们将利用流动性池进行交易,最终 找到市场均衡价

(2) 之前,当流动性池刚开启时,鲸鱼用机器人来大量购买,而设置了高初始价格的 LBP 池则能够防止鲸鱼的初期争抢,进而创造公平的市场

(3) 初期可以用小资金来创建流动性池。如果项目团队将特定代币 A 和 USDC 捆绑来创建初始流动性池,那么其他流动性池需要以 50:50 的比率来投入代币,而使用 Balancer 池的话,10% USDC 亦可创建流动性池,这样就减少了对资本的需求。

利用此方法的一种拍卖销售方式是著名的 Copper Auction。设置初始价格并定期向流动性池提供代币。如果投资者不购买,代币价格将逐渐下降,而如果投资者购买,则代币价格将逐渐上升。

最终,这种 Balancer 池的引导方式似乎在寻求解决“如何高效地使用和分配资本?”的问题。项目团队进行交流时,往往提到为了初步供应流动性而创建的池遭受了较大的非永久性损失,并且需要额外输入资本以提高流动性。通过小资金创建流动性池并找到适宜的市场价格后,定期注入代币时,项目团队可以阻止非永久性损失,并高效使用资本。此外,防止鲸鱼之间的机器人争抢,将使更大量的投资者能够以平衡价格获取(出售)资产。

结语

到目前为止,我们探讨了 DEX 的出现背景和 AMM 的发展历程。最终,新 DEX 的出现和升级版本的推出都是为了应对特定问题而集中。问题在于如何高效使用资本(集中流动性,防止非永久性损失),结果则是提高用户体验并引入更多流动性。

在本篇中,我们讨论了资产之间不同价值的 AMM 公式,而在下一篇中将通过 Curve 的案例探讨相同价值资产之间的交换 AMM 公式。

参考资料

  • 原文链接: medium.com/decipher-medi...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Decipher
Decipher
https://medium.com/decipher-media