OneSwap之Uniswap的优化

DeFi从今年6月份以来突然提速,极速狂飙。在这个过程中,借贷、DEX和流动性挖矿发展最为迅速。DeFi的用户从6月初不到20万增长到如今40多万,DeFi锁定资产量从6月初不到10亿美元增长到如今超过80亿美元,其中Uniswap、Balancer以及Curve的快速发展,尤其引入注目。
不过,随着更多的用户涌入,DeFi产品会进一步优化,竞争者会越来越多,尤其是DEX领域不乏新的竞争者。正如Sushi要进入DEX一样,越来越多的项目也会进入这个领域,集体比拼各种优势,各种Swap正在路上。
Uniswap留下的空白地
在之前的文章也聊到过Uniswap留下的空白地,虽然Uniswap不是第一个推进AMM模式的项目,但它却是第一个将AMM模式实践成功的项目。不过,Uniswap也存在一些问题,它在用户体验上、激励机制上都有迭代优化的空间。这为其他的后来者们留下了机会。一开始进入DeFi的是少数加密领域的核心用户,他们对于钱包、DEX交易流程都没有什么使用障碍。
不过,对于大部分新来的DeFi用户,目前的DEX使用体验存在一些问题。当前DeFi用户大约占CeFi用户的1%左右,不过DEX/CEX的交易量比率已经超过了6%,随着越来越多的新用户进入,一些使用体验方面的矛盾会日益明显。CEX用户体验跟DEX用户体验不同,这导致习惯了CEX体验的用户在使用DEX时会出现不方便的情况。比如没有限价订单、交易历史、实时图表等,不仅如此,还可能会出现交易拥堵、交易频繁失败、高交易费用等情况。
此外,很多新用户甚至不了解DEX交易滑点的问题,可能会造成非常大的损失。目前的DEX主要发生在以太坊上,不过其他链的资产也会参与到DeFi中来,比如比特币,也开始通过代币化BTC的模式进入到以太坊上进行流通。还有更多的其他链,如波卡、COSMOS、SOLANA也在构建DeFi产品,不同链之间的资产如何跨链流通和交易也是未来需要考虑的问题。
OneSwap对Uniswap的优化
OneSwap也是基于AMM模式的DEX,不过它跟Uniswap存在不同的地方:
*引入了订单簿的模式
之前蓝狐笔记关于Uniswap的文章《一文读懂Uniswap》,也谈到过它的自动做市商模式,也就是恒定乘积模式,流动性提供者向代币池中注入两种代币,例如ETH-DAI池,假设ETH价格为500 DAI ,那么如果注入100个ETH的同时,同时需要注入50,000 DAI。
当用户往流动性池注入100ETH和50,000DAI后,合约会根据用户在整个资金池中的比例,为用户生成相应的LP(流动性权益代币)代币,LP代币代表了用户在该资金池中的份额和权益。AMM模式采用的是X*Y=K模式,如果当发生资金兑换之后,由于K是常数,这意味着兑换之前和兑换之后,K是恒定的,也就是X1*Y1=X2*Y2。
当然,由于代币池是不断变化的,K会随着流动性的注入和退出而发生变化,此外,由于流动性池还可以捕获交易费用,K也会发生变化。随着Uniswap的成功实践,AMM模式成为DEX的主流模式。不过,这个模式本身是一种实时兑换的模式,这一点从Uniswap的名称也可以看出来。
目前大多数用户的交易体验是订单簿的模式,这意味着,如果用户想要在DEX提交限价订单,暂时还无法实现。这就为其他的Swap提供了可以扩展的空间。OneSwap在Uniswap的模式之上,推出了限价订单模式。
也就是说,用户如果想要在OneSwap上进行代币兑换或交易,可以采用两种方式。一是实时进行兑换,这是目前Uniswap上已有的模式;二是设定买单和买单,可以设置买入或卖出的价格、交易的金额等。对于流动性提供商来说,没有什么变化。但对于交易用户来说,这种体验发生了很大的变化。用户可以选择实时兑换,也可以根据自己的需求,设定交易价格,而不用实时盯着市场的变化。这更接近于传统CEX的交易体验,有更灵活的模式。
此外,DEX(非AMM模式)中也有订单簿模式,但它们往往采用链下撮合,链上清算的模式,而OneSwap采用的是纯链上撮合的模式。因此在OneSwap上不存在中心化的链下撮合订单簿。同时,OneSwap作为去中心化的交易协议,可以支持不同的合作商,例如钱包、聚合商、其他交易所等,这样用户可以从不同的前端界面进行下单交易。
*引入交易分析图表
目前Uniswap还没有实时交易的分析图表,例如深度图、K线图、交易历史等。交易者在交易时比较难通过这些图表进行交易决策。OneSwap则在交易界面上提供了类似于传统CEX一样的交易图表,方便交易者进行交易决策,可以查看所有订单簿、K线图、深度图、涨跌幅、成交额等。
总言之,OneSwap是基于智能合约运行的去中心化的AMM模式的DEX,它在做市模式上借鉴了Uniswap,不过,它引入了目前Uniswap还没有的订单簿模式,以及交易图表等工具,同时其订单簿模式并不是当前DEX经常采用的链下撮合模式,而是链上撮合和链上结算的模式。
*流动性挖矿+挂单挖矿的双挖模式
Uniswap是目前加密领域最大的DEX。不过,Uniswap一直没有发币,这也为其他的swap留下了肥沃的土地。OneSwap发行了社区治理代币ONES,这可以实现早期参与者和代币持有人跟协议的长期发展绑定。
按照目前OneSwap披露的信息看,ONES代币一共1亿枚,其中的50%代币通过社区贡献的方式进行分配,其中的5%奖励给参与创世挖矿的用户,这部分代币全部解锁。45%奖励给长期挖矿的用户,其中包括流动性挖矿、推广、项目合作等。至于具体解锁时间、释放份额,挖矿的计划会通过社区治理来决定。
剩余的50%代币中,其中的25%用于项目的运营和发展,确保网络安全和项目的可持续,这部分代币在4年半时间内分9次进行解锁,初始流通为2.5%,之后每6个月解锁2.5%;5%用于团队激励,初始流通为1%,之后两年内分4次解锁,每6个月解锁一次;5%用于早期投资者和流动性支持者,初始流通为1%,两年内分4次解锁,每6个月解锁一次;15%分配给项目长期的战略投资机构,初始流通为1.5%,4年半分9次解锁,每6个月解锁1.5%。从以上的分配机制看,ONES的初始流通为总量的11%。
具体到社区激励方面,OneSwap目前推出了流动性挖矿和挂单挖矿模式。目前在OneSwap上有21个白名单内的流行性代币池可以获得流动性挖矿和挂单挖矿奖励。挖矿为期20天,从2020年9月19日8:00到10月9日8:00,一共有400万ONES的奖励,其中200万ONES分配给流动性挖矿参与者,200万ONES分配给挂单挖矿参与者,平均来看就是流动性挖矿和挂单挖矿每天可以分到10万个ONES。
在流动性挖矿中,ONES/ETH代币池挖矿奖励为每日2万个ONES,占据总奖励的20%;而剩余的20个代币池每日平分剩余的8万个ONES,也就是这些池中每个代币池每日可以分得5000个ONES。具体到流动性挖矿的用户来说,参与者分得的比例是根据其在整体代币池中的比例而定。如果占1%的比例,那么,参与者流动性挖矿的用户会获得相应比例的该代币池ONES奖励分配。
在挂单挖矿中,挂单挖矿每天可以分配10万个ONES,只有进入白名单的币种挂单才能获得奖励。参与流动性挖矿代币池中的代币均为白名单中的币种。在挂单挖矿时,不会区分币种的代币池,只要是其中币种,即可获得奖励。分配按单个参与者挂单总值跟所有参与者的挂单总值的比例进行分配。
*gas费用和安全方面
从OneSwap公布的信息看,它经过了慢雾、派盾、成都链安三家安全公司的代码审计。此外,OneSwap在gas费用消耗方面也有重视,在增加了链上订单簿模式之后,根据其审计公司的披露,gas费用消耗仍低于Uniswap。鉴于目前交易费用非常昂贵,如果能降低gas费用,对用户来说,是不少吸引力的。
OneSwap的实现架构
从技术的角度,OneSwap是如何实现上述功能的?从架构上来说,由于OneSwap增加了限价订单模式,除了恒定乘积做市、LP代币(流动性权益代币)之外,其交易对Pair合约中增加了链上订单簿。

首先流动性提供者向OneSwap的交易对Pair合约的代币池中注入相应的两种代币资产,Pair合约根据当前代币的总量、LP代币总量、用户注入的资金量,生成该用户相应数量的LP代币。

当用户退出流动性池的时候,Pair合约会根据用户LP代币数量和LP代币总量的比例,将代币池中相应比例的两种代币资产返还给用户,同时销毁对应的LP代币。
OneSwap还提供了路由交易的功能。用户的所有交易都会发给Router合约。OneSwap支持交易者指定交易的兑换路径,用户将兑换路径发给Router合约。Router会根据Factory合约中存储的代币对Pair合约地址,按照交易者指定的路径完成相应的代币兑换。
每个代币池Pair合约会同时支持实时兑换和限价订单的模式。同时,在处理实时兑换订单时,Pair合约还会对比订单簿中最优价格和AMM价格,最终以最优价格来响应交易请求。因为是AMM的模式,每次交易对代币池中的代币价格都会产生影响。如果价格波动对有待成交的限价订单产生影响,代币对Pair合约会尝试处理订单簿中的订单。

最后针对链上撮合模式会产生gas费用过大的问题,OneSwap也进行了优化。其中包括对代币对Pair合约进行深度优化。OneSwap通过对Pair合约进行数据结构方面的优化,同时去除Uniswap上的闪电兑换功能和链上价格预言机等功能,从而减少Gas的消耗。
OneSwap的治理
OneSwap支持社区治理。OneSwap的链上治理需要使用ONES代币进行。首先拥有足够ONES的用户(超过代币总量的1%)可以发起提案,任何持有ONES的用户可以针对提案提出赞成或反对票。
投票周期为三天,一币一票,在赞成票超过反对票后通过提案。目前的提案支持纯文本提案、社区基金花费提案、交易手续费率修改提案、Pair合约升级提案。投票过程会通过治理合约管理,一旦通过,治理合约会自动执行相应操作。
根据OneSwap的白皮书,在治理代币ONES创建之后,11%进入初始流通,45%代币转入治理合约,44%代币转入锁仓合约。因此,后续的代币释放会根据锁仓规则进行。社区建设花费提案也需要经过社区投票通过后才能从治理合约中获得ONES代币。这其中包括后续的挖矿奖励计划、社区建设、项目合作等。
ONES代币除了参与治理,还可以捕获交易费用。在OneSwap的交易中,它会向Taker收取固定比例的交易费用,而Maker无须缴纳交易手续费用。在收取的手续费中,60%会分配给流动性提供者,40%用于ONES代币的回购和销毁。回购和销毁通过代币回购和销毁合约自动完成。