一份DeFi入门书
本篇文章从DEX的起源入手,探究DEX的发展历程与现状
文章目录
- 一份DeFi入门书
- 一、智能合约
- 二、中心化交易所(CEX)的运行方式
- 三、CEX的进化——传统DEX
- 四、传统DEX的进化——改良型DEX
- 回顾一下:我们到底需要什么?
- 五、改良型DEX的进化——储备库模式分支
- 六、改良型DEX的进化——自动做市商分支
- 一张图总结
- 七、AMM
一、智能合约
一图描述智能合约的运行机制:
二、中心化交易所(CEX)的运行方式
中心化交易所负责:
1、合约收取资金(充币)
2、多功能化的资金交易平台
3、合约返还资金(提币)
中心化交易所的功能:
1、资金托管
交易所系统足够安全-保管资金的能力
实现方式:中心化服务器保存资金数据
问题:黑客攻击交易所、交易所卷钱跑路
2、撮合交易
交易所活跃度足够高-两方快速达成交易的能力
实现方式: 中心化服务器构建交易平台
问题:币价剧烈波动时拔网线
3、结算清算
交易所系统足够快-两方快速进行交易的能力
实现方式:中心化服务器进行资金清算
问题:币价剧烈波动时拔网线
4、流动性供应
交易所资金储备充足-满足货币正常交换的能力
实现方式:中心化服务器无限流动性——你买的是大盘指数
问题: 币价剧烈波动时禁止充提币
总结:
CEX的好处:
极高的市场活跃度、
流动性
多功能的交易手段
高效的交易速度
支持法币兑换
CEX的缺点:
资产安全问题
缺乏信任和透明度
*监管
高昂上币费
三、CEX的进化——传统DEX
传统型去中心化交易所——所有功能放在链上
典型应用:EtherDelta
1、资金托管
保存在自己的钱包中
2、撮合交易
链上订单簿(合约)撮合交易
3、结算清算
链上合约完成结算
4、流动性供应
不存在流动性——你可能找不到有人跟你交易
缺点:
至少3-4次共识
交易慢
手续费高
链上拥堵
四、传统DEX的进化——改良型DEX
改良型去中心化交易所——撮合交易放在链下
1、资金托管
保存在自己的钱包中
2、撮合交易
链下订单簿撮合交易
3、结算清算
链上合约完成结算
4、流动性供应
不存在流动性——你可能找不到有人跟你交易
缺点:
至少1-2次共识
交易速度一般
手续费中
链上拥堵
最重要的:链下撮合交易作恶
回顾一下:我们到底需要什么?
五、改良型DEX的进化——储备库模式分支
1、资金托管
保存在自己的钱包中
2、撮合交易
储备库存储一定量的代币->管理人员提供兑换率——只需要一次共识
3、结算清算
链上合约完成结算
4、流动性供应
储备库中的代币提供流动性支持
缺点:
管理人员恶意设置兑换率
链上拥堵
储备库可能被恶意买空
六、改良型DEX的进化——自动做市商分支
去中心化交易所的现有阶段——AMM自动做市商模式
1、资金托管
保存在自己的钱包中
2、撮合交易
流动性池提供代币->兑换率由定价函数决定
3、结算清算
链上合约完成结算
4、流动性供应
流动性池挖矿激励所有用户提供流动性
定价函数保证流动性充足
一张图总结
七、AMM
一图解析AMM
四个问题:
流动性如何创建
流动性如何提供
如何进行交易
交易中如何确定价格
1、如何创建并提供流动性
流动性池提供LP代币作为——流动性提供证明,用于计算流动性比例
2、如何进行币币兑换(交易)
2.1 价格如何确定
2.1.1 CPMM(恒定乘积做市商)——基于公式x*y=k——兑换比例可变
特点:
X的供应量增加时,Y的供应量必须减少,反之亦然,以保持k的乘积不变
优点:
某一种代币的流动性永远不会归零(流动性永远可用)
缺点:
大量A/B代币进入池子,造成比例极度异常
下单价格与成交价格不一致
y/x(B资金量/A资金量)比例会变
(滑点——你期望交易来的币可能比你实际得到的要多/少)
2.1.2 CSMM(恒定总和做市商)——基于公式x+y=k,兑换比例1:1
优点:
适合零滑点交易——兑换比例永远是1:1
缺点:
流动性存在归零的可能(无法交易)
2.1.3 CMMM(恒定平均值做市商)——基于公式(xyz)^(1/3)=k
优点:
池内三个资产互相可换
流动性不会归零(流动性可用)
总结
恒定乘积做市商:xy=k
恒定总和做市商:x+y=k
恒定平均值做市商:(xy*k)^1/3=k
缺点:
1、滑点问题——下单价格与成交价格不一致 2、无常损失问题——两种代币价格背离过多
尚未解决的问题:
1、价格的真实性(价格滞后) 2、价格滞后带来的暂时性损失
3、无常损失
什么是无常损失?
提供流动性池->退出流动性池 提供与退出代币数量不同造成的代币总价格降低
以下列公式分析为例:
a:池中代币A的量;b:池中代币B的量;c:恒定k值
4、价格的真实性
为什么要提价格的真实性?去中心化交易所自己关起门来随便玩,与外界币价完全脱节 怎么办?
方法1:预言机
用来获取外界各方(中心化交易所,币价聚合器)的币价
方法2:套利者
一项被交易所鼓励的活动,套利者根据实际价格进行套利,以此保证币价与实际价格保持同步
重点:以恒定乘积为例,看代币是怎样计算的
理想场景下(没有手续费)
实际上发生的——项目方扣除0.2%的手续费
用户用了99.8%amountIn兑换了99.8%amountOut
兑换结果:实际比理论值少了0.1667%
amountIn不变(理论中我本可用amountIn兑换更多的amountOut)
基于现有amountOut,当前reserveOut(balanceOut)偏大,要减
核心代码解析
总结——一图概览
接个闪电贷引子
swap函数可以被任何人直接调用(假设调用amount0Out=1000,amount1Out=0)