写点什么

去中心化交易所 swap 系统开发功能以及逻辑分析

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

    阅读完需:约 6 分钟

Uniswap 介绍

Uniswap 是一个基于以太坊的交易所协议,允许任何人交换 ERC20 代币,从而促进 ETH 和 ERC20 代币数字资产之间的自动兑换交易。Uniswap 完全部署在链上,任何个人用户,只要安装了去中心化钱包软件,都可以使用这个协议,系统开发详细询薇 hkkf5566。

(1)Uniswap 设计的特点

易用性

在 Uniswap 交易所上买卖币时,你只要决定好卖出的币种、买入什么币、买或卖的数量是多少,按下 Swap 送出交易,在交易上链后就能立即取得你应得的币。而且就算是 Token A 换 Token B,在 Uniswap 也只要发出一笔交易就能完成兑换,在其它交易所中可能需要发两笔交易(第一笔将 Token A 换成某种中介货币(如 ETH, DAI)再发第二笔交易换成 Token B)才能完成。

费用低

根据白皮书中的资料,Uniswap 交易消耗的 gas 量是以太坊上的几家主流交易所之中最低的,也就代表在 Uniswap 交易要付的矿工费最少。

这主要得益于它相对简单的做市机制:

Uniswap 不是采用挂单搓合机制来完成交易,而是根据合约中储备的资金量算出当下的交易价格,并立刻从资金池中取出对应的金额传给使用者,整体的运算量相对较少。

抗审查性

抗审查性体现在 Uniswap 上架新币的门槛:

就是没有门槛,任何使用者都能在 Uniswap 上架任何 Token。这点即使在众多去中心化交易所之中也是少见的,大多数的去中心化交易所虽然不会像中心化交易所那样向你收取上币费 ,但还是要申请上币、通过审查后,运营团队才会让你的 Token 可以在他们的交易所上交易。

但在 Uniswap,任何使用者只要发起一个 createExchange 的交易,就能让一个 Token 上架到 Uniswap 的交易对中,上架后也没有人能迫使它下架。

(2)Uniswap 基础概念

流动性提供者(liquidity provider)

「流动性提供者,也称为做市商」是一个金融术语,指的是帮助一个金融市场提高流动性的个体。一个拥有越高流动性(市场深度越大)的交易所,其使用者就越能在短时间内以稳定的价格完成大额资产的交换,使用者的交易体验当然就越好。反之,在一个流动性不足的交易所,就有可能因为一笔大额的交易导致币价剧烈波动。

在 Uniswap,流动性提供者要做的事情是:替一个 ETH - Token 交易对增加 ETH 与 Token 的储备资金,储备金越多,ETH ⇄ Token 的交易价格就越稳定,该 Token 的流动性就越高。

但如果「替一个交易对增加流动性」这件事不能带来利益,应该很少人会自愿这么做,所以 Uniswap 的做法是从每一笔 ETH ⇄ Token 交易中抽取「流动性提供者费用」0.3% 分给流动性提供者们,逐利的人们就会自愿为 Uniswap 增加流动性以赚取被动收入,交易者们也能享受到更好的交易体验,达成双赢。

资产流动性(流动性资产池)

Uniswap 协议的设计结构体系与传统数字资产交易所中的交易模型完全不同。大多数传统交易所都是通过维护一个“订单簿”,来匹配一种数字资产的买卖双方。Uniswap 则完全不同,它是利用储备金流动性来实现协议上的数字资产交易兑换。

交易合约中的储备金是由众多“流动性提供者”来提供的。这些流动性提供者将等值的 ETH 以及 ERC20 代币充值到这个交易合约中。

流动性代币

流动性代币也符合 ERC20 标准,代表流动性提供者对这个交易合约的贡献,用来追踪每个流动性提供者贡献的储备金占总储备的比例。而流动性提供者可以选择在任何时间销毁自己持有的流动性代币,然后就可以把对应比例份额的 ETH 和该种 ERC20 代币从交易合约中赎回出来。

(3)Uniswap 主要功能

兑换/发送(Swap/Send)

「兑换(Swap)」可以进行任意两种币的兑换。选定好兑换的输入、输出币种后,可以选择在「输入」或「输出」其中一栏输入数字,另一栏会立刻计算出对应的数字。

「发送(Send)」可以在兑换完成的同时立刻发送这些币给另一人,显示出来的数字都是已经扣除手续费 的。

增加/领出流动性资金(Add/Remove Liquidity)

​ 做市商机制。

创建交易所(Create Exchange)

4)Uniswap 的优缺点

不能自行决定买卖价格

你只能被动接受 Uniswap 给你的价格,不能挂单在你想要的价格。

Front Running(超前交易)

从你发出交易到交易上链之前,其他人有机会赶在你的交易完成之前执行另一笔交易,使得你的成交价格偏离预期,你因此吃亏,对方因此得益。

交易价格保护机制

成交价格大幅偏离预期:

从发出交易到交易上链之前,交易价格有可能因为别人的交易而改变,有可能导致我们的成交价格大幅偏离预期,那么这笔交易就会失败。为了避免这样的憾事发生,Uniswap 在合约中就设计了这样的机制:我们可以在发出的交易中规定我们至少应换得多少 ETH 或 Token。

交易时间限制

可以指定一个时刻作为最后期限,如果交易上链的时刻超过这个 最后期限则交易会失败。Uniswap 网页会自动设定最后期限为当下的时间加 15 分钟,换句话说,如果你发出的「兑换」或「发送」交易没有在 15 分钟内上链,交易就会失败,所以请避免设定太低的 gas price 以防交易迟迟不上链最终失败。

用户头像

还未添加个人签名 2022.05.23 加入

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

评论

发布
暂无评论
去中心化交易所swap系统开发功能以及逻辑分析_开发微hkkf5566_InfoQ写作社区