在金融领域,风险通常不能消除,只能转移。这一点在DeFi领域也是一样。对于AMM协议的DEX来说,不同机制的设计其实更多的是在不同参与者(LP和交易者)的利益之间做权衡。目前的AMM协议项目并不能消除风险。Uniswap的AMM机制简洁、优雅,滑点对于Uniswap来说本质上是为保护LP的利益而损害交易者的体验;而无常损失则是为保护交易者体验而损害LP利益。这一点对于AMM是天然存在的风险,目前来看市场上的项目并不能消除这些风险,仅仅是做了一些权衡。
TokenInsight
在⾃动做市商(AMM)机制下,做市门槛得以降低,普通⽤户的参与程度⼤⼤提升,因此流动性的聚集也更加容易。但同时,比起订单簿模式的交易平台,⾼滑点和无常损失等问题则是让AMM受到诟病的⽅⾯。随着流动性挖矿引导AMM在三季度爆发,⾏业内开始愈加重视现有AMM的不足之处,新入场AMM将眼光聚焦在了⾼滑点、无常损失等问题的解决。
1. 什么是滑点和无常损失
滑点和无常损失作为DeFi生态中被广泛提及的概念,为AMM⽤户带去了不少风险。在这两个概念中,滑点是指预期交易价格和实际成交价格之间的差值。滑点并非AMM出现后的新概念,⽽是传统交易市场就存在的⼀个问题。对于传统订单簿模式的交易所⽽⾔,流动性越⾼,盘⼜深度越好,滑点则越低。简单来说,卖出资产越多,价格越低︔买入资产越多,价格越⾼。
⽽无常损失(Impermanent Loss)的概念在AMM出现后被首度提出[1],意指在AMM的运作环境下,流动性提供商(LP)向AMM资⾦池提供流动性时,因资产外部市场价格波动⽽产⽣的损失。无常损失仅在AMM模式下存在,在资产价格恢复后可能消失。但在多数情况下,由于资产价格不能恢复到原位,无常损失实际是永恒的(Permanent),也因此被称为差异损失(Divergence Loss)。
[1] Uniswap: A Good Deal for Liquidity Providers?https://pintail.medium.com/uniswap-a-good-deal-for-liquidityproviders-104c0b6816f2
1.1 滑点
与传统的订单簿形式不同,AMM采⽤资金池模式来进⾏做市。资⾦池中的资产价格则由函数决定,这意味着AMM中交易对的价格和其交易资产在资⾦池中的储备(Reserve)直接相关。因此,⼀旦交易发⽣,导致交易资产在资⾦池中的储备变化,资产实际的交易执行价便会发⽣改变,产⽣滑点。也因此,越是⼤额的、对资⾦池的流动性储备破坏越深的交易,滑点也就越高。
AMM滑点的⾼低还取决于其采用的机制本身。⾸先,滑点在恒定总和做市商函数下不存在︔即以X和Y代表资⾦池中两种资产的储备,K为常数,X+Y=K时滑点为0(下图中的直线)。然⽽,该机制将导致资产流动性枯竭,即X⾜够⼤时Y将为0,反之亦然,因此并不在实际应用中被采⽤。
为防⽌资⾦池流动性枯竭,则必须以滑点的⽅式对交易进⾏惩罚。以采⽤恒定乘积做市商制(X*Y=K)的Uniswap和混合了恒定总和与恒定乘积做市的Curve为例,其函数曲线分别如下图的虚曲线和实曲线所示。已知下图直线时滑点为0,因此当曲线越贴合于直线时滑点越⼩。Curve因专注于稳定币和资产价格为1:1的交易对,⽽使滑点降低成为可能,但同时该机制并不能应⽤在价格波动剧烈的交易对上,否则低滑点下套利成本低,易导致流动性枯竭。
不同做市函数曲线;来源:Curve⽩⽪书
此外,因AMM资⾦池必须以⼤量的流动性和闲置资本来确保滑点发⽣后资产交易价格仍具备竞争力,资⾦利⽤率便低成为了AMM的另⼀⼤问题,并且由于LP的收益来源于实际交易资本产⽣的交易费⽤,该问题直接影响了LP的收益。降低滑点除了能够给交易者带来更好的价格,也能为LP带去更多的交易费收益。
1.2 无常损失
在最初的定义当中,无常损失仅作为Uniswap的风险被检测。在Uniswap的机制下,LP因外部市场资产价格偏离⽽产⽣的损失十分典型。具体⽽⾔,⼀⽅⾯,由于Uniswap的资产定价和资⾦池储备相关,价格发现在链上完成,不和外部市场价格联通。因此当外部市场资产价格波动时,Uniswap需要依赖套利(Arbitrageurs)去修正链上价格,使其和外部市场价格达成⼀致。
另⼀⽅⾯,LP在将流动性提供给资⾦池后,获得资⾦池的部分所有权,即资⾦池资产的“股份”。套利者在修正链上价格的过程当中,其获得的利润便是资⾦池的损失,也因此使得LP和被动持有资产相比受到损失。若不计交易⼿续费和滑点,无常损失的具体发⽣步骤如下所示:
① 假设ETH/DAI资⾦池拥有10个ETH和5,000个DAI,内部价格1ETH=500DAI,初始市场价1ETH=500DAI。资⾦池内部价格和市场价相等,资⾦池平衡︔
② 假设LP Alice为上述资⾦池提供了1ETH/500DAI,则Alice拥有上述资⾦池10%的“股份”;
③ ETH外部市场价格上升,1ETH=700DAI,⽽资⾦池内部价格仍然为1ETH=500DAI,套利空间产生;
④ 套利者Bob从资⾦池以500DAI的价格买⾛1个ETH,资⾦池剩余9ETH和5500DAI,资⾦池失衡,ETH储备减少且资⾦池内部ETH价格上涨,套利空间持续存在,直至ETH内部价格涨至700DAI(外部市场价格);
⑤ Alice想在资⾦池为9ETH/5500DAI时撤回资⾦,Alice实际撤回的为10%*9ETH/5500DAI, 即0.9ETH/550DAI。Alice此时的资产价值为0.9*700+550=1180DAI;
⑥ Alice若被动持有1ETH/500DAI,其资产价值应当为1*700+500=1200DAI。作为LP,Alice产生了20DAI的无常损失。
由上述无常损失的产⽣逻辑可知,无常损失的大小和资产价格波动程度正相关,并且所有采⽤资⾦储备对资产进⾏定价、依赖套利者调整链上资产价格模式的AMM都⼀定存在无常损失。取决于资产外部价格波动的大小,LP产⽣的无常损失可能被交易⼿续费和流动性挖矿收益补偿。同时,由数学公式推导,无常损失的函数曲线形态如下图所示:
无常损失函数曲线;来源:TokenInsight
1.3 其它风险
除滑点和无常损失的风险外,上⽂分析的资金利⽤率也是AMM被认为不⾜的⽅⾯。此外,当AMM资⾦池要求⽤户必须抵押超过⼀种资产,并以交易对资⾦池“股份”的形式作为LP兑现收益的流动性提供凭据时,本身只持有⼀种资产的LP将被迫承担多种资产的风险敞口。
总体而言,根据上述分析,AMM机制的风险和不足主要有以下方面:
• 滑点:滑点高,对于大额交易尤其不友好;
• 资金利用率低:资本闲置程度较高,阻碍LP手续费收益;
• 无常损失:在资产价格波动,偏离资金池内部资产价格时造成LP损失;
• 多资产风险敞口:流动性提供者可能被迫承担多资产风险敞口。
2. 问题优化方案
上文分析了AMM机制的不足和风险以及产生不足和风险的原因。由上述原因可知,针对滑点和资金利用率的问题,可采取的优化方案包括改变做市函数曲线和采用预言机对交易资产进行喂价。但由于滑点同时能防止资金池内的资本损耗,对资金池内资产的流动性起到保护作用,故贴合0滑点的做市曲线仅对资产价格1:1的交易对具备良好应用场景。
针对无常损失问题,优化方案同样包括引入预言机喂价,使资金池内的价格和外部市场价格保持一致,不依赖套利者对池内价格进行修正;同时,无常损失以及资产价格波动引起的风险还可通过对冲的方式被管理。而针对多资产风险敞口问题,则可通过给予LP单一资产资金池“股份”的形式,使LP仅承担单一风险敞口。
总体而言,有效的优化方案如下:
• 改变做市函数曲线,缩小交易应用场景,仅提供价格较稳定资产的交易,如包括Curve在内的稳定币交易;
• 引入预言机,对资金池内部资产进行喂价。此方案被多个项目采用,如Bancor V2、DODO、以及CoFix;
• 引入风险对冲策略,如CoFix;
• 允许单一资产的风险敞口,如DODO、Bancor V2。
引入预言机因能对滑点和无常损失有效改善而成为新入场AMM(如DODO、Cofix)以及AMM升级(如Bancor V2)提供的解决方案。
3. 预言机引入后依然存在的风险
预言机的引入能够同时改善滑点和因资产价格波动产生的风险,但是,预言机引入后的AMM在改善现存问题的同时,是否又带来了新的风险?首先,预言机作为第三方喂价工具,本身就存在一定风险:预言机攻击屡见不鲜,在DeFi生态中造成了大量损失。
另外,以Uniswap为代表的AMM机制原理看似简单,但设计精巧,存在其成功运转的合理性,整体机制设计上牵一发而动全身,任何针对滑点和无常损失的优化甚至消除往往需要以其它方面的牺牲为代价。
下文以新入场的AMM DODO和CoFix为代表,对以引入预言机来降低风险、改善不足的AMM做具体分析。
3.1 DODO
DODO引入Chainlink作为对其交易资产进行喂价的预言机,采用PMM(主动做市商)作为其做市算法。PMM算法即为使用预言机来向资金池交易对喂价,当外部市场价格发生变动时,主动地调整内部交易价格。
首先,DODO资产交易价格不因资金池资产储备而变化。而是根据预言机的喂价主动调整,故能起到降低滑点的效果,也消除了狭义上因外部价格波动、资金池失衡而产生的无常损失。同时,为平衡因交易导致的资金池储备失衡,DODO仍然需要允许套利者的存在;如下图所示,以用户卖出B为例,当池中B储备上升时(图中左侧),DODO将把B的价格调整至低于市价,以鼓励套利者从池中买入B。因此,该模式需要不断地、快速地、准确地对池内价格进行调整,对预言机的喂价能力十分考验,而一旦无法及时跟踪市价,将无法对资金池有效平衡,造成LP损失。
DODO资金池平衡原理;来源:DODO白皮书
TokenInsight观测了DODO的7个交易对资金池,如下图所示,Y轴的值为1时对应上图中B和Q的虚线位置;理论上来讲,资金池应保持一侧大于1、一侧小于1的状态。但是,7个资金池中仅WBTCUSDC较好地维持了这种状态:
DODO资金池平衡情况;来源:DODO Pool Tracker
对预言机的依赖也造成了抢跑(Front-running)的风险—套利者可通过监听预言机的价格寻找套利机会。当预言机两次报价的差值大于套利所需的交易手续费时,套利者可赚取其中的价差,使LP蒙受损失。这一损失DODO称之为套利损失。
同时,DODO允许单一的风险敞口,即允许LP提供单一资产的流动性,并以该资产(而非交易对)流动性“股份”的形式对LP分配收益。仍以上图为例,当B储备上升时,需牺牲Q池LP的利益来鼓励套利者买入B。而两侧资金池都不足1时(多数DODO资金池的现状),则代表两侧LP都遭受了损失。
此外,DODO将流动性聚集在市价附近以降低滑点,因此,随着交易额的增大,将出现滑点激增的情况。和Uniswap相比,DODO更适用于小额交易。
总体而言,DODO的优势和风险可总结如下:
3.2 CoFix
CoFix在对于传统AMM的改进上比DODO更加大胆,CoFix直接取消了算法定价,使用Nest Protocol预言机给的外部市场价格来作为交易价格。由于价格由外部市场的资产供需决定,CoFix称其定价模式属于均衡定价模型(EPM)。
在CoFix的模式下,滑点能够被消除。但是,失去了滑点作为资金池流动性的保护,将存在资金池内交易对一侧的资产被消耗完,资金池枯竭的风险。如下图所示,CoFix总锁仓值持续下降:
CoFix总锁仓值;来源:DeBank
CoFix应对该问题的方法是引入“冲击成本”,即当单笔交易额足够大时触发冲击成本,提升交易的价格。但触及冲击成本后,提升后的交易价格和正常交易价格差别十分小(相对其它AMM而言),因此对资金池流动性的保护作用也有限。
CoFix滑点差别;来源:CoFix官⽹
另一方面,由于资金池内部价格与市场价格保持一致,将不存在无常损失风险,但这并不意味着LP提供流动性没有风险。
CoFix虽然允许LP存入单一资产种类,但LP的收益计算仍然基于交易对资金池,即不提供单一资产的风险敞口,LP仍然需要承担多资产风险敞口。而由于资产价格和资金池内资产储备完全脱钩,价格无法如在DODO的模式下一样用来作为平衡储备的调节因素;为保证在单侧资产储备下降时LP不致于承担全部损失,CoFix必须使LP承担资金池双侧的风险敞口。双资产风险敞口对于LP而言某种程度上是一种保护。
为优化资产储备变化导致的LP风险问题,CoFix采用风险量化和风险对冲的方式。具体而言,即开发脚本,当资金池资产储备变化大于前设的临界值时,通过在中心化交易所卖出增量资产或买入缩量资产进行对冲。
总体而言,CoFix的优势和风险可总结如下:
3.3 综合对比
基于上述分析,TokenInsight对Uniswap V2、DODO、CoFix和Bancor V2进行了多维度的总结,并测算了资金利用率、滑点等数据。
和TokenInsight分析一致,DODO在小额交易上价格较佳,在流动性远低于Uniswap的情况下,小额交易价格依然优于Uniswap;资本利用率也较高。CoFix因没有滑点,有利于交易者,因此交易额表现较好;但同时其锁仓值自上线以来持续下降,交易额远超其锁仓值。Uniswap虽然在机制设计上受到滑点、无常损失的质疑,但其依然是流动性最好的DEX,并且由于其流动性充足,实际上滑点问题相对而言并不严重。同时,Bancor V2虽同样引入了预言机,但并不具备太强的价格优势,因此交易额相对也不高。
从各数据来看,对交易者而言,CoFix无疑是较好的选择;DODO小额交易价格较好,同时为LP提供单一资产风险敞口的选择。而Uniswap流动性高,价格增长曲线较为平滑。
各DEXs信息和数据详情如下表所示(数据截止日期为2020年11月24日):
资料参考:
① Uniswap: A Good Deal for Liquidity Providers? https://pintail.medium.com/uniswap-a-good-deal-for-liquidity-providers-104c0b6816f2
② Impermanent Loss Explained:https://academy.binance.com/en/articles/impermanent-loss-explained
③ How to Bring More Capital and Less Risk to Automated Market Maker DEXs:https://blog.chain.link/challenges-in-defi-how-to-bring-more-capital-and-less-risk-to-automated-market-maker-dexs/
④ DODO白皮书:https://dodoex.github.io/cn/docs/
⑤ CoFix白皮书:https://cofix.io/doc/CoFiX_White_Paper.pdf
⑥ Curve白皮书:https://www.curve.fi/stableswap-paper.pdf