berwinYes

Posted on Aug 09, 2022Read on Mirror.xyz

DeFi概念介绍(二)——去中心化交易所DEX与自动做市商AMM

如果说区块链技术出现以来,真正带来行业变革的,一定是区块链技术与金融的结合——DeFi出现。而DeFi的基石,则是去中心化交易所DEX(Decentralized Exchanges)。与之相对的则是传统的中心化交易所CEX(centralized Exchanges)。

1、DEX 与 CEX

CEX

CEX顾名思义,是由平台负责维护交易系统、用户账户、订单,以及上文提及的交易可靠性担保,所以这一类交易所又被称为中心化交易所

采用订单簿的交易模式,实时收集市场上还未被撮合的买单和卖单,这是数字交易平台的基本模式。交易平台的内部系统会通过订单簿来撮合买单和卖单。

可以类比于我们所熟知的淘宝,现在比较出名的CEX有币安、CoinBase等等。

值得注意的是CEX你的所有trade是不上链的,用户所有数据存储在交易所的数据库中,只有转出到钱包时才会有链上资产转移。

DEX

DEX而是一个基于区块链的交易所,它不将用户资金和个人数据存储在服务器上,而是通过授权智能合约来匹配希望买卖数字资产的买家和卖家。在匹配引擎的帮助下,这种交易直接发生在参与者(点对点)之间。简而言之,没有中间商。所有功能均由智能合约完成,功能全部去中心化。

当匹配完成后,双方的交易信息都会上链,上链成功后,将会由系统通知用户该笔订单已完成的信息。

总结

DEX的优势:

  • 安全性。DEX 通常通过分散的服务器网络进行大量交易对的低成本交易,降低了黑客攻击的风险。

  • 匿名性。没有身份验证程序,没有 KYC,也没有上传到服务器的个人文件。

劣势:

  • 效率低。由于区块链分布式记账特性,完成交易的速度上十分缓慢,全世界最大的公链ETH每秒的TPS只有15笔。

  • 相较于CEX功能有限。

CEX 的优势:

  • 交易速度快

劣势:

  • 不安全。中心化后平台作恶。 交易所跑路情况屡见不鲜,A网、虎符、中币等等。

2、AMM

如果说DEX是DeFi的基石,那么AMM则是DEX的灵魂,驱动DEX的核心。AMM最早被Uniswap提出并应用,已经迭代了多个版本。

AMM(Automated Market Makers) 自动做市商。顾名思义,自动的为交易用户提供交易,并且兑换价格可以跟随当前市场价格。并且自动运行,无需第三方维护。都是用智能合约进行实现,无任何人工干预。

传统的CEX交易,你想买TokenA,必须存在卖方,才可完成交易,这就是所谓的订单薄交易。但是在DEX中,AMM 的作用下,传统的订单簿被流动性池(Liquidity Pool)所取代;买家、卖家、做市商不复存在,取而代之的是流动性提供者、交易者和套利者。由于是全自动地撮合交易,交易者也失去了报价的权力,只能接受 AMM 所提供地价格。

交易者

交易者可以与流动性池发生交易,向池子中投入一种资产,以换取另一种资产,这个交换的过程需要支付交易手续费。

套利者

套利者负责修正交易价格,以保证流动性池中的资产交易价和市场价一致,并从中套利,他们会给流动性提供者带来无常损失(Impermanent Loss)。

流动性池(Liquidity Pool)和 流动性提供者(Liquidity Provider)

流动性池可以理解为一个大池子,里面有许多的加密货币资产,一种DEX中提供的交易对拥有一个LP池,例如在BSC中BNB/BUSD交易对有 BNB/BUSD LP池。BNB/USDT 有BNB/USDT LP池,不同池子的深浅取决于流动性提供者所提供的币总价值,并不统一。

流动性提供者将自己的资产注入到流动性池中,为交易提供流动性,通过交易手续费获取一定收益。任何人都可以成为流动性提供者,只要他向池子里注入了资金。流动性提供者将资金注入流动池又被成为流动性挖矿,提供者又被称为矿工。这个会在接下来的无偿损失概念中进行详细介绍。

在这个特殊的自动做市商(AMM)机制中,存入的Token对需要由两种等值代币构成。流动性提供者必须按照当前Token对的价格进行注入,如当前注入BNB/BUSD LP池,假设此时的1BNB可以兑换10BUSD,那么注入LP中的则是 K个BNB和K*10个BUSD。

值得注意的是,流动性添加者通过质押Token对,也会获得流动性提供者代币(Liquidity Providers Token),也就是我们经常说的 LP 代币。作为凭证,获得流动性挖矿奖励。

运行机制

值的注意的是,当TokenA/TokenB 的 LP池中的资金为0时,将无法在当前DEX中进行TokenA、TokenB互换的交易。

流动性池解决了能否进行交易的问题,交易中Token价格问题则是交给了恒定乘积做市商 CPMM 来解决。

CPMM的核心公式

提出一种基于反比例函数作为价格曲线的LP池模式,

K = A * B

其中A和 B 分别是当前池中TokenA和TokenB的数量,K是一个由初始TokenA、TokenB数量决定常数。

如果没有流动性注入LP池,K不会随着交易的变化而变化。

恒定乘积做市:有自己的定价机制,价格由供需关系决定,流动性不会被耗尽。

当K确定时,交易的发生时,对应TokenA和TokenB的价格如何计算呢?

我们假设当前1BNB=100BUSD,此时A向流动性资金池中存入了1枚BNB和100枚BUSD。

此时K = 100*1 = 100

如果B想利用该交易对,用20BUSD换取BNB,他可以换取多少BNB呢?

利用K = A*B => 100 = (100+20)*(1-x)=> x = 0.166 

则B可以得到0.166个bnb。

此时根据池中的代币对等价值原则。

得到  120BUSD = 0.833BNB => 1BNB = 144BUSD

在AMM模型规则下,当前DEX交易对下 BNB涨幅 44BUSD。从而高于市场价格,套利者出现开始套利。

池子越浅,每次交易对池中Token的价格影响越大。

假设此时的池子中有100个BNB和1w个BUSD。汇率依旧是1BNB=100BUSD

则B可以用100BUSD换到

100*10000= (10000+20)*(100-x) => x = 0.1996

此时此LP中BNB价格为:

10020*1 = 99.8*P  => P = 100.4 

汇率为:1BNB = 100.4BUSD

汇率波动微乎其微。

总结:

  • 优势:

    当交易量显著小于资金池量的时候,基本可以实现以市场价的双向交易,而且兑换价格能够自动跟踪市场价格。

    部署完成后无须额外人为维护。可以注意到,在新增或减少资金池量时,需要对k=a*b值进行改变,除此情况下,k是恒定不变的。而且这一过程也是可以较容易实现自动化的,不需要调动别的价格接口,可以完全独立运行。

    AMM利用恒定乘积做市商CPMM的价格曲线非常简单,计算过程也不复杂,早期Uniswap所部署的AMM仅使用大约300行代码。

  • 劣势

    会给流动性提供者带来无偿损失,需要通过其他手段进行补偿

那么什么是无偿损失和滑点呢? 我们将在下一篇文章中进行讲解。

这里是coolberwin的Mirror,创作不易,希望看完顺手关注我的Twitter,感激不尽。