Una guida al motore di abbinamento di Binance DEX
Indice dei contenuti
Qual è lo scopo di Binance Chain/DEX?

Come vengono abbinati gli ordini su Binance DEX?

Esempi del motore di abbinamento
Una guida al motore di abbinamento di Binance DEX
HomeArticoli
Una guida al motore di abbinamento di Binance DEX

Una guida al motore di abbinamento di Binance DEX

Intermedio
Pubblicato May 30, 2019Aggiornato Jan 14, 2022
8m

Come Binance DEX si differenzia da Binance.com


Contenuti:


Qual è lo scopo di Binance Chain/DEX?

Lo scopo di Binance Chain e DEX è quello di creare un marketplace decentralizzato direttamente sulla blockchain. Gli asset non vengono inviati a un exchange o a un wallet controllato da una singola piattaforma o entità. Al contrario, l'order book e le transazioni avvengono sulla blockchain. Non ci sono commissioni legate ad intermediari, ma solo costi di rete e gli utenti hanno il pieno e personale controllo dei propri asset.


Caratteristiche principali di Binance Chain

Binance Chain si basa sul meccanismo di consenso Byzantine Fault Tolerance (BFT). Ciò significa che la blockchain è sicura finché i 2/3 dei nodi si comportano in maniera corretta. Inoltre, una volta che una transazione viene scritta in un blocco, diventa definitiva. Ci sono zero rischi rispetto eventuali modifiche alla catena o a uno scenario di forking.

Inoltre, il tempo di blocco di Binance Chain è di circa 1 secondo, con un throughput di transazione elevato. Questa è, al momento, una delle blockchain commerciali più veloci.

Binance DEX mantiene il suo order book sulla blockchain, ciò significa che chiunque esegua un full node ne possiede una copia completa. 

Ecco alcuni aspetti per cui Binance DEX è diverso da binance.com: 

  • Tipi di ordine: Binance DEX accetta solo ordini limit
  • Logica di abbinamento (matching logic): per via della natura delle blockchain, i blocchi vengono prodotti ad intervalli di tempo discreti (non di continuo), quindi Binance DEX non esegue un abbinamento continuo (degli ordini) come avviene per la maggior parte degli exchange centralizzati. Al contrario, l'abbinamento degli ordini avviene utilizzando un abbinamento periodico come se fosse un asta, per tutti gli ordini aperti ricevuti fino all'emissione dell'ultimo blocco.


Come vengono abbinati gli ordini su Binance DEX?

Se hai fretta, puoi saltare questa sezione e andare direttamente a "Esempi di Match Engine".

Esistono 2 tipi di Match Engine:

  • Continuo - dove gli ordini vengono abbinati immediatamente

  • Discreto (puntuale) - dove la corrispondenza viene eseguita per ogni intervallo di tempo, utilizzando le regole di un'asta 

Binance DEX utilizza un motore di abbinamento discreto. Gli ordini vengono raccolti per ogni blocco e tutti gli ordini aperti fino all'ultimo blocco vengono abbinati alla fine di tale blocco. 


Principi fondamentali del motore di abbinamento

  • La corrispondenza (matching) viene tentata 1 volta per ogni blocco 

  • L'abbinamento avviene quando il prezzo di offerta più alto (bid price) è superiore al prezzo di richiesta (ask price) più basso

  • In ogni blocco viene selezionato solo 1 prezzo, che viene definito come prezzo di riempimento (fill price) tra tutti gli ordini compilabili

  • All'abbinamento degli ordini che vengono accettati viene assegnata una priorità, in prima battuta per l'aggressività dei prezzi e poi in base al tempo (altezza del blocco)

Ogni tentativo di corrispondenza si verifica dopo che un blocco viene registrato sulla catena ("mined"). Il tentativo di corrispondenza (matching) segue questi passaggi: 

  • Determinare il prezzo di riempimento del blocco (block fill price) in base ai seguenti fattori:

    • Volume massimo eseguibile

    • Surplus minimo

    • Market pressure

    • Prezzo di riferimento

  • Riempire gli ordini, utilizzando le regole:

  • Gli ordini con il prezzo di offerta più alto verranno matchati con gli ordini con il prezzo di richiesta più basso;
  • Se tutti i bid e ask al block fill price non possono essere riempiti completamente dalle rispettive richieste o offerte, gli ordini dei primi blocchi vengono selezionati e riempiti per primi

  • Se tutti i bid e ask al block fill price non possono essere riempiti dalle rispettive richieste o offerte, e arrivano nello stesso blocco, l'esecuzione allocata sarà proporzionale alla loro quantità (con un floor minimo se il numero di ordini contiene un lotto parziale). Se l'allocazione non può essere divisa in modo equo, un algoritmo deterministico ne garantirà una selezione equa utilizzando un random order ID.


Esempi del motore di abbinamento

Presta particolare attenzione agli scenari 3,4,5, se sei un trader "appassionato" o se negozi in mercati molto volatili o illiquidi.


Scenario 1: Nessun abbinamento

In questo esempio, i prezzi bid e ask non sono "incrociati" (offerta più alta inferiore a quella più bassa). Durante il tentativo di abbinamento degli ordini, non ne vengono compilati, come illustrato qui:

All'inizio di questo blocco, abbiamo i seguenti ordini aperti.

Viene piazzato un ordine di acquisto per 10 token Testnet al prezzo di 5 unità.

Nessun ordine viene riempito. L'order book ha ora questi ordini aperti:

Scenario 2: raggiungimento del volume massimo eseguibile

All'inizio di questo blocco, abbiamo i seguenti ordini aperti.


Effettui quindi i seguenti ordini:

  • Ordine di acquisto di 30 token Testnet al prezzo di 12 unità

  • Ordine di acquisto di 10 token Testnet al prezzo di 10 unità

  • Ordine di acquisto di 20 token Testnet al prezzo di 9 unità

  • Ordine di acquisto di 30 token Testnet al prezzo di 8 unità


Il prezzo in questo caso è di 6 unità per raggiungere il volume massimo di corrispondenza. E una quantità di 90 operazioni viene eseguita al valore di 6 unità. 

Dopo aver abbinato gli ordini, puoi vedere la cronologia delle transazioni:

Ordine di vendita:

Ordine d'acquisto:

Scenario 3: Gli ordini con il miglior prezzo di offerta corrisponderanno all'ordine con il miglior prezzo di richiesta

All'inizio di questo blocco, abbiamo i seguenti ordini aperti.

Effettui quindi i seguenti ordini:

  • 25 ordini al prezzo di 10 unità

Il prezzo, in questo caso, è di 7 unità per raggiungere il volume massimo di corrispondenza. E tutte le operazioni sono eseguite al prezzo di 7. Gli ordini di vendita sono parzialmente compilati. Poiché gli ordini con il miglior prezzo di offerta (bid price) corrispondono agli ordini con il miglior prezzo di richiesta (ask price), gli ordini di vendita al prezzo di 6 unità, verranno riempiti per primi. Successivamente, verranno riempiti gli ordini di vendita al prezzo di 7 unità. In questo modo, gli ordini di vendita a 7 sono parzialmente riempiti.

Ordini aperti dopo l'abbinamento:


Scenario 4: effettuare un grosso ordine in acquisto 

All'inizio di questo blocco, abbiamo i seguenti ordini aperti.

Come puoi vedere, ci sono diversi ordini di vendita a diversi livelli di prezzo. Se piazzi un ordine di acquisto di grande entità: 150 al prezzo di 25 unità. Si verificherà quanto segue:

Il prezzo è fissato a 10 unità. E tutti gli ordini di vendita sono abbinati. 

Orderbook dopo l'abbinamento:

Analisi:

Questo trade può sembrare negativo per l'acquirente. Nell'esempio, paghi 800 in totale. Puoi ottenere un prezzo di acquisto equo piazzando ordini differenti ad un importo inferiore: pagherai di meno se segui i passaggi seguenti:

  • Un ordine in acquisto di 15 al prezzo di 6

  • Un ordine in acquisto di 25 al prezzo di 7

  • Un ordine in acquisto di 25 al prezzo di 8

  • Un ordine in acquisto di 5 al prezzo di 9

  • Un ordine in acquisto di 10 al prezzo di 10

Se scegli di piazzare gli ordini in questo modo, il valore nominale è 610, che è inferiore a 800.


Scenario 5: Grande ordine di vendita

All'inizio di questo blocco, abbiamo i seguenti ordini aperti.

Sono disponibili i seguenti ordini:

Piazzi un grande ordine di vendita: vendi un ammontare di 80 unità al prezzo di 6.

Le operazioni sono fissate al prezzo di 6.

Il valore nominale di 450 non è ideale. Puoi guadagnare di più da questa vendita se segui i seguenti passaggi:

  • piazzi 5 ordini di vendita al prezzo di 10.

  • piazzi 40 ordini di vendita al prezzo di 8

  • piazzi 10 ordini di vendita al prezzo di 7

  • piazzi 20 ordini di vendita al prezzo di 6

In questo modo, il valore nominale di vendita può essere di 560. 


Scenario 6: First come, First match

All'inizio di questo blocco, abbiamo i seguenti ordini aperti.

Quindi, i seguenti ordini arrivano al motore di abbinamento:

  • 20 ordini di acquisto al prezzo di 6

  • 10 ordini di vendita al prezzo di 6

Poiché ci sono già ordini di vendita al prezzo di 6 nell'ordine, queste transazioni sono abbinate per prime. 

Gli ordini di acquisto vengono riempiti completamente.

I precedenti 15 ordini di vendita al prezzo di 6 sono riempiti completamente.

Questi 10 ordini di vendita al prezzo di 6 sono riempiti solo per metà.

Orderbook dopo l'abbinamento: