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,感激不尽。

Subscribe to berwinYes
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.