DODO、CoFiX、Bancor谁的无常损失解决方案更胜一筹?
以 Uniswap 为代表的 AMM 取得了很大的成功,但在实际中我们发现如此简单的做市机制,在实际运行中做市资金是可能损失的,一般称其为“无常损失”。
参与做市有可能造成资金损失,这个损失是相对于不参与做市而言的。即如果资金只是放在那里,一段时间后的价值将大于参与做市之后的价值。
一般认为产生亏损的原因有两部分,套利损失和资产本身的价格波动造成的损失。
无常损失如果遇到价格波动比较大的情况,有可能造成非常大的损失,所以如果没有额外的激励,一般用户没有意愿做市。
所以很早就有项目方为在 Uniswap 上做市的用户提供激励的行为,这一行为早于 Compound 开启的流动性挖矿,而 Compound 的挖矿一般被认为是开启了 DeFi 流动性挖矿的先河。目前也仍然有很多项目也在为做市资金提供流动性激励,但激励往往是不可持续的。
对于专业做市商以及普通用户来说,无常损失是拦在前面的一座大山,死死阻挡着专业做市商和普通用户的做市意愿。
目前业内也有一些 DEX 在试图解决无常损失的问题,今天以 DODO、CoFix、Bancor 三家的解决方案为例,做一个对比分析,看看哪家的解决方案更具有可行性。
一、DODO
DODO 是 DEX 新秀,获得了非常多机构和业内专业人士的认可,机构清单可以列一页,也有人说半个币圈都投了 DODO,可见 DODO 受到的认可程度。
DODO 使用 Chainlink 预言机对价格进行喂价,通过 PMM 算法可以让交易曲线更平滑。从下图 DODO 的曲线可以看出,在价格附近 DODO 的交易曲线接近一条直线,这将显著降低滑点,提高资金效率,因为资金将随着算法调整,更多聚集在价格附近。
关于价格波动造成的风险,比如你在 Uniswap 上存入 1 个 ETH 和 380 USDT,如果 ETH 价格翻倍上涨到 760 U,则你能够取回的 ETH 数量一定是少于 1 个的。 但在 DODO 其实是把资产的绑定关系给解耦了,用户可以选择单币做市,假使存入 1 个ETH,即使 ETH 价格翻倍,你能够取出的 ETH 数量依然会是 1 个,即资产价格本身的波动不会对你的资产数量造成影响。
关于套利损失,当预言机报价精度不够高的时候,DODO 会面临套利损失的风险。之前一段时间 DODO 上LP的损失也来自于此。但是如果预言机报价精度足够高,将极大降低被套利的可能性。
如果遇到极端情况,套利损失也会难免,DODO 的解决方案是通过参数调整来调控做市深度。就像在中心化交易所一样,如果遇到极端行情,做市商会撤单观望,DODO 的参数调整可以实现类似降低订单深度的效果,以减少套利损失。
关于 DODO 可以补充的点是,目前的 DODO 只是初期版本,DODO 想做的是把专业做市商带入 AMM 世界。DODO 在将要实现的版本内,将会为专业做市商实现可调控的做市模式,其独特之处在于,专业做市商模式与 AMM 平滑曲线的结合,这将会极大提升做市效率及资金利用率。同时引入专业做市商将更有利于为 DEX 争夺定价权。
二、CoFiX
CoFiX 同样是引入了预言机作为喂价方案,其使用的预言机为 Nest,关于 Nest 预言机可以阅读研习社之前的文章 《Chainlink、Band、NEST、Tellor哪种预言机更抗攻击?》 。
CoFiX 的模式其实比较简单,其通过引入 Nest 预言机解决了套利损失。
而资产价格变动产生的风险,CoFiX 的解决方案是对冲,CoFiX 提供了专用的对冲工具,对冲工具可以实时监控资产变动情况,在中心化交易所执行相应对冲操作,理论上可以使得资产数量总是处于正增长状态。 解决了 ETH 价格上涨,不断卖出ETH,ETH 价格下跌,满手 ETH 的尴尬局面。
同时因为引入预言机,CoFiX 实现了一种特殊的情形,即交易零滑点。当池子内锁仓资金足够多的时候,这将会是一个极大的优势。但如果池子不够大,存在被大额买单把池子买空的可能性。
这实现了一种什么效果呢?就是基本上是整个池子在为你这一单交易提供深度,这可能是任何一个中心化交易所和 AMM 都无法实现的。
但 CoFiX 交易对的上线,依赖于 Nest 预言机的发展,目前 Nest 预言机报价密度比较高的交易对只有 ETH/USDT 和 HBTC/ETH,而目前 CoFiX 也只能交易 ETH、HBTC、USDT 三种资产。
但其实 CoFiX 的发展会反向促进交易对报价密度的提升,因为 CoFiX 上每笔交易都会调用 Nest 预言机,调用费用的大半会分配给矿工,这会激励矿工报价,从而满足 CoFiX 上线要求,从而获得分红。
三、bancor
Bancor 是个老牌项目,也是币圈 AMM 模式的开创者,只是开创者未能将其发扬光大,反而是 Uniswap 使用 AMM 取得了巨大增长。
Bancor 7 月份提出了解决 AMM 无常损失的方案,但在 3 个月毫无动静之后,最近突然提出了一个新的解决方案(目前还未实现),一个和上一版方案毫无关系的新方案。
Bancor 7 月提出的方案,和 DODO 的方案类似,通过引入预言机,动态调整池子权重,来解决无常损失问题,但其实更多的是在解决套利损失问题。 Bancor 在新方案中,把套利损失和价格波动损失并在一起来进行解决。
其使用的方案被称为“弹性供应方案”。在新版 Bancor 协议内,将会为超过 3 个月的做市资金提供 100% 的流动性保护,假使你为 TKN 提供了 100 美元的流动性(新版 Bancor 协议支持单币做市),如果 3 个月之后 TKN 价格翻倍,价值 200 美元,那你也能提出价值 200 美元的 TKN。
流动性保护的资金来源是系统增发的 BNT,成本由全部持币人承担。这里的核心是长期做市收益大于无常损失,则系统将不用付出成本,或付出少量成本。
同时 BNT 还有销毁机制,这和其单币做市的原理有关,Bancor 协议内所有的交易对都是和 BNT 代币的交易对,在 Bancor 协议内没有 ETH/USDT 交易对,只有ETH/BNT、BNT/USDT 交易对,其他代币之间的交易需要经过 BNT 中转。
新版 Bancor 协议支持单币做市(目前还不行),假如用户往 TKN 池子内存入 TKN,这时如果没有用户存入 BNT,系统会铸造出对应价值的 BNT 注入到池子内,这些 BNT 同样会获得手续费收入。
当有用户往池子内注入 BNT 时,系统铸造部分将会连同手续费一起销毁,如果销毁时已经获得了 10 BNT的手续费,则会销毁 110 枚 BNT。铸造 100 枚,销毁 110 枚,这就实现了通缩。
但这部分 BNT 同样要面临套利损失,所以要求做市收益要大于套利损失。同时流动性保护部分实现平衡的前提也是流动性收益要大于无常损失,或者持平,否则系统必须持续增发 BNT 来弥补用户做市损失。这里交易量会是一个关键指标,没有交易就没有收入,收入少想要覆盖无常损失将会更加困难。
四、总结
本文对比了三个 DEX 针对无常损失提出的解决方案。
从目前公布的信息来看,CoFiX 的设计方案对套利损失和资产价格变动造成的损失都提出了应对方案,理论上做好对冲可以实现资产数量总是正向增长。
DODO 通过预言机和算法上的参数调整,也可以规避大部分的套利损失,而且资产价格变动不会给用户造成损失,这是一种相对彻底的解决方案。
Bancor 通过弹性供应方式,由系统增发代币来对做市资金进行流动结构性保护,其核心是长期来看做市资金的收益会大于无常损失。当然 Bancor 不是什么币都保护的,其有白名单机制,否则为归零币提供流动性保护,要把 BNT 赔到归零。但Bancor 同时也设计了通缩机制,核心是做市收益大于无常损失。
从做市复杂性上来看, DODO 和 CoFiX 为专业做市商提供了更适合的场景,但其实他们也已经不是大家所理解的那种无脑做市的 AMM 了。
也许我们正在见证 “ 专业做市商+AMM ” 时代的到来。
致谢:细节确认上,受到了 Mark@DODO 、拾二@Nest论坛 的帮助,文章只代表作者个人观点,不构成任何投资意见或建议。
https://blog.bancor.network/proposing-bancor-v2-1-single-sided-amm-with-elastic-bnt-supply-bcac9fe655b
https://drive.google.com/file/d/1en044m2wchn85aQBcoVx2elmxEYd5kEA/view?usp=sharing
https://app.bancor.network/eth/protection/stake
https://medium.com/@bancor/bancor-v2-1-staking-guide-749e5cc4326a
https://dodoex.github.io/docs/docs
https://mp.weixin.qq.com/s/ajr0vHBS8TXECX4UyzC6VQ
https://mp.weixin.qq.com/s/-Y4qYa8KsR_aErg3cgYRkg
https://mp.weixin.qq.com/s/jhCiPcLKjzK9ca93kku9qQ
https://docs.cofix.io
https://github.com/Computable-Finance/CoFiX-hedger/tree/4c36959cdb8c72dd1a6c62d99f616a7694a337b1