写点什么

swap 去中心化交易所系统开发技术分析

  • 2022 年 8 月 26 日
    广东
  • 本文字数:1466 字

    阅读完需:约 5 分钟

Uniswap 设计结构

(1)Uniswap 两大核心智能合约

交易合约

一个交易合约支持一种 ERC20 代币,系统开发询薇 hkkf5566,每一个交易合约都储备持有一定量的 ETH 以及支持的这种 ERC20 代币。

工厂合约

工厂合约可用于部署新的交易合约,因此,任何还没有在 Uniswap 上面有交易合约的 ERC20 代币,都可以使用工厂合约来部署一个交易合约。任何以太坊的用户都可以通过‘createExchange()’函数实现这一点。工厂合约扮演了 Uniswap 中交易合约“注册中心”的角色,工厂合约可以用来查找所有已经被添加进 Uniswap 系统里面 ERC20 代币和交易地址。

(2)Uniswap 交易类型

ETH ⇄ ERC20 交易

ERC20 ⇄ ERC20 交易

交易汇率是由 Uniswap 的恒定乘积公式来决定的:ETH 池 * token 池 = 恒定乘积值

在 Uniswap 上执行任何交易,此恒定乘积值都保持不变。只有当此交易合约中的流动性池发生变化的时候,此恒定乘积值才会发生变化。

(3)Uniswap 交易流程

1. 恒定乘积公式

Uniswap 遵循的是 AMM(Automated Market Maker,自动化做市机制),AMM 机制由算法构成,Uniswap 的机制是恒定乘积:


图示公式:

x * y = k

k 表示一个不变的常数

x 和 y 表示特定交易对中 ETH 和 ERC20 代币的可用数量。

使用此公式,如果以 Uniswap 中的交易合约举例,则代表该交易合约储备有 x 数量的 A 代币和 y 数量的 B 代币。这个合约将始终保持乘积恒定,也就是说 x * y 得到的 k 值不变。任何人都可以通过有效改变做市商在 x* y 曲线上的位置来进行买入或者卖出代币。横轴代表卖出的 A 代币的数量,纵轴代表买入的 B 代币的数量。

2. 流程图

官网图

示例流程图

3. 流程举例

流动性提供者一共存了 10ETH 和 500BAT 到交易合约中,因此,基础的恒定乘积值为: 500 * 10 = 5000

​ ⬇

路人甲想要发起交易来用自己的 1 个 ETH 兑换成代币 BAT,此时,交易金额的 0.3%也就是 0.003ETH 将被扣除作为给流动性提供者的报酬。剩余的 0.997ETH 则被添加到了 ETH 池里面。

​ ⬇

根据公式,恒定乘积值不变,还是 5000,除以 ETH 池中新的 ETH 数量,来得到 BAT 池中应该有的数量,那么多出来的 BAT 就是路人甲兑换的数量

计算过程:

ETH 池 = 10 + (1–0.003) = 10.997

BAT 池 = 5000/10.997 = 454.67

Bob 将兑换得到 : 500–454.67 = 45.33 BAT


兑换交易结束后,路人甲发起交易的手续费 0.003 ETH 将会加回到 ETH 流动池里面,因此在交易合约上每执行一次交易,恒定乘积值就会增加一点。

计算过程:

ETH 池 = 10.997 + 0.003 = 11

BAT 池 = 454.67

新的恒定乘积值 = 5,001.37


在这次交易中,路人甲兑换的汇率为 45.33 BAT/ETH

计算过程:

1 ETH 入

45.33 BAT 出

汇率 = 45.33 BAT/ETH

本次交易,流动性提供者获得报酬 0.003 ETH,使得流动性提供者为交易合约提供流动性这件事儿,成为一种有利可图的行为,会吸引更多其他人加入。

三、Uniswap V2 新特性

(1)多智能合约组成

包括 Factory 、Router V2、Pair 和 Pari ERC20,还有一个负责功能的 Library 。

(2)闪电互换

从 Uniswap 流动性池中 “借出” 代币、用于与任意的外部服务交互、然后 还清 的初始贷款,所有操作都要放在一笔交易内,并且这样的交易是原子化的,意思是说,交易中的任何一个操作失败,都是导致整笔交易失败、被改动的状态完全回复。

(3)去除 ETH 作为中介代币

Pari ERC20,还有一个负责功能的 Library 。

(2)闪电互换

从 Uniswap 流动性池中 “借出” 代币、用于与任意的外部服务交互、然后 还清 的初始贷款,所有操作都要放在一笔交易内,并且这样的交易是原子化的,意思是说,交易中的任何一个操作失败,都是导致整笔交易失败、被改动的状态完全回复。

(3)去除 ETH 作为中介代币

移除这个硬性要求可以减少一半的交易数量,也能节约交易的 Gas 费。


用户头像

还未添加个人签名 2022.05.23 加入

区块链项目开发,咨询weixin:hkkf5566

评论

发布
暂无评论
swap去中心化交易所系统开发技术分析_开发微hkkf5566_InfoQ写作社区