从寻找下一个币安,到寻找下一个Uniswap

avatar
王也
4年前
本文约6662字,阅读全文需要约9分钟
从前“做下一个币安”的愿景已不太可能实现,“做超越 Uniswap 的 DEX”则看上去更加可行。

文 | 王也  编辑 | 郝方舟

出品 | Odaily星球日报(ID:o-daily)

从寻找下一个币安,到寻找下一个Uniswap从销毁平台币到跟风 IEO,过去几年,“长尾”交易所们一直在复刻头部交易所的展业路线。

这两个月,风向变了。DeFi 火热,DEX 吸金,资本热钱纷纷押注去中心化交易所赛道,“三大”在内的 CEX 也纷纷投身 DeFi,成立专项基金,寻找下一个爆火良机。

从前“做下一个币安”的愿景已不太可能实现,“做超越 Uniswap 的 DEX”则看上去更加可行。毕竟 Uniswap 自身也有许多备受诟病的问题,如果 DeFi 热潮持续,新的 DEX 崛起可期。

7 月 27 日,中心化衍生品交易平台 FTX 宣布推出基于 Solana 公链的 DEX——Serum。

8 月 4 日,Hakka Finance 发布去中心化稳定币闪兑工具 BlackHoleSwap 白皮书,BlackHoleSwap 对标目前大火的去中心化稳定币兑换平台 Curve。

8 月 8 日,DeFi Labs 创始人代世超在 2020 以太坊技术及应用大会上宣布去中心化交易所 DODO 将上线 ETH/USDC 交易对。

8 月 11 日,链上聚合交易平台 1inch 推出自动做市商(AMM)Mooniswap,支持用户以去中心化和非托管的方式在代币之间切换。 

头部跨链协议 Cosmos 也入局了,8 月 14 日,IRISnet 研究总监 Jeffrey Hu 在推特上表示,Cosmos 即将推出类似 Uniswap 的平台 Coinswap。 

其它在过去始终未能俘获大众的老牌 DEX 也纷纷发力。8 月 1 日,Bancor V2 上线,新增了多项亮眼功能,其提供单个代币流动性的做法,显然也是在解决 Uniswap 的痛点。8 月 7 日,去中心化交易所 IDEX 宣布完成 250 万美元的种子轮融资,由 G1 Ventures 和 Borderless Capital 领投,计划下个月发布 2.0 版本。

上述例子都是积极的探索,也为币圈从业者开辟了新的业务方向。

流动性挖矿的东风打破了 DEX 多年的流量困局,AMM(自动做市商)通过存入代币在去中心化资金池的方式提高流动性。据 The Block,DEX 在 7 月的交易量超过 40 亿美元,创历史新高;同时,DEX 与中心化交易所交易量的占比增加至近 3.95%,而年初这个数字还是 0.1%。

从模式进化到数据表现,DEX 前景逐渐明朗。

但 DEX 仍处于混战时期,竞争格局不确定,各具特色的新玩家层出不穷,每家都有可能突围而出。

本文中,Odaily星球日报将先普及一些关于 DEX的入门知识(有基础的读者可以跳过),呈现 DEX 在撮合方式上的演变路径,最终讨论 DEX 未来的进化方向。

从订单簿到AMM的范式革命

DEX 按撮合方式可以分为订单簿(Order Book)、自动做市商(AMM,Automated Market Maker)和聚合器(Aggregator)三种。本文我们主要介绍最常见的订单簿和 AMM。

在正式介绍之前,我们首先要了解什么是做市商 (Market Maker)。

据 MakerDAO 中国区负责人潘超介绍,做市商不同于普通交易者,他们是风险中性的,一手持有股票,一手持有现金。在订单簿模式下,会同时布上买单和卖单,中间为价差。类似的,柜台模式的做市商会在客户询价时给出有利可图的报价。

做市商是流动性的来源,高流动性市场需要做市商,同时也吸引规模化的做市商参与。

下面我们分别看看订单簿下和 AMM 模式下做市商是如何工作的。

订单簿

币安、火币、OKEx 等中心化交易所的撮合都基于订单薄模型。在订单簿中包含了买单(出价)和卖单(要价)列表,并列出了在每个价格点出价或要价的数量。 

在订单簿式交易所中,需要做市商通过挂单来提供流动性。如果订单簿交易所没有流动性,会出现想买买不到、想卖卖不出的情况,因此流动性是衡量一个交易所的重要指标,流动性越好,成交越便捷。

在 DEX 中,订单簿又可分为链上订单簿和链下订单簿。 

  • 链上订单簿 

链上订单簿模式,指所有的买卖挂单都存储在区块链上,订单簿中的订单会根据设定的买卖盘条件进行订单撮合和交易结算。 

早期的基于以太坊的去中心化交易所 EtherDelta 采用的这种模式,用户的充值、挂单、交易结算、提现等全部由智能合约来完成。由于没有订单自动撮合的机制,其上的每笔交易均需要在链上确认。其订单模式如下图所示:

从寻找下一个币安,到寻找下一个Uniswap

Maker 填写订单请求,并用私钥签名后提交到区块链上锁定,Taker 从链上订单簿中选择希望交易的订单,并发起一笔交易,然后由智能合约对 Maker 和 Taker 的交易需求进行匹配,交易成功后在链上进行结算。

链上订单模式的优点是直接通过钱包交易,透明度和安全性较高,但其交易流程都在链上,交易速度较慢,确认时间较长,影响用户体验。同时订单交易深度较差,并且交易费用较高,也可能因为链上的一些拥堵、Gas 等原因导致交易失败等情形的发生。 

  • 链下订单簿

与链上订单簿相比,链下订单簿模式最大的特点是:链下订单撮合 + 链上结算。0x、IDEX1.0 等属于此种模式。

0x 是一个可以在以太坊区块链上进行 ERC20 代币对等交易的开放式协议。该协议在技术上引入了 Relayer(订单中继)的概念。Relayer 负责在链下收集用户(Maker/Taker)订单、初步撮合后提交到链上进行结算。0x 的订单流程如下图:

从寻找下一个币安,到寻找下一个Uniswap

由 Relayer 对外提供订单簿服务,主持和维护一个链下订单。Maker 和 Relayer 以无需信任的方式谈判交易费用、订单,然后由 Relayer 将订单提交给订单簿,Taker 对选中的订单进行填充,并广播至以太坊区块链上,由智能合约完成最后的清算流程。

以 0x 为代表的“链下订单 Relayer 匹配+ 链上结算”的混合设计模式,将状态通道的效率与即时结算的链上订单相结合,大大降低了市场交易双方的摩擦成本,结算速度加快,消耗费用降低。 

今年 7 月正式上线的 Augur 2.0 版本的预测市场也采用了由 0x 协议支持的链下订单簿,然而用户对 Augur 新版本的反响似乎并不热烈。 

基于 Relayer 的订单薄技术可以是中心化的也可以是非中心化的,在一定程度上牺牲了部分去中心化特性,但与中心化的交易所相比,用户体验、交易速度上仍偏弱。

总得来说,订单簿模式下的 DEX 寄生于 CEX 的流动性:无法共享流动性,并且重运营,获取流量成本较高。

AMM模式下:套利商赚差价,做市商分红

今年 6 月,去中心化借贷平台 Compound 创新的流动性挖矿模式(也被称为 Yield Farming)让 AMM 得以大火,目前市面上比较火热的 DEX(Uniswap,Bancor,Kyber)几乎都是用的 AMM。

AMM 交易所不需要提供订单簿来展示买卖双方想要成交的价格,而是将流动性汇集到一起,并根据某种特定数学算法实现做市。

以 Uniswap 为例,其定价曲线数为经典的 X*Y=K,恒定常数乘积。X 是新币的数量,Y 是 ETH 数量,K 是常数。新币的发型方以一定的比例创建交易池,同时也确定了新币的上币价格,即 X 与 Y 的比例。由于 X 与 Y 是构成恒定乘积的关系,X 和 Y 是此消彼长的关系,有人在该合约中购买新币 X,那 Y 的数量就会增加。

从寻找下一个币安,到寻找下一个Uniswap

下面我们来举个例子让大家理解 x 和 y 此消彼长的关系。 

投资者小明想为 Uniswap 中的 ETH/DAI 交易对提供流动性,假设 1ETH=400DAI,Uniswap 的公式就是 1(ETH)*400(DAI)=400(固定的常数)。如果小明想要购买价值 50DAI 的 ETH,在 ETH/DAI 池子里面注入 50DAI 的流入量,同时减少 ETH,那么为了保证乘积还是常数 400,池子里面还留下的 ETH 的数量=400/(400+50)=0.89,最后小明能拿到的 ETH 数量=1-0.89=0.11。

通过小明为 Uniswap 中 ETH/DAI 交易对提供流动性的例子,我们可以看到为了维持 X*Y 的乘积固定,随着注入的 DAI 的不断增多,池子中剩余的 ETH 减少。

DODO CMO 代世超向 Odaily星球日报表示, X*Y=K 定价机制决定了买入哪一边的数量多,与之相应的币种价格就会上升。所以,在这个池子中,只要有人买入新币X,就会推动它的价格一直上涨。

如果小明想要再买 50DAI 的 ETH,他又需要继续向池子中注入 50DAI 的流入量。注意,此时 ETH/DAI 池子里剩下 0.89ETH 和 450DAI,小明再次向池子中注入 50DAI 之后,为了保证 K 值维持在 400,这时候池子里还留下的 ETH 数量=400/(450+50)=0.8,这次小明能拿到的 ETH 数量=0.89-0.8=0.09。

我们可以清晰地看到,同样是购买 50DAI 的 ETH,小明第二次拿到的 ETH 明显变少了,也就是说 DAI 的单价变贵了,这就是用函数来定价的一个特点:X 被买走的越多,X 越贵;X 被卖的越多,X 越便宜。

这样的滑点也会引来套利者的注意。小明第二次以 0.09ETH 的价格卖出了 50DAI,按照 X*Y =K 的关系,如果这时候套利者买入 50DAI,就只需要花费 0.09ETH,这就与第一次买入 50DAI 的价格(0.11ETH)形成了价差。 

潘超将 Uniswap 比作一个特殊的自动售卖机,只要有人买走商品,该商品的价格就会提高,且取的越多,价格飙升越快,直到做市商和套利商补货。 

在订单簿模式下,做市商赚交易费和价格差这两个部分的钱;在 AMM 中,做市商,或者说流动性提供者只赚交易费这一个部分的钱,而套利者则赚价格差这一部分的钱,即 AMM 模式下套利商赚差价,做市商分红。

因此,DEX 采用 AMM 模式,是 DeFi 从 0 到 1 的创新,降低了普通用户成为做市商的门槛,开辟了“人人皆可做市”的时代。

AMM模式的缺陷在哪里?

相较于传统订单簿模式,AMM 具有自动化、低成本和高效的优势,但在定价权、无常损失、滑点等方面存在一定的问题。 

  • 无法独立定价

根据欧科云链研究院的分析,AMM 因缺少价格发现功能而无法对新币进行独立定价。 

做市商的收益主要来源于买卖差价,在对市场进行做市时,以收益最大化为目标。这要求做市商必须充分利用市场信息,提出报价。与此同时,投资者根据做市商的报价做出投资决策,并将自己的交易信息及时反馈给做市商,随后做市商再根据手上的资产头寸和价格差异调整报价。因此,在做市商与投资者的共同推动下,市场可以发现真实的交易价格。

然而,AMM 模式下并没有价格发现的功能。

比如在某一资产的交易上,用户 A(做市商 A)挂出的是 5 美元/手的买单,用户 B(做市商 B)挂出的是 10 美元/手的买单,在竞价制度或做市商制度下,B 会先实现交易,但 Uniswap 平台无法保证 B 先成交。因为 AMM 的价格是靠流动性驱动的,交易价格由储备池的资产情况决定,而非订单价格决定,即 AMM 只能产生交易价格,却不能发现市场价格。为此,AMM 不得不引入套利者这一重要角色:一旦 AMM 平台上的价格与市场公允价格不同,就会出现套利空间,并将价格拉回正轨。

欧科云链研究院认为金融市场交易制度的核心是发现价格功能,AMM 这种无法发现价格的交易制度注定无法成为主流。

代世超也认为,AMM 模式下,新币的发行价格过度受制于项目方自己。

“在新发行的场景下,不同于已有的加密资产交易,其分散度是很低的,新币的筹码都集中在项目发行方的手中。这就导致 DEX 的流动性池子几乎只能由项目方自身注入,缺乏普遍参与的流动性提供者。同时,多市场套利的机制可能就失效了,项目方向流动性池子中注入代币的数量和时机都会直接影响价格。”代世超告诉 Odaily星球日报。

首先来说注入的数量问题,由于 DEX 定价曲线的特征,注入代币的数量越多,其交易滑点越低,也就是说买入单位新币的价格变化就越小,所以,代币池的总量和比例直接决定了价格。

所以,当注入池子中的币很少的时候,往往要注意。

同时,由于 Uniswap 的定价曲线理论上希望提供无限的流动性,那么当某个币在池子中被买的只剩很少的时候,其边际价格会变动非常的大。 

其次是注入时机的问题。如果要多次注入,那么每一次注入代币对整体价格影响都是非常大的。

  • 无常损失:挖款收益没有跑赢持币收益

无常损失是 AMM 池当前对于流动性提供商最不利的地方,也是 DEX 发展的最大阻力之一。

首先我们要明白什么是无常损失:相较于只是简单地持有代币,向 AMM 提供流动性的用户可能会看到其质押的代币在损失价值,这种风险被称为“无常损失”。 

简单来说,假设你为 ETH/DAI 代币池提供流动性,但如果 ETH 涨得很快,为了维持 K 乘积的固定值,那么你持有的 DAI 就会变多,ETH 的数量变少,你手中原本低价买入的 ETH 被套利者用 DAI 悄悄换走了,那么你为代币池提供流动性获得的收益,可能还不如直接持有 ETH 带来的收益。

我们曾在一次流动性挖矿中切身体会到无常损失,因为质押的代币价格在流动性挖矿期间翻了三倍,导致挖矿收益没有跑赢持币收益,最后我们索性退出质押挖矿,直接持有代币。 

从本质上来说,无常损失实际上来源于套利行为。AMM 的交易价格与市场公允价格是脱轨的,为此需要套利者进来购买被低估的资产或卖出高估的资产,直到 AMM 提供的价格跟外部市场匹配。因此,套利者的利润实际上来自于流动性提供者。

如果无常损失超过了流动性收益,那么流动性提供者将不再提供流动性。因此无常损失的大小是决定 AMM 类 DEX 能否正常运营的关键。

下图展示了代币价格变化和无常损失之间的关系:

从寻找下一个币安,到寻找下一个Uniswap

图片来源于:机械钟

以三个点为例子:黄线与蓝线的交叉点是当外部价格没有发生变化时,无常损失为零;绿线与蓝线的交叉点分别是当价格跌了 50% 后,以及价格涨了 100% 后,无常损失都为 -5.7%,不难发现无常损失与价格变化的幅度有关,与代币涨跌方向无关。 

  • 滑点太高,AMM 类 DEX 只适用于日常小额兑换

经常有用户抱怨在 Uniswap 中的交易滑点太高,不划算。确实如此,除了少数流动性池的流动性比较可观之外,多数代币的流动性池并不适合较大额度的交易。

滑点过高的问题也是阻碍机构投资者和新用户进入 AMM 类 DEX 的一大原因。 

在文章第一部分我们已经举例解释了滑点出现的背后逻辑,滑点是 DEX 用函数来定价的一大缺点,也引来了套利者的进场,而套利行为又带来了无常损失的出现。 

有趣的是,滑点和无常损失间存在一些互斥关系,减少滑点追逐的是一种价格的稳定,减少无常损失追逐的是一种价格的变化,优化一边可能会损失另一边。

所以从某种程度上来说,对于 AMM 类 DEX 来说,无常损失和滑点也可以看作自动做市商身体的一部分,只能调整和改善节奏,而不可强行驱逐。“无滑点”和“消除无常损失”的说法至少在目前看来都是不可信的,因为滑点的降低和无常损失的减少必然都是以对方的增加为代价的。

谁会成为下一个Uniswap?

虽然滑点和无常损失是不可消除的,但是可以在可控范围内提前调控。

前文我们提到了滑点与 DEX 选择的定价函数有关,以 Uniswap 为代表的 AMM 为例,从模型上看,由于其采用恒定乘积模型(x*y=k),导致其滑点过高。

那么什么样的模型可以降低滑点呢?——恒定总和模型(X+Y = K)。

还是以小明为 ETH/DAI 池子中注入流动性为例,假设池子里最初有 50ETH 和 50DAI,那么 K 就恒定在 100,小第一次拿 5ETH 可以换得 5DAI,第二次依旧可以用 5ETH 换得 5DAI,K 始终维持在 100。

但是该函数有一个致命的缺点,就是很容易耗尽储备池的资产。假如在这个市场外 1ETH 买不到 1DAI,(而 ETH/DAI 的池子永远是 1ETH=1DAI),就会有另一种套利者来该市场买走所有的 DAI,让交易池里只剩下 100ETH。

因此,一种理想的方式是构建一种混合函数,如果两种资产的价格相对稳定,就可以降低函数中的滑点值;当储备池中的资产流动性不足时,则迅速提高价格,实现理论上的无线流动性。Curve 就为此构建了一个复杂的函数,恒定函数模型 StableSwap:

从寻找下一个币安,到寻找下一个Uniswap

x 是每种资产的储备量, n 是资产的种类, D 是一个不变量,代表储备中的价值,A 是“放大系数”,即一个可调的常数,提供一种类似杠杆的作用,影响资产价格的范围,并影响流动性提供者的利润空间(即资产的波动性越高,A 也越大) 。

当投资组合比较均衡时,这个函数作为一个恒定总和函数而发挥作用,当投资组合变得更不均衡时,它转换为一个恒定乘积函数,由此实现了滑点与流动性的兼顾。 

Bancor V2 通过使用预言机引入外部世界的价格,从而降低交易池与外部世界价格不一致的风险,减少无常损失。

Bancor V2 采用预言机喂价,来调整代币两边的权重,也就是X代币数量*X价格不必等于 Y代币数量*Y价格,把套利机会用预言机给磨平了。 

而对于如何降低滑点,BancorV2 则是通过放大流动性来降低滑点,此举 Bancor V2 借鉴了 Curve,引入 stable curve 机制。BancorV2 的曲线介于 Curve 和 Uniswap 之间,代数公式上介于 X*Y=K和X+Y=K 之间。利用更平滑的曲线,去减少滑点。简单理解就是比 Uniswap 同样流动性下放大了 20 倍。

从寻找下一个币安,到寻找下一个Uniswap

拥有 100,000 美元储备的 AMM 将在 10,000 美元交易中产生 10% 的滑点。但是,如果引入 BancorV,流动性就被放大 20  倍,则同一笔交易的滑点将减少到1%。 

除了这些老牌 DEX 在降低滑点和减少无常风险上不断摸索,新兴的 DEX 也提出了一些解决方案。

比如对标 Curve 的稳定币兑换平台 BlackHoleSwap。虽然 Curve 的混合函数模型在⼤部分情况下提供很好的稳定币交易深度,但是⼀旦单边的储备接近耗尽时,仍会出现巨大的滑点。

对此,BlackHoleSwap 设计了一个新系统,允许系统拥有负数的存货,通过整合借贷协议的方式,抵押量多的币,借出不足的币,可以处理远超过储备的成交量。

BlackHoleSwap 将储备货币存入借贷平台,当交易对中其中种货币的存货耗尽,而市场仍有需求时,BlackHoleSwap 会以另⼀种货币做为抵押,从借贷平台中借出需求货币以完成交易。因此,BlackHoleSwap 不会受限于的存货量,可以在保持低滑价的同时无须担心存货耗尽 。

1inch.Exchange 推出的 Mooniswap 是具有虚拟余额的自动做市商,流动性提供商能够获取套利者原本可以获取的利润。借助 Mooniswap,1inch 计划通过引入 5 分钟延迟来降低套利者的利润率,从而降低流动性提供商的短期损失。通过延迟价格更新,做市商将为套利者创造一个高度竞争的环境,迫使他们以利润较低的价格进行交易,这反过来将增加流动性提供者的价值。1inch 预计 Mooniswap 为流动性提供商带来的收入将比 Uniswap V2 高出 50-200%。

还有文章开篇我们提到的基于主动做市商算法的去中心化交易所 DODO。DODO 借鉴了 BancorV2,通过 Oracle 引入市场中间价,将大部分资金聚集在市场中间价附近。DODO 可以在资金池规模与Uniswap类似的情况下,流动性超过Uniswap十倍(滑点为 Uniswap 1/10), 或者在资金池为 Uniswap 1/10 情况下,达到和 Uniswap 类似的流动性。

现在的 DEX 市场有点像 2018 年的公链市场,正呈现出百花齐放、百家争鸣的竞争状态,甚至可以说 2020年是 DEX 元年,至于最后谁能跑出来,成为下一个 Uniswap,这还需要市场和时间的验证,以及 DeFi 热潮的助推。

参考资料:

TokenClub研究院:《深度 | 去中心化交易所综述》

欧科云链研究院:《欧科云链研究院:金融市场交易的范式革命 ---自动做市商制度(AMM)》

李画:《以逻辑为工具轻松看懂DeFi:DEX 篇》

蓝狐笔记:《为什么自动做市商可能会亏钱?》

林明:《Bancor V2技术深度讲解—林明FirstPool》

原创文章,作者:王也。转载/内容合作/寻求报道请联系 report@odaily.email;违规转载法律必究。

ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

推荐阅读
星球精选