如何改进 DeFi 自动做市商 听听FTX交易所SBF怎么说
自动做市商(Automated Market Maker,AMM)技术在此次 DeFi 大爆发中功不可没。不同于传统交易所的做市商机制,AMM 则是鼓励用户将自己的代币投入交易对流动池,形成小的做市商,那 AMM 有缺点吗?该如何改进?(以下文章译自 FTX 交易所暨 Alameda Research 创始人 SBF 于于10月15日针对改进 AMM 的推文)
「 AMM 协议可以改进吗?」
事先声明,以下看法并非投资建议,也非做市商建议。
这个问题论述有点怪:AMM 在这个夏天让流动性提供者赚进数百万元,AMM 怎麽会有问题?
好,让我们慢慢梳理这个问题。
首先的问题是,为什麽 AMM 一开始会出现?
那是因为大部分的区块链交易吞吐量(Throughtput)都不高,区块链的延迟性让去中心化交易所(DEX)无法支援交易挂单簿,所以 DEX 被逼著使用 AMM 协议。
那麽 AMM 表现得如何呢?到这个夏天之前,AMM 的表现并不好。
虽然现在 AMM 看似运作的很有效率,但这个效率并不是完全「自然形成」的。
大多 DeFi 交易量和锁仓量(TVL)都是因爲流动性挖矿(Yield Farming),不管怎样,这种形式就相当于项目将自家代币空投给用户。不管你怎麽看待流动性挖矿,但实际就是因为有了项目方的强力激励,才有了这些统计过后的数据。
现在大家在用 AMM 协议,抵押代币在流动池中,是因为有人付钱请他们这样做。
但这种做法并不是 AMM 协议的专利,大家都可以用同样方式让利给做市商、抵押代币的用户,或任何其它想奖励的人。
而一旦抽离了这些奖励,你觉得交易量和锁仓量还会剩下多少?不清楚,也没人知道。
话说回来,大部分人都发现了 AMM 有个大问题,那就是「无常损失」(Impermanent Loss)。
什麽是无常损失?无常损失就是,如果你在交易对池中提供流动性,代币价格变动,你也会跟著损失。之所以叫无常,是因为流动性提供者损失与否,取决于代币价格。如果你继续提供流动性,只要代币价格回升,那你损失的价值就自然回来了。
现在很多项目正在尝试改善 AMM 的无常损失。有些改善了滑点的曲线,有些则是利用保险、期货、对冲的方式当作无常损失的解决方案,更多项目则是选择空投奖励。
它们有改善问题吗?也许,但很有限。
那它们真的解决了无常损失的问题吗?没有。
为什麽没有解决?
那是因为无常损失并不是「错误的参数」,调整回来就可以。无常损失只不过是委婉说法,大白话就是:「烂交易选择」。
举例来说,假设你在 AMM 中抵押了 1 ETH 和 400 USDC,现在的 ETH 价格为 400 美元。假设 AMM 的吃单和挂单价格是 30 基点(30 bps,约 0.3%),那你 400 美元时抵押资产进去的话,等于是在跟全世界宣布:
「嘿!有人想以 401.20 美元的价格买入或以 398.8 美元的价格卖出吗?如果是,那就快来吧!」
所以会发生什麽事呢?好,你就继续坐著等,继续等,等到 ETH 下跌 60 个基点的时候,才有人用 398.8 的价格卖给你,因为这就是市场价格。
提供流动性的你,就像是干坐在那的鸭子,面对的是共 60 基点的双向风险,而想要撤单必须要撤走流动性(资产),但区块链延迟性让这个动作不但执行慢,手续费又高。所以你只能坐等市场在市场变动超过30bp的时候才跟你交易。
而这个时候市场价格是对你不利的,接著就会有人用你不想要的价格卖给你。这就是「无常损失」。
在正常的交易挂单簿,大家的挂单价格就是真正想买进、卖出的价格;但在 AMM 协议中,大家都在流动性池中,所以双边代币都被迫以市价买入或卖出,不管价格为何,这些价格不代表任何观点,所以看起来就像一群坐在交易池中的鸭子。
期货、期权等对冲风险解决方案,也帮不上忙。因为 AMM 的核心问题不是在于「风险」,而是回报期望值是负值的烂交易。
回馈交易手续费也不能改善这笔烂交易,这只能平衡损失,让损失变低。
改变滑点的曲线也无济于事。
这里唯一改善的是,挂单费永远都是 30 个基点,而且只有在市场波动持续超过 30 个基点时,这才会帮用户节省挂单费,因为 30 个基点比绝大多数的交易所都贵,但 AMM 必须这样将基点设置的这麽高,否则无常损失将会一飞冲天。
这代表,任何「理智」的挂单者,即只想用合理价格购买代币的交易者,都必须支付 30 个基点的挂单费,这实在是很没有效率的交易方式。
那如果用演算法设定价格呢?
可能有三种情况:
1.这个演算法的数据取自于中心化交易所预言机 一> 那交易者不如直接到中心化交易所交易就好了
2.演算法数据取自链上数据 一> 预言机数据来自去中心化交易所,其价格演算法一样跟 DEX 一样,属于递归逻辑
3.也有可能是用上述两种以外的其它演算法,通常这种都是垃圾演算法
所以 AMM 提供者必然会出现下列情况:
A.流动性提供者正在进行一笔烂交易,不断地受到无常损失而不自知
B.代币波动性很低,无常损失接近零,但奖励的手续费也接近零,就像 Curve 一样
C.太多随机的不理智的吃单者进场所导致的盈利>无常损失,但效率依然比一般有订单簿的交易所低。
又或者
D.有人补贴你,让你使用 AMM,例如流动性挖矿
所以,总体来说,要不就是流动性提供者损失,要不就是吃单者损失,要不就是有人补贴你让你使用 AMM。
所以只要流动性挖矿结束,AMM 就被打回原形。
那如果,只是单纯想要流动性呢?
没错,这是完全合理的,也是 AMM 最明确的做法。
你有一些代币,你想要交易它,又不想要做市商(MM),所以将代币抵押进去 AMM,然后就不去管它。
当然,你会损失一些钱,但不重要,因为这就是提供流动性的代价。
但如果,你想要写一个「智能」的 AMM 协议,像是挂单交易这类的功用呢?
真的有这种东西,但那并不是 AMM 协议,而是链上量化交易系统,我认为这个系统是很棒的!
需要补充的是,虽然降低手续费、区块链延迟性有助于改善 AMM,让添加流动性或是移除流动性更快更便宜,所以你可以随时添加或移出资产,但总体来说,还是无法 AMM 的根本性问题。
AMM 迫使你同时要承受双边风险,显而易见是无效的交易手段,就算你改善了滑点的演算法、同时对冲风险,或是其它做法也没有用。
现在只是因为流动性挖矿兴起,我们就突然忘记 AMM 之前其实是很低效的交易手段,有多么不受市场待见。
但还是得说,AMM 在某些应用是可以彰显其价值的,例如波动性低的稳定币与稳定币的兑换,又或是新项目需要代币流动性。
你其实根本无法解决 AMM 的问题,顶多只能让它们没这麽难用而已。
交易挂单簿在过去解决了交易问题,而我相信未来交易挂单簿也还是必然趋势。