Pagsisiyasat ng Mabuti sa Binance DEX Match Engine
Pagsisiyasat ng Mabuti sa Binance DEX Match Engine
HomeMga Artikulo

Pagsisiyasat ng Mabuti sa Binance DEX Match Engine

Intermediya
2w ago
8m

Paano naiiba ang Binance DEX mula sa Binance.com


Ano ang layunin ng Binance Chain/DEX?

Ang layunin ng Binance Chain at DEX ay upang lumikha ng isang desentralisadong pamilihan nang direkta sa blockchain. Ang mga asset ay hindi ipinapadala sa isang exchange o wallet na kinokontrol ng isang solong platform o entity. Sa halip, ang order book at transaksyon ay nagaganap sa blockchain. Walang mga bayarin sa middleman ngunit gastos lang sa network, at ang mga user ay buo at nag-iisa lang sa kontrol ng kanilang mga asset.


Mga pangunahing tampok ng Binance Chain

Ang Binance Chain ay batay sa Byzantine Fault Tolerance (BFT) na mekanismo ng consensus. Nangangahulugan ito na ang blockchain ay ligtas hangga't 2/3 ng mga node ay matapat. Gayundin, sa sandaling ang isang transaksyon ay nakagawa sa isang block, ito ay magiging panghuli. Mayroong mga zero na panganib ng isang pagbabago sa chain o isang sitwasyon ng pag-fork.

Gayundin, ang oras ng pag-block ng Binance Chain ay humigit-kumulang na 1 segundo, na may isang mataas na throughput ng transaksyon. Ito ang isa sa pinakamabilis na komersyal na naka-deploy na mga blockchain sa oras ng pagsulat.

Pinapanatili ng Binance DEX ang order book sa blockchain, nangangahulugan ito na ang sinumang nagpapatakbo ng isang buong node ay may isang buong kopya nito. 

Narito ang ilang mga paraan na ang Binance DEX ay naiiba mula sa binance.com: 

  • Uri ng Order: Ang Binance DEX ay tumatanggap lang ng \limit na mga order
  • Matching logic: Dahil sa likas na katangian ng mga blockchain, ang mga block ay ginawa sa mga discrete na agwat ng oras, kaya't ang Binance DEX ay hindi gumagawa ng tuluy-tuloy na pagtutugma tulad ng ginagawa ng karamihan sa mga sentralisadong palitan. Sa halip, nagaganap ang pagtutugma ng order gamit ang pana-panahong pagtutugma ng auction para sa lahat ng mga bukas na order na natanggap sa nakaraan hanggang sa pinakabagong block.


Paano tumutugma ang mga order sa Binance DEX?

Kung nagmamadali ka, puwede mong laktawan ang seksyong ito at direktang pumunta sa “Mga Halimbawa ng Match Engine”.

Mayroong 2 uri ng Mga Matching Engine:

  • Patuloy - kung saan kaagad naitugma ang mga order

  • Discrete - kung saan ginaganap ang pagtutugma sa bawat agwat ng oras gamit ang mga patakaran sa auction 

Gumagamit ang Binance DEX ng discrete Matching Engine. Ang mga order ay nakolekta bawat block at lahat ng bukas na order hanggang sa pinakabagong block ay naitugma sa pagtatapos ng block na iyon. 


Mga pangunahing prinsipyo ng Matching Engine:

  • Sinusubukan ang pagtutugma ng 1 beses bawat block 

  • Nagaganap ang pagtutugma kapag ang pinakamataas na bid price ay mas mataas kaysa sa pinakamababang ask price

  • 1 presyo lang ang napili sa bawat block, na tinutukoy bilang pagpuno ng presyo sa lahat ng mga puwedeng punan na order

  • Ang pagtutugma ng order ay binibigyan ng priyoridad muna ng pagiging agresibo ng presyo, pagkatapos ay pangalawa sa pamamagitan ng oras (taas ng block) na tinatanggap sila

Ang bawat pagtatangka sa pagtutugma ay nangyayari pagkatapos ng isang block ay naitala sa chain (“mined”). Ang pagsunod sa pagtatangka ay sumusunod sa mga hakbang na ito: 

  • Tinutukoy ang presyo ng pagpuno ng block mula sa mga sumusunod na kadahilanan:

    • Maximum executable volume

    • Minimum surplus

    • Market pressure

    • Reference price

  • Ang pagpupuno ng order ay pumupuno gamit ang mga panuntunan:

  • Ang mga order na may pinakamataas na bid price ay tutugma sa mga order na may pinakamababang ask price;
  • Kung ang lahat ng mga bid o ask price ng pagpuno ng block ay hindi puwedeng ganap na mapunan ng kani-kanilang mga pagtatanong o mga bid, ang mga order mula sa pinakamaagang mga block ay pinili at pinunan muna

  • Kung ang lahat ng mga bid o ask price ng pagpuno na block ay hindi puwedeng ganap na mapunan ng kani-kanilang mga ask o mga bid, at makarating sa parehong block, ang inilaang pagpapatupad ay magiging proporsyon sa kanilang dami (nalagyan kung ang numero ay may bahagyang parte). Kung ang paglalaan ay hindi puwedeng hatiin pantay, isang deterministikong algorithm ang magagarantiya ng isang patas na pagpipilian gamit ang isang random na order ID.


Mga Halimbawa ng Matching Engine

Magbayad ng espesyal na pansin sa Sitwasyon 3,4,5, kung ikaw ay “sabik” na mga trader o makipag trade sa napaka-pabagu-bago o illiquid na merkado.


Sitwasyon 1: Walang tugma

Sa halimbawang ito, ang mga bid at ask price ay hindi 'nag-cross' (pinakamataas na bid na mas mababa sa pinakamababang ask). Habang tinangka ang pagtutugma ng order, walang mga order ang napunan, tulad ng nakalarawan dito:

Sa simula ng block na ito, mayroon kaming mga sumusunod na bukas na order.

Ang isang order ng pagbili para sa 10 mga token ng Testnet sa presyo ng yunit na 5 ay inilalagay.

Walang napunan na mga order. Ang order book ay may mga bukas na order na ngayon

Sitwasyon 2: Nakamit ang maximum na naisasagawa na volume

Sa simula ng block na ito, mayroon kaming mga sumusunod na bukas na order.


Pagkatapos ay ilagay mo ang mga sumusunod na order:

  • Bumili ng order para sa 30 mga token ng Testnet sa presyo ng yunit na 12

  • Bumili ng order para sa 10 mga token ng Testnet sa presyo ng yunit na 10

  • Bumili ng order para sa 20 mga token ng Testnet sa presyo ng yunit na 9

  • Bumili ng order para sa 30 mga token ng Testnet sa presyo ng yunit na 8


Ang Presyo para sa round na ito ay 6 upang makamit ang dami ng max na tugma. At isang dami ng 90 mga pag-trade ay naisakatuparan sa presyo na 6. 

Matapos maitugma ang mga order, puwede mong makita ang kasaysayan ng pag-trade:

Sell Order:

Buy Order:

Sitwasyon 3: Mga order na may pinakamahusay na bid price ay tumutugma sa order na may pinakamahusay na ask price

Sa simula ng block na ito, mayroon kaming mga sumusunod na bukas na order.

Pagkatapos, inilalagay mo ang mga sumusunod na order:

  • 25 order sa presyo na 10

Ang Presyo para sa round na ito ay 7 upang magkaroon ng max na katugmang dami. At lahat ng mga pag-trade ay naisagawa sa 7. Ang mga order ng pagbebenta ay bahagyang napunan. Dahil ang mga order na may pinakamahusay na bid price ay tumutugma sa mga order na may pinakamahuhusay na ask price, ang mga nagbebenta ng order na 6 ay mapupuno muna. Pagkatapos ang order ng pagbebenta ng 7 ay mapunan pagkatapos nito. Sa ganitong paraan, ang mga order ng pagbebenta ng 7 ay bahagyang napunan.

Buksan ang mga order pagkatapos ng pagtutugma:


Sitwasyon 4: Bumili ng isang malaking parte 

Sa simula ng block na ito, mayroon kaming mga sumusunod na bukas na order.

Tulad ng nakikita mo, mayroong iba't ibang mga order sa pagbebenta sa iba't ibang mga antas ng presyo. Kung naglalagay ka ng isang order ng pagbili ng malaking dami na 150 sa presyo 25. Ang mga sumusunod ay mangyayari:

Ang presyo ay naayos sa 10. At lahat ng mga order ng pagbebenta ay naitugma. 

Orderbook pagkatapos ng pagtutugma:

Pagsusuri:

Ang presyo ng pag-trade na ito ay puwedeng mukhang isang kawalan sa mamimili. Sa halimbawa, magbabayad ka ng 800 sa kabuuan. Puwede kang makakuha ng isang patas na pamilihan ng pagbili ng lugar iba't ibang mga pag-trade ng mas maliit na halaga Magbabayad ka ng mas kaunti kung susundin mo ang mga sumusunod na hakbang:

  • Bumili ng 15 order sa 6

  • Bumili ng 25 order sa 7

  • Bumili ng 25 order sa 8

  • Bumili ng 5 order sa 9

  • Bumili ng 10 order sa 10

Kung pinili mong ilagay ang iyong mga order sa ganitong paraan, ang notional ay 610, na mas mababa sa 800.


Sitwasyon 5: Magbenta ng isang malaking parte

Sa simula ng block na ito, mayroon kaming mga sumusunod na bukas na order.

May mga sumusunod na order:

Naglalagay ka ng isang malaking order ng pagbebenta: magbenta ng 80 sa presyo na 6.

Ang mga pag-trade ay naayos sa presyo na 6.

Ang notional ng 450 ay hindi perpekto. Puwede kang magbenta ng higit pa kung susundin mo ang mga sumusunod na hakbang:

  • maglagay ng 5 sell order sa presyo na 10.

  • maglagay ng 40 sell order sa presyo na 8

  • maglagay ng 10 sell order sa presyo na 7

  • maglagay ng 20 sell order sa presyo na 6

Sa ganitong paraan, ang pagbebenta ng notional ay puwedeng 560. 


Sitwasyon 6: First come, First match

Sa simula ng block na ito, mayroon kaming mga sumusunod na bukas na order.

Pagkatapos, ang mga sumusunod na order ay dumating sa match engine:

  • 20 buy order sa presyo na 6

  • 10 sell order sa presyo na 6

Dahil mayroon nang nagbebenta ng pag-trade ng 6 sa order, kaya ang mga pag-trade na iyon ay unang naitugma. 

Ang mga buy order ay buong napunan.

Ang nakaraang 15 sell order ng 6 ay ganap na napunan.

Ang 10 sell order ng 6 ay kalahati lang ang napunan.

Orderbook pagkatapos ng pagtutugma: