AMM and DEX

Fan You
Dec 30, 2021

--

AMM (Automated Market Maker)是Defi最重要的发明之一,他促成了去中心化交易所(DEX)的形成,改变了币只能hold而不能产生收益的情况。让去中心化参与者之前的钱流动了起来,盘活了整个生态。

Introduction

传统Market Maker(TMM)的职能主要是为市场注入流动性,缩小bid和ask之间的差价,同时利用这些差价赚取收益。TMM目前都是一些centralized的大公司(例如Citadel),拥有巨量资金以及asset,所以他可以既当buyer又当seller。TMM需要很强的数据分析能力来精准判断supply/demand以提供定价,而这些能力的背后又是无数的人力和资金。

Traditional Market Maker

当我们移步到decentralized finance,没有了TMM的职能我们将面临两个问题:

  1. 没有一个centralize的公司可以提供定价
  2. 市场里没有足够的liquidity

AMM的诞生就是为了解决这两个问题。AMM的本质是一套算法,通常直接运行在DEX里。

Automated Market Maker

Pricing

AMM采用了一个极其简单的定价方式: constant product curve.

对于任何一个trading pair,例如ETH对BAT,假设ETH的liquidity是x(DEX里这个trading pair一共有x个ETH), BAT的liquidity是y(一共有y个BAT)。

constant product curve 描述了两个要求:

  1. x * y = k。(确保每一笔交换以后k都保持恒定,k的初始值由initial creator决定,后根据liquidity加减不停调整,但是交易不会影响k。)
  2. 用ETH换BAT的价格是x/y。(这个可以用简单的supply demand来理解,如果很多人把ETH换成了BAT,那么x变多,y变小,ETH换BAT成本就会变高)

Liquidity

AMM引入了一个新的概念: Liquidity Provider,众人拾柴火焰高,任何的人都可以提供Liquidity。

同样ETH和BAT的例子,Liquidity Provider需要根据x/y (兑换价格), 来提供等量的liquidity pair。提供的Liquidity会以百分比的形式被记录在DEX里,provider根据这些百分比按比例收取手续费,最后也可以按比例拿走liquidity。

增加liquidity会增加x,y的值,所以k也会变多,反之亦然。

参考uniswap v1的实现: https://github.com/Uniswap/v1-contracts/blob/master/contracts/uniswap_exchange.vy#L48

Impermanent Loss

由于liquidity是按百分比记录,所以放进去1 ETH作为liquidity不代表能拿出来1 ETH,当ETH对于BAT的价格暴涨时,那么拿出的ETH将会减少。这就叫Impermanent Loss。

Trading

有了price和liquidity,trading就可以发生了。

假设liquidity pool里有100(x)个ETH和100(y)个BAT,这时ETH对BAT的价格是1:1, k = 10000, buyer想花一个ETH买入BAT,他能获得多少个BAT呢?表面上他应该能获得一个BAT,但是因为交易发生以后,会剩下101个eth和99个BAT,这样改变了k。所以实际上获得的BAT是 x-(k/y’) = 10000-(10000/101) = 0.99。

由于DEX应用AMM而没有使用order book,所以并没有实现limit order的功能。每一笔交易都会影响价格,因此必须设置slippage去防止front run。

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response