以逻辑为工具 轻松看懂 DeFi:DEX 篇
不管一个DeFi 协议、甚至整个DeFi 世界看上去多么陌生和复杂,它本身都是传统金融逻辑(比如交易工具逻辑和借贷工具逻辑),加上适用于区块链或由区块链引发的新逻辑,再加上一点新设计以改进性能。当我们以这个框架来看待和分析DeFi/DeFi 协议时,就会发现它们并不复杂,也没有那么多新东西。
本系列文章将在传统逻辑的基础上,试着梳理出区块链上的新逻辑,然后介绍前两者基础之上的那一点新设计。就让我们从这次DeFi 爆发的导火索,作为交易工具的DEX 开始吧。
01 交易的传统逻辑
交易包含两个参与者,买方和卖方,缺一不可;但这两者不一定能找到彼此,就需要有一个公共的交易场所,比如菜市场或者交易所,大家想要交易时都去到这里,买方和卖方也就容易遇到。
对于一个交易场所,最重要的功能是当一个人想买时就能买到(以他可以接受的价格);当一个人想卖时也能卖出。这与参与该场所的交易数量有关,更多的买单和卖单,也就更容易达成交易。
买单和卖单除了可以由真实的交易者提供外,还可以由做市商来提供,他们本身并没有交易需求,但他们会提供很多的买单和卖单,这样即使缺少真实的买方或卖方,交易者也能通过做市商完成交易。
做市商为什么要这么做?为了赚钱。主要有两个方面的收入,一是他们为交易所提供了最宝贵的流动性,当交易所从真实的买卖双方那儿收取手续费后,会把一部分的手续费给到做市商;二是交易的价格总是在变化,做市商挂出低价格的买单和高价格的卖单,赚取这两者中的差价。
以上是交易工具的基本逻辑,它同时适用于 CEX 和 DEX。
为什么DEX 一直难以发展起来,因为链上的交易者和做市商都不够,或者说流动性不够,就像一个菜市场,虽然干净漂亮,但没人在这儿交易,而越是没人交易,就越难吸引人(包括做市商)过来交易。
02 交易的新逻辑
那为什么DEX 在今年暴得大名?因为它们找到了一种提供流动性的新方法:AMM(自动化做市商)。
在这种方法为DEX 提供了流动性后,DEX 自然就运转了起来。这其中的「旧」逻辑是交易所的运转依赖于流动性,做市商在流动性的提供中扮演着重要角色;叠加的「新」逻辑是 AMM,它是且仅是一种新的适合于链上的做市商工作方式。
在 AMM 中,做市商是如何工作的?我们以一个流动性不好、需要做市商的菜市场为例来讨论。
一个基于订单簿的菜市场(CEX 和部分 DEX)是这样的:一个人来菜市场3块钱一斤卖大米,但没有人想买,做市商就买下这斤大米;第二天有个人来菜市场买大米,看到做市商4块钱一斤的大米,觉得价格合适就买了下来。做市商需要提供两个订单来匹配真实交易者的需求,一个用来买,一个用来卖。
一个 AMM 菜市场(Uniswap、Curve 等DEX)是这样的:有一个大台子,台子左边是一堆大米,右边是一堆钱,中间是一个机器人;卖大米的人来了,他只需要把手里的 5 斤大米放在左边,机器人就会告诉他可以从右边拿走多少钱;买大米的人来了,它只需要把 50 块钱放在右边,机器人就会告诉他可以从左边拿走多少大米。
做市商的工作变得简单,他只需要把自己的大米和钱以约定的比例放在台子上即可。这里的核心点只是交易价格的计算。系统如何知道每一笔交易的成交价格?其实并不麻烦,通过一个函数算出来。
以 Uniswap 为例,它使用的函数是 x*y=k,其中 k 是约定好的常数,x 是大米的数量,y 是钱的数量,假设规定 k =2500,最初的大米数量是 50,钱的数量是 50;卖大米的人来了,他放下了 5 斤大米,那么就计算y =2500 /(50+5)=45.45,即当台子上有了 55 斤大米后,钱的数量应该是 45.45,那也意味着卖大米的人可以从台子右边拿走 4.55 数量的钱(50 - 45.45=4.55)。
如果卖大米的人接着卖5斤大米会发生什么?计算 y =2500/(55+5)=41.67,那么卖大米的人可以从台子右边拿走 3.78 数量的钱(45.45-41.67=3.78)。
为什么同样是卖 5 斤大米,第一次可以卖出 4.55 的钱,第二次只能卖出3.78?这就是用函数来定价的一个缺点:滑点。x 被卖入的越多,x 越便宜;x 被买走的越多,x 越贵。
滑点的存在为DEX 引入了一个新角色——套利者。卖大米的人第二次是以 3.78 的价格卖出了 5 斤大米,遵循 x *y =k,如果这时候买入 5 斤大米,也只需要花费 3.78。这个便宜的价格不一定是因为大米真的便宜了,而是在这个交易池里被一个方向上的卖单变得便宜。
可以认为套利者也是做市商,他们让交易池重新平衡,让交易价格趋近合理。试想如果这个市场全是卖大米的,又没有套利者,那这个交易池是难以继续下去的,因为大米价格太低。
不难发现,在订单簿模式下,做市商赚交易费和价格差这两个部分的钱;在 AMM 中,做市商,或者说流动性提供者只赚交易费这一个部分的钱,而套利者则赚价格差这一部分的钱。这是订单簿和 AMM 因为不同的原理导致的一个比较大的不同。
需要注意的是,滑点与交易池的大小有关,比如台子上有 500 的大米和 500 的钱,那么卖两次 5 斤大米能拿走的钱分别是 4.95 和 4.84,滑点相对较小。这是 AMM 类 DEX 把流动性提供看得无比重要的原因,一个交易池越大,它的滑点就越低,用户体验也就越好。
03 不同协议的一点新设计
滑点还与 DEX 选择的定价函数有关,比如我们用 x+y =k 来定价,同样买卖大米,k=100,最初的大米数量是 50,钱的数量是 50。卖大米的人来了,他放下了 5 斤大米,就可以拿走 5 份钱,因为这就令到 k =100;他又放下 5 斤大米,又可以拿走 5 份钱,因为这令 k =100。
在该函数下,完全没有滑点;但有一个致命的缺点,假如在这个市场外 1 份钱买不到 1 斤大米(而这个市场永远是一份钱对应一份大米),就会有另一种套利者来该市场买走所有的大米,让交易池里只剩下 100 份钱。
这对于流动性提供者来说是一种较大的风险,因为他本来有 50 的大米和 50 的钱,如果大米涨到 2 份钱一斤,他就有 150 份的钱;而现在留给他的只是 100 份的钱。所以 x+y =k 虽然能避开滑点,但风险太高无法被单独使用,它只能与其他函数一起使用以减少滑点,且更适合 x 和y 的相对价格波动较小的情况。
而这就是为什么会有 Curve。它服务的是稳定币间的交易,便可以针对这种特定的交易场景(x 和y 价格波动小)设计定价函数,它在 x*y=k 的基础上加入了 x+y =k,实现交易体验的优化。这种不同定价函数的选择,就是前文中提到的不同协议间的那「一点新设计」。
x+y =k 带来的这种风险被称为无常损失,所有AMM 都会有无常损失问题,因为只要交易池内的价格与外部世界的价格不一致,就会有套利者来「搬平价格」,而套利者赚到的,就是流动性提供者损失的。
因此又出现了一批新的 DEX,比如 Bancor V2,它们通过使用预言机引入外部世界的价格,从而降低交易池与外部世界价格不一致的风险,减少无常损失。而在函数定价的基础上加入预言机定价,就是那「一点新设计」。
所以,当看到层出不穷的新协议/新应用时,不要被废话和细节淹没,直接去看它的新的定价方法即可。而看一个定价方法,就是看它是如何通过设计(通过函数的选择、通过与预言机的结合等)来减少滑点和减少无常损失的。
有趣的是,滑点和无常损失间存在一些互斥关系,减少滑点追逐的是一种价格的稳定,减少无常损失追逐的是一种价格的变化,优化一边可能会损失另一边;最新的潮流是引入预言机来打破滑点和无常损失之间的关系,做到只减少无常损失,但预言机又会带来预言机自身的问题。
因此当你在看这一个点上的新设计时,要注意它的正反两面,以及由此决定的它的适用场景。
我们并不需要掌握一个定价函数/定价方法的全部细节,只需要知道上述这些它的基本工作原理,以及它的实际应用效果即可。实际应用效果可以通过曲线图简单、快速、全面地知晓。
比如当你想要了解 Uniswap 的无常损失情况时,就只需要看下图,其中的蓝色曲线展示了当价格发生什么样的变化时,无常损失会有多少。
以三个点为例子:黄线与蓝线的交叉点是当外部价格没有发生变化时,无常损失为零;绿线与蓝线的交叉点分别是当价格跌了 50% 后,以及价格涨了 100% 后,无常损失都为 -5.7%,不难发现损失与价格变化的幅度有关,与方向无关。
总而言之,当需要了解不同的或新的交易类协议时,奔着它的定价方法原理和曲线图去即可,鉴于协议的提出者一定会强调和解释自己定价方法的特点,我们要做的工作其实就是在听完他们的话后,看曲线图在滑点和无常损失上的表现是怎么样的。
04 DEX的简要总结
真正的 DeFi 可能是一门学科的体量,但目前的 DeFi 并不算复杂,不要被泡沫、被太多的词语、被他人赋予它的外衣迷惑,以及最重要的:了解 DeFi 最好的途径是使用它。
最后是一个简要的总结:
1、AMM 是懒人版的做市商,低门槛版的做市商。做市商不需要专业知识,也不需要工作,他们只需要把钱放入交易池即可。这为把闲置资金投入到做市中来打开了方便之门。
2、AMM 类DEX 的设计,其核心是定价方法的设计,虽然有诸多不同的设计,但它们的主要目的都是为了减少滑点以及减少无常损失。
3、如果你有一笔资金,你可以:成为做市商赚钱;通过策略在交易池内部套利赚钱;通过策略在不同交易池间套利赚钱。
4、虽然风头正劲的是AMM,但也不要忘了订单簿模式的DEX,它们有突出的优势,只不过目前还缺流动性。订单簿模式似乎在可组合性上会逊于AMM,但我并不确定,而两者是否会有这个区别会比较重要。