# 短评第5期：vAMM机制

By [ViewDAO](https://paragraph.com/@viewdao) · 2022-04-23

---

一、引言
----

在研究 [NFTPERP](https://twitter.com/nftperp) 项目的时候，发现原理篇中最重要的部分之一就是【vAMM】。刚开始的时候完全不知道在说什么😓，然后就本着做研究的精神去查阅了相关资料，大致了解了这样一个很有意思的机制。

所以本篇原则上属于学习过程的一个记录，如果懂这个机制的朋友完全没有必要看，不懂的朋友可以在闲暇时做一个了解。

vAMM：Virtual Automated Market Maker，虚拟自动化做市商，从字面上，要了解它，我们先需要了解AMM（自动化做市商），要了解AMM，我们需要了解【做市商】。看起来有点像套娃😅

二、传统的做市商
--------

传统的做市就是在中心化交易所进行做市，通常采用的是订单薄的模式（Order Book）,买卖双方的报价都在这个订单薄上展示出来。

订单薄里面存在两个角色：挂单者（Maker）和吃单者（Taker），挂单的就是做市商。通常专业的做市团队都是双向做Maker的，即同时挂买单和卖单，而且他们会有专业的工具来根据市场快速调整自己的报价，频繁的挂撤单来避免损失和获取利润，所以你在盘面上才能看到不停跳动的挂单数据。

有赖于这些做市商，你才能在很多情况下以很小的滑点从市场上购买到你想买的币种，否则你可能需要承受很高的交易滑点，这也是小的交易所或者一些山寨币由于做市的深度不够滑点很大的原因。

`这里插一句：做市商的能量是很大的，有的时候他们甚至可以控制一个币种的价格趋势，当然，市值越小的币种越容易被操控这本就是一个不争的事实。`

三、AMM
-----

相对于CEX，区块链行业诞生了DEX，然而传统的做市商在DEX上遇到了困境：

CEX上如果你不提现，其实所有的交易数据只是一个内部的数据表而已，但是对于DEX来说，所有的链上交易都是上链的，是有成本的，尤其像ETH（贵族链）这种，做市商无法去提供这样的交易频率。

那我们自然而然的就会去想：有没有一种方法能够自动的提供这种做市商的作用呢？

首先我们来剖析“交易”本身，对于一笔交易而言，最重要的数据可能是：【价格】和【仓位】，如果有一个去中心化的“池子”，他能提供：

1）足够多的兑换币种数量（即流动性）

2）自动、有效的价格机制

那么是不是就能解决这个问题了，我们直接从这个池子里面来买卖币种就可以了，然后提供这些币种的人会收取我们交易的手续费就好了。

### 3.1 LP-流动性提供者

然后我们就引出了一个大家耳熟能详的概念：

【LP】：Liquidity Pool，就是将自有资产按比例存入池子中为交易提供流动性，这个池子就被称作流动性池。

LP根据提供的资金占池子的比例，将获得相应的LP token，这是一种存款凭证。用户根据自己的资金比例所分得的交易手续费会累积到LP token的价值中，用户提供流动性后从中获得收益的这一行为称为【流动性挖矿】。

### 3.2 价格机制

接着看价格机制：

我们肯定希望价格是自动化的，所以可以设想一个与池子内币种相关联的算法，由算法自动给出币种的价格。算法的设计中需要注意一点：要尽可能的避免一方资产枯竭，因为这样池子就失去作用了，不能再提供流动性了。

UNISWAP给出了他们精妙的设计：恒定乘积算法！

> x \* y = k
> 
> _其中x、y代表池子中两种资产的数量，k是一个设定的常数_

![y=k/x的图像（图片来自网络）](https://storage.googleapis.com/papyrus_images/e6208443360263c3843395d5537913798282dd0d9a56940fa8fb547aeb4d138a.png)

y=k/x的图像（图片来自网络）

它用一个极简的公式实现了我们想要的一切：

1）价格的自动发现（这样就不需要订单薄了）

2）可以有效避免一方资产的枯竭

3）随着k的增大，交易的滑点可以很低

举例来说明：

1）假如上图中A是USDT，B是ETH，目前B的价格是3,000USDT/个

2）现在向池子里面注入10ETH和30,000USDT，这是初始的状态，可以计算出初始的k=10\*30,000=300,000

3）我向池子里面投入3000USDT来买ETH，那么买到的数量是多少呢？

计算投入后池子USDT的数量为33,000，那么根据x\*y=k的理论，可以算出：

ETH的数量为：300,000/33,000=9.09，所以我获得了10-9.09=0.91个ETH

你会发现几个问题：

1）随着一方资产的减少，他的兑换价格就会上升，并且会随着减少的幅度快速上升，这样你就不会再买了，从而可以避免资产快速枯竭。

2）数量不是我们常规印象当中的 1ETH，这与k的大小有关，如果k扩大100倍，那么同样的情况下，我们能买到的ETH数量为：0.9999，这就于CEX几乎完全相同了，所以我们可以通过提高k来实现滑点很低的交易

所以，对于UNISWAP的这个创新，我真的觉得是数学之美啊~~~

且慢，还有问题没有解决：

就是这个池子的兑换价格完全是由内部交易产生的，而对于场外价格是完全未知的，怎么才能实现和场外价格的做到大致同步呢？

聪明的人已经想到了一个角色：套利者。

### 3.3 套利者

套利者是一群很有意思的人，他们追寻市场中无风险或者低风险的赚钱机会，他们会根据不同市场中出现的价格差迅速的进行操作，从中赚取差价。也正是也为他们的存在，让各个市场的价格能够保持大体上的一致。`以前，我还专门写过一篇关于套利的文章，在牛市的那个阶段，也通过套利赚了一些钱。`

依然参考上面的例子：

1）原来池子里面有ETH 10个，USDT 30,000个

2）假定现在数量变成了ETH 5个，因为 k 恒定，所以 USDT数量为 60,000个，那么现在在池子内ETH的价格就是 12000U/个，但是在场外还是3000U/个，这存在着巨大的套利机会啊，我只要从场外买了ETH然后到这里面卖不就赚了吗？！所以就会存在这样的套利者来进行套利，从而最终实现池子内的价格和场外价格基本一致。

### 3.4 其他

AMM本身其实有很长的历史，Uniswap以AMM为基础，加上让人惊叹的300行精简初始代码，以及完全不需权限的，任何人都可以出资，甚至不需要预言机的特点。自2018年推出以来，已经在DeFi上掀起了风暴。

下图就是AMM的整体流程：

![AMM机制闭环（图片来自网络）](https://storage.googleapis.com/papyrus_images/49e1add428bf5ca2a056ec066776fa17fedcb2534734da5d9f0a293be10d6fb9.png)

AMM机制闭环（图片来自网络）

当然，价格机制除了恒定乘积（即CPMM模型），还有恒定和（CSMM模型）、恒定平均值（CMMM模型）、混合常数函数（CFMM模型）等等。

四、vAMM
------

AMM模型已经是一个非常厉害的模型了，然而他也仍然存在着缺点：

1）AMM的交易效率相对于CEX是不足的，资金利用率也是不足的；

2）对于流动性提供者（LP）他们可能会承受【[无常损失](https://academy.binance.com/zh/articles/impermanent-loss-explained)】；

3）因为他始终是针对代币互换，因此很难适用于衍生品市场。

针对衍生品市场，[Perpetual Protocol](https://perp.com/)提出了vAMM机制。

vAMM：Virtual Automated Market Maker，虚拟自动化做市商。这个协议有如下的特点：

1） 使用了与AMM相同的 x\*y=k 恒定乘积公式；

2）不同的是，vAMM本身并没有存储真正的资产池k。

所以你可以理解为：vAMM的池子是一个虚拟的，里面有两个虚拟的资产x和y，然后按照按照x\*y=k来运作。那么现在vAMM就被分解为两个部分：

1）金库：存储用户的真正资金；

2）虚拟资产池：用户在这个池子里面进行资产的交易。

但是在虚拟资产池中的交易是虚拟的，不是真正需要SWP的，所以你发现很像什么？

对，就是传统CEX的交易形式（当然这不完全准确），他内部的交易相当于一个交易数据库。而这种资金和交易的分离带了了很多的好处：

1）显著的增加交易效率。因为没有SWAP；

2）不需要流动性提供者。我不需要你组LP在池子里，它的流动性来源于 vAMM 之外的金库，交易者本身就可以彼此提供流动性，重要的是这样就不存在无常损失了，我存入USDC，我取出也是USDC，可以不涉及其他资产；

3）可以使用杠杆。我在金库的资产是A，但是我可以加杠杆在虚拟池里面变成2A，只要有相应的清算机制即可。

4）一切皆可合约，让去中心化的衍生品可以得到长足的发展。由于vAMM是一个独立的现金结算市场，因此通过资金费率的方式，让vAMM 市场价格接近任意某个基本指数。

如果你想了解更多的关于vAMM的具体细节（比如定价机制，交易示例，清算，资金费率等），可以参考[文档](https://docs.perp.fi/v/perpetual-protocol-jian-jie/getting-started/how-it-works/vamm)。

所以，[Perpetual Protocol](https://perp.com/)根据这个创新的vAMM协议实现了他们的去中心化的永续合约，[NFTPERP](https://nftperp.xyz/)根据这个协议创建了基于NFT的永续合约。

目前vAMM机制也在不断的进化，比如[Drift Protocol](https://www.drift.trade/)就针对vAMM进行了优化，引入了重置流动性和动态k值的概念……..

**我十分喜欢Crypto圈的一点就是：这里充满了大量大胆的尝试和创新！**

五、参考资料
------

1、[defi挖矿机制：AMM自动化做市商与LP挖矿无常损失](https://www.jianshu.com/p/1686f00aa106)

2、[继AMM后，vAMM又是一场财富风暴？](https://www.jianshu.com/p/984475ceb4a1)

3、[什么是永续协议](https://docs.perp.fi/v/perpetual-protocol-jian-jie/)

---

*Originally published on [ViewDAO](https://paragraph.com/@viewdao/5-vamm)*
