深度解析Binance DEX匹配引擎

分享
Copied to clipboard!
深度解析Binance DEX匹配引擎

Binance DEXBinance.com到底有何不同

 

内容:

  • Binance Chain/DEX的目标是什么?
    • Binance Chain的主要特点
  • 如何在Binance DEX上匹配订单?
    • 匹配引擎的主要规则
  • 匹配引擎示例
    • 场景1:无匹配
    • 场景2:以最大可交易量匹配
    • 场景3:具有最佳卖价的订单将与具有最佳买价的订单进行匹配
    • 场景4:大量收购
    • 场景5:大量卖出
    • 场景6:先到先得,优先匹配

 

Binance Chain/DEX的目标是什么?

Binance Chain和DEX的目标是直接在区块链上创建分布式的交易市场。资产不会发送到由单个平台或个人实体控制的交易所或钱包中。相反,订单和交易都是发生在区块链上。没有中间人费用,只需要支付网络费用,用户能够拥有他们资产的完全控制权。

 

Binance Chain的主要特点

Binance Chain基于拜占庭容错(BFT)共识机制。这意味着只要有2/3的网络节点是真实的,区块链网络就是安全的。此外,只要在区块中提交交易,它就会成为最终交易。区块链网络升级或分叉的方案也不会存在任何风险。

此外,Binance Chain的区块确认时间约为1秒,使其具有较高的事务吞吐量。截止本文发稿前,Binance Chain也是最快的商业化区块链部署方案之一。

Binance DEX将其订单保留在区块链网络上,这意味着运行任何运行完整节点的用户都有完整的交易副本。

以下是Binance DEX与binance.com不同的处理方式:

  • 订单类型:Binance DEX仅接受限价订单

  • 匹配逻辑:基于区块链的属性,区块以离散的时间间隔产生,因此Binance DEX不像大多数集中式交易所那样对交易订单进行连续匹配。相反,订单匹配是通过定期轮询最新的区块信息,以拍卖式的匹配方式完成。

  • 交易订单直接获取用户所选择钱包(例如Trust Wallet)上的余额。Binance DEX没有您钱包的控制权。Binance DEX支持硬件钱包和软件钱包。您可以在此处查看支持的钱包列表。

 

如何在Binance DEX上匹配订单?

如果您时间有限,可以跳过本节并转到“匹配引擎示例”章节。

匹配引擎有两种类型:

  • 连续 - 订单进行立即匹配

  • 离散 - 订单在一定的时间间隔内,使用拍卖规则进行匹配 

Binance DEX使用离散匹配引擎。在每个区块中收集订单信息,并且在该区块确认结束时匹配最新区块的所有未交易订单。 

 

匹配引擎的主要原则:

  • 在每个区块中尝试匹配1次

  • 当最高卖价高于最低买价时,就会发生匹配

  • 每个区块中仅选择1种价格,将该价格确定为区块中所有订单的填充价格

  • 订单匹配首先按价格优先顺序排列,然后按时间(区块高度)进行二次排序

每次的交易匹配尝试是发生在区块链记录区块(“已确认”)后。匹配过程遵循以下步骤: 

  • 根据以下因素确定区块的填充价格:

    • 最大可执行交易量

    • 最低收益

    • 市场压力

    • 参考价格

  • 使用规则匹配订单:

    • 具有最高卖价的订单将与具有最低买价的订单进行匹配;

    • 如果区块填充价格中的所有卖价或买价无法完全匹配到相应的买价或卖价时,则选择时间最早的区块订单进行填充

    • 如果区块填充价格中的所有卖价或买价无法完全匹配到相应的买价或卖价时,并且该情况是发生在同一区块中,则分配的执行将与其数量成比例(如果该数量具有部分批次,则为已满)。如果不能实现平均分配,确定性算法将保证使用随机顺序ID进行公平选择。

 

匹配引擎示例

如果您是“急切”的交易者,或者在波动性很大和流动性不足的市场进行交易,请特别注意3、4和5这三种场景。

 

场景1:无匹配

在此示例中,买入价和卖出价没有“交叉”(最高卖价低于最低买价)。尝试订单匹配时,不会生成任何订单,如下图所示。

在该区块中,我们看到有如下挂单。

深度解析Binance DEX匹配引擎

深度解析Binance DEX匹配引擎

以单价为5购买10枚Testnet令牌的买单。深度解析Binance DEX匹配引擎

没有订单进行填充。订单中现在有以下挂单:

深度解析Binance DEX匹配引擎

场景2:以最大可交易量匹配

在该示例的开始,我们看到有如下挂单。

深度解析Binance DEX匹配引擎

 

然后,您进行如下挂单:

  • 在价格到达12后,以该单价购买30枚Testnet令牌

  • 在价格到达10后,以该单价购买10枚Testnet令牌

  • 在价格到达9后,以该单价购买20枚Testnet令牌

  • 在价格到达8后,以该单价购买30枚Testnet令牌

 

深度解析Binance DEX匹配引擎

本轮的价格为6,达到最大匹配量。并且将以6的价格执行90笔交易。

订单匹配后,您可以查看交易历史记录:

卖单:

深度解析Binance DEX匹配引擎

买单:

深度解析Binance DEX匹配引擎

场景3:具有最佳卖价的订单将与具有最佳买价的订单进行匹配

在该示例的开始,我们看到有如下挂单。

深度解析Binance DEX匹配引擎

深度解析Binance DEX匹配引擎

然后,您下达以下订单:

  • 以单价10购买25代币

深度解析Binance DEX匹配引擎

本轮的匹配价格为7,达到最大匹配量。并且所有交易都在价格为7处时执行。卖单被部分填补。由于具有最佳卖价的订单将与具有最佳买价的订单相匹配,因此将首先填补价格为6的卖单。之后价格为7的卖单将被填补。通过这种方式,价格为7的卖单被部分填补。

深度解析Binance DEX匹配引擎

深度解析Binance DEX匹配引擎

匹配结束后挂单:

深度解析Binance DEX匹配引擎

 

场景4:大量收购 

在该示例的开始,我们看到有如下挂单。

深度解析Binance DEX匹配引擎

如您所见,挂单中有很多价格的卖单。如果您大量进行购买:如25的价格购买150。将会发生以下情况:

深度解析Binance DEX匹配引擎

成交价格为10。并且所有卖单都会进行匹配。

深度解析Binance DEX匹配引擎

匹配后的订单如下:

深度解析Binance DEX匹配引擎

分析:

该交易价格对买家来说是不具有优势的。在该案例中,您总共支付了800。您可以通过设置不同的交易量获得更公平的交易价格:如果您按照以下步骤,您将支付更少的费用:

  • 以价格为6的单价购买15枚代币

  • 以价格为7的单价购买25枚代币

  • 以价格为9的单价购买5枚代币

  • 以价格为10的单价购买10枚代币

如果您选择以这种方式挂单,则成本为610,不用支付800。

 

场景5:大量卖出

在该示例的开始,我们看到有如下挂单。

深度解析Binance DEX匹配引擎

有以下订单:

深度解析Binance DEX匹配引擎

您进行大量卖出操作:以单价为6出售80枚代币。

深度解析Binance DEX匹配引擎

成交价格将以单价为6进行结算。

深度解析Binance DEX匹配引擎

450的成交价格并不理想。如果您按照以下步骤操作,卖出的成交价格将会更合适:

  • 以价格为5的单价卖出10枚代币

  • 以价格为8的单价卖出40枚代币

  • 以价格为7的单价卖出10枚代币

  • 以价格为6的单价卖出20枚代币

通过这种方式,实际卖出的成交价格为560。 

 

场景6:先到先得,优先匹配

在该示例的开始,我们看到有如下挂单。

深度解析Binance DEX匹配引擎

然后,匹配引擎会优先匹配如下挂单:

  • 以价格为6的单价卖出20枚代币

  • 以价格为6的单价买入10枚代币

深度解析Binance DEX匹配引擎

Deep Dive Into the Binance Chain Match Engine

由于挂单中已经存在有6个卖出的交易,所以这些交易会优先匹配。

买单完全被填充。

深度解析Binance DEX匹配引擎

挂单中以价格为6的单价卖出15枚代币的订单被完全填充。深度解析Binance DEX匹配引擎

数量为10的卖单仅有一半被填充。

深度解析Binance DEX匹配引擎

匹配后的订单:

深度解析Binance DEX匹配引擎

Loading