深入思考Binance DEX (一)

01

两种撮合方式

交易所中的订单将以何种方式被撮合?在7*24小时营业的中心化交易所里,很多人没有机会也没有必要去思考这个问题。但是在去中心化交易所里,这是一个非常值得考虑的问题。

如果摒弃一些细枝末节,撮合方式基本上可以分为两个大类:最优撮合与集合竞价。

最优撮合就是所有人都相对来说更熟悉的那个方式,它的特点是:

  1. 交易请求有序到达,也就是下单一定是有先来后到的,这就区分出了Market Maker和Market Taker的区别。Taker掌握更多信息,拥有更多优势,因此通常会付不低于Market Maker的交易手续费。
  2. 对每一个新到来的订单,系统会从挂单中选取满足条件的对手单中最优的进行撮合,成交后从剩余挂单中继续选择最优,订单内每次撮合成交的价格可能都不同,直到该订单撮合完毕或者全部符合条件的挂单都已经撮合完毕。这里有个条件,最优。什么叫最优? 如果你是卖单,出最高价的买单就最优,如果你是买单,出最低价的买单就是最优。

另一种撮合方式是集合竞价,一般常见于定期收盘的交易场所比如股票交易所。例如A股进行盘前集合竞价,而港股则在盘前盘后分别集合竞价。但并不是存在开盘/收盘就必须集合竞价才能进行交易,举个简单的例子,A股中午11:30停盘下午1:00开盘就不会进行集合竞价。Binance交易所目前即使是新上一个交易对也不进行集合竞价。

集合竞价的特点正好相反:

  1. 订单部分先后,竞价期间提交的所有订单共同有效同时撮合。因此不再有Maker和Taker的区别。
  2. 根据某个原则确定一个最终成交价格。不同的具体实现中这个原则可以有所差异,但最终成交价格是唯一的。这意味着,即使你的订单成交,也可能不是满足你订单条件的对手价格。举例说明:你下单10元购买,同时有9元的卖单和8元的卖单一同参与集合竞价,系统并不会保证你以8元成交。

02

应用到DEX的优劣

集合竞价具有很强的时效性(一段时间范围内提交的订单参加集合竞价),通常在不间断的连续撮合中使用最优撮合。然而最优撮合的价格波动更剧烈,容易被市场操控拉盘或者砸盘。相比而言,集合竞价价格稳定,能够更好的执行价格发现的功能,这也是为什么在收盘/开盘等重要时刻点采用集合竞价的原因之一。

DEX作为去中心化的交易场所,毫无疑问是7*24运行的,那么似乎应该选择最优撮合?不尽然,采用最优撮合有两个难以解决的问题:

一是公平性问题。如前所述,最优撮合中订单有先来后到,这样距离DEX网络中关键节点(验证节点,类似于其他区块链的超级节点、矿机等概念)较劲的交易者就会经常性占据交易优势。更特别的情况,如果关键节点本身试图参与交易,将拥有其他交易者无可匹敌的优势。

二是可行性问题。区块链的交易结果需要在不同节点上进行验证。广播信息的到达有先后使得同一时刻不同节点持有的网络信息不尽相同,包括orderbook。而最优撮合的撮合结果依赖于orderbook的内容,这就使得不同节点的执行、验证可能有所偏差,无法形成共识。

那么转而考虑集合竞价。集合竞价价格稳定,足够公平,但是撮合速度比较慢,这会大大影响交易体验。

但是集合竞价的撮合速度低并不是这种撮合方式固有的属性,而是大部分场合下集合竞价设置的窗口时间较长,给交易者足够的时间提交竞价订单。比如A股,开盘集合竞价的窗口时间长达十余分钟。如果缩短这个时间,就可以大大提高集合竞价的速率。

03

Binance DEX的撮合方式详解

一言以蔽之,Binance DEX 采取的撮合方式可以命名为短周期集中竞价

顾名思义,每隔一个非常短的周期,Binance DEX就搜集这一个周期内所有链上已经确认的新订单和上一个周期残留至今未成交的订单进行集合竞价。这个周期有多短我没有找到明确的文档说明,可能有只是我没看到,但我推测是一个Block比较合理。

这样基本解决了前述问题。消除了验证节点的抢跑优势,也保证了一致性,同时以Block为单位的价格变动对于链上交易来说已经是极限,完全可以接受。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据