Ein tiefer Einblick in die Binance DEX Matching Engine
Ein tiefer Einblick in die Binance DEX Matching Engine
HomeArtikel

Ein tiefer Einblick in die Binance DEX Matching Engine

Mittel
Published May 30, 2019Updated Apr 29, 2021
8m

Wie sich Binance DEX von Binance.com unterscheidet


Was ist der Zweck von Binance Chain/DEX?

Der Zweck der Binance Chain und DEX ist es, einen dezentralen Marktplatz direkt auf der Blockchain zu schaffen. Assets werden nicht an eine Börse oder Wallet gesendet, die von einer einzelnen Plattform oder Entität kontrolliert wird. Stattdessen finden das Orderbuch und die Transaktionen auf der Blockchain statt. Es gibt keine Gebühren für Zwischenhändler, sondern nur Netzwerkkosten, und die Benutzer haben die volle und alleinige Kontrolle über ihre Assets.


Schlüsselmerkmale der Binance Chain

Binance Chain basiert auf dem Byzantine Fault Tolerance (BFT) Konsensmechanismus. Das bedeutet, dass die Blockchain sicher ist, solange 2/3 der Nodes ehrlich sind. Außerdem wird eine Transaktion, sobald sie in einem Block übertragen wurde, endgültig. Es gibt keine Risiken einer Chain-Modifikation oder eines Forking-Szenarios.

Außerdem beträgt die Blockzeit der Binance Chain etwa 1 Sekunde, mit einem hohen Transaktionsdurchsatz. Dies ist eine der schnellsten kommerziell genutzten Blockchains zum Zeitpunkt des Schreibens.

Binance DEX behält sein Orderbuch auf der Blockchain, was bedeutet, dass jeder, der einen vollständigen Node betreibt, eine vollständige Kopie davon hat.

Hier sind einige Punkte, in denen sich Binance DEX von binance.com unterscheidet:

  • Order-Typ: Binance DEX akzeptiert nur Limit-Orders
  • Matching-Logik: Aufgrund der Natur von Blockchains werden Blöcke in diskreten Zeitintervallen produziert, daher führt Binance DEX kein kontinuierliches Matching durch, wie es die meisten zentralisierten Börsen tun. Stattdessen findet das Order-Matching durch periodisches Auction-Matching für alle offenen Orders statt, die in der Vergangenheit bis zum letzten Block eingegangen sind.


Wie funktioniert das Order-Matching auf Binance DEX?

Wenn Sie es eilig haben, können Sie diesen Abschnitt überspringen und direkt zu den “Match Engine Beispielen” gehen.

Es gibt 2 Arten von Matching Engines:

  • Kontinuierlich - wo Orders sofort gematcht werden

  • Diskret - bei dem das Matching in jedem Zeitintervall anhand von Auktionsregeln durchgeführt wird

Binance DEX verwendet eine diskrete Matching Engine. Die Orders werden in jedem Block gesammelt und alle offenen Orders bis zum letzten Block werden am Ende dieses Blocks gematcht.


Grundprinzipien der Matching Engine:

  • Matching wird 1 Mal pro Block versucht

  • Matching findet statt, wenn der höchste Bid-Preis höher ist als der niedrigste Ask-Preis

  • In jedem Block wird nur 1 Preis ausgewählt, der als Füllpreis unter allen füllbaren Orders bestimmt wird

  • Das Order-Matching wird zuerst nach Preisaggressivität und dann nach dem Zeitpunkt (Blockhöhe), zu dem sie akzeptiert werden, priorisiert

Jeder Matching-Versuch erfolgt, nachdem ein Block auf der Chain aufgezeichnet (“gemint”) wurde. Der Matching-Versuch folgt diesen Schritten:

  • Ermittlung des Blockfüllpreises aus den folgenden Faktoren:

    • Maximal ausführbares Volumen

    • Mindestüberschuss

    • Markt-Druck

    • Referenzpreis

  • Zuweisung von Orderfüllungen über Regeln:

  • Orders mit dem höchsten Bid-Preis werden mit den Orders mit dem niedrigsten Ask-Preis gematcht;
  • Wenn nicht alle Bids oder Asks zum Blockfüllpreis von den jeweiligen Asks oder Bids vollständig gefüllt werden können, werden die Orders aus den frühesten Blöcken ausgewählt und zuerst gefüllt

  • Wenn nicht alle Bids oder Asks zum Blockfüllpreis durch die jeweiligen Bids oder Ask vollständig gefüllt werden können und im selben Block eintreffen, erfolgt die Zuteilung im Verhältnis zu ihrer Anzahl (bei einer Teilmenge unterlegen). Wenn die Zuteilung nicht gleichmäßig aufgeteilt werden kann, garantiert ein deterministischer Algorithmus eine faire Auswahl unter Verwendung einer zufälligen Order-ID.


Matching Engine Beispiele

Bitte achten Sie besonders auf Szenario 3,4,5, wenn Sie “eifrige” Trader sind oder in sehr volatilen oder illiquiden Märkten handeln.


Szenario 1: Kein Match

In diesem Beispiel sind die Bid- und Ask-Preise nicht 'gekreuzt' (höchster Bid weniger als niedrigster Ask). Es wird zwar ein Order-Matching versucht, aber es werden keine Orders ausgeführt, wie hier dargestellt:

Zu Beginn dieses Blocks haben wir die folgenden offenen Orders.

Es wird eine Order zum Kauf von 10 Testnet-Tokens zum Stückpreis von 5 erteilt.

Es werden keine Orders ausgeführt. Das Orderbuch hat jetzt diese offenen Orders:

Szenario 2: Erreichen des maximalen ausführbaren Volumens

Zu Beginn dieses Blocks haben wir die folgenden offenen Orders.


Sie platzieren dann die folgenden Orders:

  • Kauf-Order für 30 Testnet-Token zum Stückpreis von 12

  • Kauf-Order für 10 Testnet-Token zum Stückpreis von 10

  • Kauf-Order für 20 Testnet-Token zum Stückpreis von 9

  • Kauf-Order für 30 Testnet-Token zum Stückpreis von 8


Der Preis für diese Runde ist 6, um das maximale Match-Volumen zu erreichen. Und eine Menge von 90 Trades wird zum Preis von 6 ausgeführt.

Nachdem die Orders gematcht wurden, können Sie den Trade-Verlauf sehen:

Verkauf-Order:

Kauf-Order:

Szenario 3: Orders mit bestem Bid-Preis matcht mit der Order mit bestem Ask-Preis

Zu Beginn dieses Blocks haben wir die folgenden offenen Orders.

Sie platzieren dann die folgenden Orders:

  • 25 Orders zum Preis von 10

Der Preis für diese Runde ist 7, um ein maximales Match-Volumen zu haben. Alle Trades werden zum Preis von 7 ausgeführt. Verkaufs-Orders werden teilweise ausgeführt. Da die Orders mit dem besten Bid-Preis mit den Orders mit dem besten Ask-Preis matchen, werden die Verkaufs-Orders zum Preis von 6 zuerst ausgeführt. Danach wird die Verkaufsorder bei 7 ausgeführt. Auf diese Weise werden die Verkaufsorders bei 7 nur teilweise ausgeführt.

Offene Orders nach dem Match:


Szenario 4: Kauf eines großen Betrags

Zu Beginn dieses Blocks haben wir die folgenden offenen Orders.

Wie Sie sehen können, gibt es verschiedene Verkaufs-Orders auf verschiedenen Preisniveaus. Wenn Sie eine Order zum Kauf einer großen Menge aufgeben, wie z.B. 150 zum Preis von 25, würde Folgendes passieren:

Der Preis wird bei 10 abgerechnet. Und alle Verkaufs-Orders werden gefüllt.

Orderbuch nach dem Match:

Analyse:

Dieser Trade-Preis kann als Nachteil für den Käufer erscheinen. Im Beispiel zahlen Sie insgesamt 800. Sie können einen faireren Trade erhalten, indem Sie verschiedene Trades mit kleineren Beträgen kaufen: Sie zahlen weniger, wenn Sie die folgenden Schritte befolgen:

  • Kaufe 15 Orders bei 6

  • Kaufe 25 Orders bei 7

  • Kaufe 25 Orders bei 8

  • Kaufe 5 Orders bei 9

  • Kaufe 10 Orders bei 10

Wenn Sie sich entscheiden, Ihre Orders auf diese Weise zu platzieren, beträgt der Nominalwert 610, also weniger als 800.


Szenario 5: Verkauf eines großen Betrags

Zu Beginn dieses Blocks haben wir die folgenden offenen Orders.

Es gibt die folgenden Orders:

Sie platzieren eine große Verkaufsorder: kaufe 80 zum Preis von 6.

Die Trades werden zum Preis von 6 abgerechnet.

Der Nominalwert von 450 ist nicht ideal. Sie können mehr verkaufen, wenn Sie die folgenden Schritte befolgen:

  • platzieren Sie 5 Verkaufsorders zum Preis von 10

  • platzieren Sie 40 Verkaufsorders zum Preis von 8

  • platzieren Sie 10 Verkaufsorders zum Preis von 7

  • platzieren Sie 20 Verkaufsorders zum Preis von 6

Auf diese Weise kann der Nominalwert 560 sein.


Szenario 6: Wer zuerst kommt, matcht zuerst

Zu Beginn dieses Blocks haben wir die folgenden offenen Orders.

Dann kommen die folgenden Orders in die Match Engine:

  • 20 Kauforders zum Preis von 6

  • 10 Verkaufsorders zum Preis von 6

Da bereits 6 Verkaufstrades in der Order vorhanden sind, werden diese Trades zuerst abgeglichen.

Die Kauforders werden vollständig gefüllt.

Die vorigen 15 Verkaufsorders zum Preis von 6 werden vollständig gefüllt.

Die 10 Verkaufsorders zum Preis von 6 werden nur halb gefüllt.

Das Orderbuch nach dem Match: