RAID:从寻找下一个币安,到寻找下一个Uniswap_OMG

文|王也编辑|郝方舟出品|Odaily星球日报

从销毁平台币到跟风IEO,过去几年,“长尾”交易所们一直在复刻头部交易所的展业路线。这两个月,风向变了。DeFi火热,DEX吸金,资本热钱纷纷押注去中心化交易所赛道,“三大”在内的CEX也纷纷投身DeFi,成立专项基金,寻找下一个爆火良机。从前“做下一个币安”的愿景已不太可能实现,“做超越Uniswap的DEX”则看上去更加可行。毕竟Uniswap自身也有许多备受诟病的问题,如果DeFi热潮持续,新的DEX崛起可期。7月27日,中心化衍生品交易平台FTX宣布推出基于Solana公链的DEX——Serum。8月4日,HakkaFinance发布去中心化稳定币闪兑工具BlackHoleSwap白皮书,BlackHoleSwap对标目前大火的去中心化稳定币兑换平台Curve。8月8日,DeFiLabs创始人代世超在2020以太坊技术及应用大会上宣布去中心化交易所DODO将上线ETH/USDC交易对。8月11日,链上聚合交易平台1inch推出自动做市商Mooniswap,支持用户以去中心化和非托管的方式在代币之间切换。头部跨链协议Cosmos也入局了,8月14日,IRISnet研究总监JeffreyHu在推特上表示,Cosmos即将推出类似Uniswap的平台Coinswap。其它在过去始终未能俘获大众的老牌DEX也纷纷发力。8月1日,BancorV2上线,新增了多项亮眼功能,其提供单个代币流动性的做法,显然也是在解决Uniswap的痛点。8月7日,去中心化交易所IDEX宣布完成250万美元的种子轮融资,由G1Ventures和BorderlessCapital领投,计划下个月发布2.0版本。上述例子都是积极的探索,也为币圈从业者开辟了新的业务方向。流动性挖矿的东风打破了DEX多年的流量困局,AMM通过存入代币在去中心化资金池的方式提高流动性。据TheBlock,DEX在7月的交易量超过40亿美元,创历史新高;同时,DEX与中心化交易所交易量的占比增加至近3.95%,而年初这个数字还是0.1%。从模式进化到数据表现,DEX前景逐渐明朗。但DEX仍处于混战时期,竞争格局不确定,各具特色的新玩家层出不穷,每家都有可能突围而出。本文中,Odaily星球日报将先普及一些关于DEX的入门知识,呈现DEX在撮合方式上的演变路径,最终讨论DEX未来的进化方向。从订单簿到AMM的范式革命

DEX按撮合方式可以分为订单簿、自动做市商和聚合器三种。本文我们主要介绍最常见的订单簿和AMM。在正式介绍之前,我们首先要了解什么是做市商(MarketMaker)。据MakerDAO中国区负责人潘超介绍,做市商不同于普通交易者,他们是风险中性的,一手持有股票,一手持有现金。在订单簿模式下,会同时布上买单和卖单,中间为价差。类似的,柜台模式的做市商会在客户询价时给出有利可图的报价。做市商是流动性的来源,高流动性市场需要做市商,同时也吸引规模化的做市商参与。下面我们分别看看订单簿下和AMM模式下做市商是如何工作的。订单簿币安、火币、OKEx等中心化交易所的撮合都基于订单薄模型。在订单簿中包含了买单和卖单列表,并列出了在每个价格点出价或要价的数量。在订单簿式交易所中,需要做市商通过挂单来提供流动性。如果订单簿交易所没有流动性,会出现想买买不到、想卖卖不出的情况,因此流动性是衡量一个交易所的重要指标,流动性越好,成交越便捷。在DEX中,订单簿又可分为链上订单簿和链下订单簿。链上订单簿链上订单簿模式,指所有的买卖挂单都存储在区块链上,订单簿中的订单会根据设定的买卖盘条件进行订单撮合和交易结算。早期的基于以太坊的去中心化交易所EtherDelta采用的这种模式,用户的充值、挂单、交易结算、提现等全部由智能合约来完成。由于没有订单自动撮合的机制,其上的每笔交易均需要在链上确认。其订单模式如下图所示:

Maker填写订单请求,并用私钥签名后提交到区块链上锁定,Taker从链上订单簿中选择希望交易的订单,并发起一笔交易,然后由智能合约对Maker和Taker的交易需求进行匹配,交易成功后在链上进行结算。链上订单模式的优点是直接通过钱包交易,透明度和安全性较高,但其交易流程都在链上,交易速度较慢,确认时间较长,影响用户体验。同时订单交易深度较差,并且交易费用较高,也可能因为链上的一些拥堵、Gas等原因导致交易失败等情形的发生。链下订单簿与链上订单簿相比,链下订单簿模式最大的特点是:链下订单撮合+链上结算。0x、IDEX1.0等属于此种模式。0x是一个可以在以太坊区块链上进行ERC20代币对等交易的开放式协议。该协议在技术上引入了Relayer的概念。Relayer负责在链下收集用户订单、初步撮合后提交到链上进行结算。0x的订单流程如下图:

由Relayer对外提供订单簿服务,主持和维护一个链下订单。Maker和Relayer以无需信任的方式谈判交易费用、订单,然后由Relayer将订单提交给订单簿,Taker对选中的订单进行填充,并广播至以太坊区块链上,由智能合约完成最后的清算流程。以0x为代表的“链下订单Relayer匹配+链上结算”的混合设计模式,将状态通道的效率与即时结算的链上订单相结合,大大降低了市场交易双方的摩擦成本,结算速度加快,消耗费用降低。今年7月正式上线的Augur2.0版本的预测市场也采用了由0x协议支持的链下订单簿,然而用户对Augur新版本的反响似乎并不热烈。基于Relayer的订单薄技术可以是中心化的也可以是非中心化的,在一定程度上牺牲了部分去中心化特性,但与中心化的交易所相比,用户体验、交易速度上仍偏弱。总得来说,订单簿模式下的DEX寄生于CEX的流动性:无法共享流动性,并且重运营,获取流量成本较高。AMM模式下:套利商赚差价,做市商分红今年6月,去中心化借贷平台Compound创新的流动性挖矿模式让AMM得以大火,目前市面上比较火热的DEX几乎都是用的AMM。AMM交易所不需要提供订单簿来展示买卖双方想要成交的价格,而是将流动性汇集到一起,并根据某种特定数学算法实现做市。以Uniswap为例,其定价曲线数为经典的X*Y=K,恒定常数乘积。X是新币的数量,Y是ETH数量,K是常数。新币的发型方以一定的比例创建交易池,同时也确定了新币的上币价格,即X与Y的比例。由于X与Y是构成恒定乘积的关系,X和Y是此消彼长的关系,有人在该合约中购买新币X,那Y的数量就会增加。

下面我们来举个例子让大家理解x和y此消彼长的关系。投资者小明想为Uniswap中的ETH/DAI交易对提供流动性,假设1ETH=400DAI,Uniswap的公式就是1*400=400。如果小明想要购买价值50DAI的ETH,在ETH/DAI池子里面注入50DAI的流入量,同时减少ETH,那么为了保证乘积还是常数400,池子里面还留下的ETH的数量=400/=0.89,最后小明能拿到的ETH数量=1-0.89=0.11。通过小明为Uniswap中ETH/DAI交易对提供流动性的例子,我们可以看到为了维持X*Y的乘积固定,随着注入的DAI的不断增多,池子中剩余的ETH减少。DODOCMO代世超向Odaily星球日报表示,X*Y=K定价机制决定了买入哪一边的数量多,与之相应的币种价格就会上升。所以,在这个池子中,只要有人买入新币X,就会推动它的价格一直上涨。如果小明想要再买50DAI的ETH,他又需要继续向池子中注入50DAI的流入量。注意,此时ETH/DAI池子里剩下0.89ETH和450DAI,小明再次向池子中注入50DAI之后,为了保证K值维持在400,这时候池子里还留下的ETH数量=400/=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的价格形成了价差。潘超将Uniswap比作一个特殊的自动售卖机,只要有人买走商品,该商品的价格就会提高,且取的越多,价格飙升越快,直到做市商和套利商补货。在订单簿模式下,做市商赚交易费和价格差这两个部分的钱;在AMM中,做市商,或者说流动性提供者只赚交易费这一个部分的钱,而套利者则赚价格差这一部分的钱,即AMM模式下套利商赚差价,做市商分红。因此,DEX采用AMM模式,是DeFi从0到1的创新,降低了普通用户成为做市商的门槛,开辟了“人人皆可做市”的时代。AMM模式的缺陷在哪里?

相较于传统订单簿模式,AMM具有自动化、低成本和高效的优势,但在定价权、无常损失、滑点等方面存在一定的问题。无法独立定价根据欧科云链研究院的分析,AMM因缺少价格发现功能而无法对新币进行独立定价。做市商的收益主要来源于买卖差价,在对市场进行做市时,以收益最大化为目标。这要求做市商必须充分利用市场信息,提出报价。与此同时,投资者根据做市商的报价做出投资决策,并将自己的交易信息及时反馈给做市商,随后做市商再根据手上的资产头寸和价格差异调整报价。因此,在做市商与投资者的共同推动下,市场可以发现真实的交易价格。然而,AMM模式下并没有价格发现的功能。比如在某一资产的交易上,用户A挂出的是5美元/手的买单,用户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能否正常运营的关键。下图展示了代币价格变化和无常损失之间的关系:

图片来源于:机械钟以三个点为例子:黄线与蓝线的交叉点是当外部价格没有发生变化时,无常损失为零;绿线与蓝线的交叉点分别是当价格跌了50%后,以及价格涨了100%后,无常损失都为-5.7%,不难发现无常损失与价格变化的幅度有关,与代币涨跌方向无关。滑点太高,AMM类DEX只适用于日常小额兑换经常有用户抱怨在Uniswap中的交易滑点太高,不划算。确实如此,除了少数流动性池的流动性比较可观之外,多数代币的流动性池并不适合较大额度的交易。滑点过高的问题也是阻碍机构投资者和新用户进入AMM类DEX的一大原因。在文章第一部分我们已经举例解释了滑点出现的背后逻辑,滑点是DEX用函数来定价的一大缺点,也引来了套利者的进场,而套利行为又带来了无常损失的出现。有趣的是,滑点和无常损失间存在一些互斥关系,减少滑点追逐的是一种价格的稳定,减少无常损失追逐的是一种价格的变化,优化一边可能会损失另一边。所以从某种程度上来说,对于AMM类DEX来说,无常损失和滑点也可以看作自动做市商身体的一部分,只能调整和改善节奏,而不可强行驱逐。“无滑点”和“消除无常损失”的说法至少在目前看来都是不可信的,因为滑点的降低和无常损失的减少必然都是以对方的增加为代价的。谁会成为下一个Uniswap?

虽然滑点和无常损失是不可消除的,但是可以在可控范围内提前调控。前文我们提到了滑点与DEX选择的定价函数有关,以Uniswap为代表的AMM为例,从模型上看,由于其采用恒定乘积模型,导致其滑点过高。那么什么样的模型可以降低滑点呢?——恒定总和模型。还是以小明为ETH/DAI池子中注入流动性为例,假设池子里最初有50ETH和50DAI,那么K就恒定在100,小第一次拿5ETH可以换得5DAI,第二次依旧可以用5ETH换得5DAI,K始终维持在100。但是该函数有一个致命的缺点,就是很容易耗尽储备池的资产。假如在这个市场外1ETH买不到1DAI,,就会有另一种套利者来该市场买走所有的DAI,让交易池里只剩下100ETH。因此,一种理想的方式是构建一种混合函数,如果两种资产的价格相对稳定,就可以降低函数中的滑点值;当储备池中的资产流动性不足时,则迅速提高价格,实现理论上的无线流动性。Curve就为此构建了一个复杂的函数,恒定函数模型StableSwap:

x是每种资产的储备量,n是资产的种类,D是一个不变量,代表储备中的价值,A是“放大系数”,即一个可调的常数,提供一种类似杠杆的作用,影响资产价格的范围,并影响流动性提供者的利润空间。当投资组合比较均衡时,这个函数作为一个恒定总和函数而发挥作用,当投资组合变得更不均衡时,它转换为一个恒定乘积函数,由此实现了滑点与流动性的兼顾。BancorV2通过使用预言机引入外部世界的价格,从而降低交易池与外部世界价格不一致的风险,减少无常损失。BancorV2采用预言机喂价,来调整代币两边的权重,也就是X代币数量*X价格不必等于Y代币数量*Y价格,把套利机会用预言机给磨平了。而对于如何降低滑点,BancorV2则是通过放大流动性来降低滑点,此举BancorV2借鉴了Curve,引入stablecurve机制。BancorV2的曲线介于Curve和Uniswap之间,代数公式上介于X*Y=K和X+Y=K之间。利用更平滑的曲线,去减少滑点。简单理解就是比Uniswap同样流动性下放大了20倍。

拥有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为流动性提供商带来的收入将比UniswapV2高出50-200%。还有文章开篇我们提到的基于主动做市商算法的去中心化交易所DODO。DODO借鉴了BancorV2,通过Oracle引入市场中间价,将大部分资金聚集在市场中间价附近。DODO可以在资金池规模与Uniswap类似的情况下,流动性超过Uniswap十倍》李画:《以逻辑为工具轻松看懂DeFi:DEX篇》蓝狐笔记:《为什么自动做市商可能会亏钱?》林明:《BancorV2技术深度讲解—林明FirstPool》

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:15ms0-4:513ms