首页 > 热点新闻 > 去中心化交易所的“AMM模型”是什么意思?
DeFi有道  

去中心化交易所的“AMM模型”是什么意思?

摘要:上一节我们讲DEX交易的时候卖了一个关子:为什么交易时会有"滑点"?

上一节我们讲DEX交易的时候卖了一个关子:为什么交易时会有“滑点”?

 

如果你习惯于在传统交易所买卖,你可能还会有一个问题:在DEX里怎么找不到限价挂单功能啊?

 

这两个问题,都可以在DEX的交易机制里找到答案。本讲的内容可能略显晦涩,但它是进一步深入参与DeFi的必备知识,请务必逼着自己学完。

 

 

 

01

传统交易所的成交和定价机制:

 

 

我们以前在中心化交易所买卖币的时候,买卖决策的最直接依据是什么?

 

是币价。币价它是浮动的,相对低点我们买入,相对高点去卖出。

 

即使现在我们到了去中心化的交易所,币价肯定也是有涨跌的,没有涨跌,买卖就没有意义。

 

同时我们也应该明白一个基本的道理:价格的涨跌,就是由买卖行为决定的。比如我们在火币平台有ETH-USDT交易对,如果很多人卖出ETH换回USDT,那么ETH的价格肯定是跌的。

 

在传统的交易所里,数量庞大的交易者分别公布自己希望买入或卖出的价格。比如有ABC个人,分别想以100、101、102 USDT卖出ETH,同时又有DEF三个人,分别想以100、99、98 USDT买入ETH。

 

大家把各自的ETH充值到交易所的钱包地址上,并把上面的挂单信息在交易所app里发布。交易所发现A和D的价格匹配了,就撮合这两个人成交。

 

这种撮合成交的形式,被形象地称为:“订单簿”

 

成交之后,在这两个人的app账号里,完成了ETH和USDT的交换。但在现实中,ETH和USDT还躺在交易所的账户里——除非他们发起提款。

 

 

 

02

去中心化交易所怎么撮合成交?

 

 

很显然,上面的做法,并不适合去中心化交易所。

 

首先,我们不能让用户事先把钱充值进来,否则就变成中心化的东西了。

 

其次,订单簿显然不适合在区块链上发布,链上广播信息太贵了,在成交之前,你就要花费一笔gas,太不经济。

 

为了解决这个问题,uniswap创造性地发明了一种新的交易机制,你可以理解为:它用智能合约实现了一个交易机器人,这个机器人作为所有市场参与者的交易对手,每个人的买和卖,都由它来响应。

 

举个例子:机器人手里持有一些美金和ETH。A想以100 USDT购买一些ETH,就把这个意向通过uniswap的Dapp界面,表达给机器人。

 

在操作上,就相当于在上一讲我们见过的这个界面里,输入以下信息:

 

机器人看了看手里的USDT和ETH余额,算出了当下他愿意卖给A的ETH数量:大约0.024ETH。

 

A如果觉得合适,就确认交易。

 

那么问题来了,这个0.024ETH,是怎么算出来的呢?

 

这里又要提到一个新概念:AMM。它的中文译名是:“恒定乘积模型”。

 

“恒定乘积模型”的定义是:一个交易对里的两个币种(比如之前说的ETH和USDT),一定始终满足:

  1. 交易对地址上两种币的数量乘积是定值;

  2. 默认交易对地址持有的两种币的总价值相等。

 

 

 

一个交易对,就是一个手持ETH和USDT的机器人。

 

假设开始的时候,交易对里一共有10枚ETH,20000枚USDT。

 

按照上面的原理,10枚ETH的价格和20000枚USDT的价格相等,一枚ETH价值是2000U。

 

同时,ETH和USDT的“枚数”的乘积,10乘以2万,等于20万。记住这个数字。

 

现在,有一个人来到这个机器人面前,他要卖出0.5枚ETH。

 

在DEX里,卖出,就是和机器人进行交易。这个人卖出0.5ETH,是把0.5ETH给了机器人,机器人现在一共持有10.5ETH。

 

在这个时候,“恒定乘积模型”开始发挥作用。机器人手里持有的ETH和USDT的“枚数”乘积,必须始终等于20万。现在有10.5ETH了,我们用20万除以10.5,得到19047.62

 

也就意味着,在接收了0.5ETH之后,机器人地址上只能保留19047.62枚USDT。

 

之前他有20000个USDT,差值的那一部分,自然就打给这0.5ETH的原主人,作为它卖出ETH的对价。共计952.38USDT。

 

接下来,我们看一下币价的变化。“恒定乘积模型”默认机器人地址持有的两种币的总价值相等,那就是10.5ETH=19047.62USDT,1枚ETH现在价值1814.06USDT,比之前的2000U少了。

 

这也符合我们一般的认知,有人卖出ETH,导致ETH降价了。

 

细心的朋友可能会发现一个问题:开始的时候ETH价格是2000U,按说0.5ETH价格应该是1000U,但是卖出0.5ETH的人只到手了952.38U,比1000U要少。

 

这个就是“恒定乘积模型”的算法本身决定的,一个不完美的地方。

 

它的公式是X·Y=K,是一个双曲线,而不是严格线性。952.38和1000之间的误差,就是我们上节课讲到的滑点!

 

交易对的深度越好,恒定乘积越大,双曲线在特定交易范围内就越近似直线,这种误差也就越小,而这种误差,就是我们上面简单提到的滑点的由来。

 

 

 

03

如何降低滑点?

 

 

滑点是个不讨人喜欢的东西,谁都希望减少这种误差,多换点钱在自己手里。

 

回到刚才的案例里,这一次,我们让机器人手里事先多拿点币。

 

比如1000ETH,和200万USDT。这时候,恒定乘积=1000X200万=20亿。

 

一枚ETH的数量,依然是2000U。

 

A向机器人卖出0.5ETH,机器人手里的ETH变成了1000.5枚。

 

20亿除以1000.5,约等于1999000.5,代表着交易完成后,机器人应该保留1999000.5USDT

 

因此,机器人应该支付999.5USDT给A。和前面的952.38USDT项目,已经完美接近1000,几乎没有滑点。

 

所以降低滑点、让交易价格更平滑的办法,就是增加这个机器人手里币的数量。

 

如果用DeFi的专业术语表达,就是增加交易对的流动性。

 

流动性越好,币的价格越稳定,币所代表项目的市值就越稳定。

 

 

 

04

流动性提供者

 

 

稳定市值,是每个项目方最迫切的需求。因此,他们都会希望有更多的资金,来为他们的交易对提供流动性。让机器人手里的持币越来越多,币价越来越稳。

 

好在去中心化交易所里,人人都可以提供流动性。

 

我们还以ETH和USDT的交易对为例。机器人手持10ETH和20000USDT,此时有一个人想来为这个交易对提供流动性,他需要同时注入一些ETH和USDT给机器人,并满足一个条件:

 

注入的ETH和USDT,数量比例要符合当下交易对的比例(1:2000),比如他想注入1ETH,就必须同时注入2000USDT

 

然后,机器人手里的两种币都变多了,变成了11ETH和22000USDT。恒定乘积也随之增大到242000。

 

前面我们已经看到了,恒定乘积越大,交易滑点越低,标志着流动性越好。

 

当然,流动性不是白白提供的。Uniswap给流动性提供者提供两个好处:一是按照提供流动性占总流动性的比例,瓜分散户交易的手续费;二是发放一个流动性提供凭证给提供者,哪天提供者不想玩了,可以融解这个凭证,取回相应的代币。

 

这个流动性提供凭证(相当于收据),被称为LP代币,来自英文“liquidity provider”。

 

而流动性提供的好处,远不止如此。

 

项目方为了吸引大众来为它提供流动性,会在LP代币上下足功夫,提供各种福利。

 

DeFi世界的神来之作:LP挖矿,就诞生于此。请期待我们后续的教程。

来源: DeFi有道


免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。