FeSwap 交易所特点 #
FeSwap 去中心化交易所复用了部分 Uniswap 的技术架构和技术实现,交易功能主要通过交易路由、交易对工厂、以及交易资金池 3个智能合约完成。
交易路由是用户加入流动性、退出流动性、以及代币交易的入口;交易对工厂主要实现交易对创建、及交易对信息管理等功能;交易资金池执行具体的交易功能,包括加入流动性、退出流动性、代币交易、价格预言机等等。
FeSwap 有不少不同于 UniSwap 的技术实现,下面进行详细描述。
双交易池设置 #
FeSwap 去中心化交易所采用 FreeSwap[4] 自动做市商机制,按照常量乘积公式[3] 确定资产的交易价格及其数量。
与 Uniswap[2] 等交易所不同的是,用户交易时不需要支付交易手续费。按照常量乘积公式,对于资金池中数量分别为 A、B 的两种资产,数量为 a 的 A 类资产可以换得 B 类资产的数量 b 为:
FeSwap 为每对交易资产设置两个单向交易的子交易池,当两个单向交易池的资产价格偏离达到1%时,子交易池之间自动进行一定数量的资产互换,进而修复资产价格偏离。
FreeSwap 交易协议从理论上证明了这一内部资产互换,对于两个单向子交易池来说,是双赢的,而且双方都是收益最大化的。根据 FreeSwap 协议的公式 (2.4.1),两个单向子交易池可表示为:
子资金池之间的价格自动修复规则,也即套利规则,由 FreeSwap 协议的公式 (2.4.19) 定义:
其中, 是套利操作的触发条件,FeSwap 设定 。 为套利操作时资产互换的价格,、 为资产互交的数量。
交易对创建 #
FeSwap 会对创建数字资产交易对进行限制,以提高资产交易对的质量。
每个数字资产交易对的创建权限由一个对应的 NFT 代币控制,只有该 NFT 的所有者才有权利创建该交易对、设置或者修改该交易对交易收益的接受地址。
每个交易对交易收益平台收益部分 60%的收益归该交易对 NFT 的所有者控制,其可以为该收益指定任意接受者,也可以选择在一定的时间段内放弃该收益。
如何创建代币交易对 NFT,以及如何竞拍、转让该 NFT,请参见 "交易对NFT" 描述。
增加流动性 #
用户在为交易池提供流动性时,可以通过调整加入两个子资金池的资金比例来决定是只加入一个子资金池,还是同时加入两个子资金池,及两个子资金池的资金分配比例。
理论上讲,加入两个子资金池中流动性较少的子资金池,用户的收益会稍高一些。
如果资金量较大,可以同时加入两个子资金池,如果资金量较小,则可以选择加入流动性较少的子资金池。在资金池刚刚创建,最初为资金池加入流动性时,两个资金池的资金分配比例建议设为 50:50。
- 不要创建两个数字资产均为稳定币的交易对。FeSwap 通过动态恢复两个子资金池的价格偏离进行套利,不适用于两个数字资产均为稳定币的交易池。
- 有一些通缩型代币会在转账时销毁一定比例的代币,希望不要创建包含该类通缩型代币的交易对。通缩型代币的内部资产互换不能确保两个子资金池资产价格的一致性,而且交易池内部资产多次互换也会造成代币数量通缩。
交易收益分配 #
FreeSwap 协议的自动做市商机制,在完全不收取用户交易手续费的情况下,可以产生相当于 2.488‰ 的交易手续费的收益。
该交易收益的 11/12 约合 91.7% 由所有资金池流动性提供者按照出资比例分享,FeSwap 交易平台、以及交易对所有者分享交易收益另外的 1/12 约合 8.3%,分配比例为40:60,即 FeSwap 交易平台收取 1/12 的 40%,另外 60% 支付给交易对 NFT 的所有者设定的接收地址。
NFT 所有者可以随时修改交易收益接收地址,也可以将该地址设为 0 暂时放弃该收益。
FeSwap 收取的交易收益主要用于支撑 FeSwap 交易应用的开发及维护工作,但 FeSwap 会在系统开始运行的最初3个月内,放弃收取其拥有部分的交易收益,以希望吸引更多的流动性提供者。
交易收益会在有用户加入流动性、或退出流动性时支付。
在交易过程中,由于计算精度的原因,多次交易后,交易池中可能会产生极微量的粉尘收益,交易池不会对该收益进行分配,而是将该收益保留在资金池里。
退出流动性 #
如果用户同时加入了两个子资金池,用户在退出流动性时,可以选择退出任何一个子资金池,也可以同时退出两个子资金池。
代币交易 #
用户通过 FeSwap 交易路由进行代币交易时,交易路由会首先计算两个子交易池的资产价格偏离,如果价格偏离超过 1%,交易路由会触发两个子资金池之间的资产互换,也即内部套利操作,从而恢复价格偏离。
对于触发内部套利操作的用户来说,他会付出高于正常交易的交易Gas费,但也会得到最好的代币交易价格。
如果其它合约绕开交易路由,直接调用交易对合约接口进行代币交易,内部套利操作不会被触发,此时如果价格偏离高于阈值,交易仍然会按照偏离价格进行。
不要直接调用交易对合约接口,除非用户非常明确自己的操作意图,如果操作不当,可能会造成用户自己资金损失。
FeSwap 闪兑 #
FeSwap 支持闪兑交易,即用户可以先从交易池中兑出需要的代币,然后再在同一笔交易中归还相应数量的兑入代币、和/或兑出代币。
闪兑交易只能通过直接调用交易对合约发起,不支持通过路由合约发起。
由于 FeSwap 资金池是单向交易池,闪兑交易只能借出兑出代币,不能借出兑入代币,用户需要谨慎选择借出代币的交易对。
闪兑交易可以归还兑出代币和/或兑入代币。如果归还兑出代币,FeSwap 交易对会收取0.3%的闪兑手续费,为交易池资金提供者获取服务收益。
如果闪兑交易归还兑入代币,FeSwap 不收取任何交易手续费。闪兑交易通常交易金额较大,如果归还兑入代币,会引起交易池较大的价格滑动,这个价格滑动会被交易池锁定,从而触发后续的交易池内部套利,为交易池产生收益。
闪兑交易时用户需要从自己的利益出发,谨慎选择归还代币的种类和数量,FeSwap 支持同时归还兑出代币和兑入代币,区别只是在于归还兑入代币不收取费用,归还兑出代币会收取0.3%的交易服务费。
价格预言机 #
FeSwap 继承了 Uniswap 的时间权重平均价格预言机机制。
但由于 FeSwap 采用单向双交易池机制,FeSwap 的价格预言机会输出两个价格,而且两个价格之间会存在不大于1%的系统性偏差。
如果第三方应用采用 FeSwap 预言机给出的价格,一定要采用两个交易对预言机给出价格的平均值,单向交易对给出的预言机价格会单向变化,并发生周期性的套利调整。
区块链网络 #
FeSwap 免费去中心化交易所初期基于以太坊网络运行,应用稳定运行后,将会考虑部署到以太坊二层网络、以及币安智能链等其他区块链系统。
部署到其他区块链网络时,交易对的少量运行参数可能会做调整,但为用户提供免费代币兑换服务的核心机制会保持不变。