Wiki di ZooBC
Token e mercati

Mercati e ordini

Un mercato ZooBC è un order book per una coppia di asset, conservato e abbinato dalla catena stessa. Ogni nodo applica le stesse regole di abbinamento quando viene applicata una transazione di ordine, quindi ogni nodo arriva alle stesse esecuzioni, nessun operatore custodisce i fondi dei trader e nessuno può riordinare il book. Chiunque può aprire un mercato, e un mercato attivo si paga il proprio canone.

Aprire un mercato

Un mercato è una coppia (base, quotazione): per esempio un token, l'asset base, prezzato in ZBC, l'asset di quotazione. La coppia è ordinata, quindi (A, B) e (B, A) sono due mercati diversi. Entrambi gli asset devono avere 8 decimali (vedi decimali e passo).

CreateMarket (tipo 21) costa market_creation_cost, 50 ZBC su mainnet. Questo costo diventa il deposito per il canone del mercato (vedi sotto).

Piazzare un ordine

Un PlaceOrder (tipo 22) indica il mercato, un lato (acquisto o vendita), un prezzo limite, una quantità, dei flag e una scadenza facoltativa. I flag possono renderlo un ordine a mercato (immediate-or-cancel) o post-only.

I prezzi sono espressi in unità atomiche di quotazione per unità atomica di base, moltiplicate per 10⁸. Un prezzo di 1,015 ZBC per token si scrive quindi 101.500.000.

Quando un blocco applica l'ordine:

  1. L'ordine trattiene ciò che può spendere: un ordine di vendita trattiene la sua quantità di base; un ordine di acquisto trattiene quantità × prezzo ÷ 10⁸ dell'asset di quotazione.
  2. Viene abbinato subito agli ordini già presenti nel book sull'altro lato, prima il prezzo migliore e, a parità di prezzo, prima l'id di transazione più basso. Ogni esecuzione avviene al prezzo dell'ordine già presente nel book, non al limite del taker.
  3. Ciò che non viene eseguito resta nel book, tranne che per un ordine a mercato, il cui residuo viene rimborsato.

Ogni prodotto viene arrotondato per difetto in aritmetica a 128 bit, quindi ogni nodo calcola esattamente le stesse esecuzioni.

Una scala di offerte di vendita a 1,004, 1,013 e 1,026; un ordine di acquisto con limite 1,015 esegue i primi due livelli, ciascuno al proprio prezzo; lo 0,1 % della base ricevuta va al produttore del blocco, e la parte trattenuta non usata torna al taker
Una scala di offerte di vendita a 1,004, 1,013 e 1,026; un ordine di acquisto con limite 1,015 esegue i primi due livelli, ciascuno al proprio prezzo; lo 0,1 % della base ricevuta va al produttore del blocco, e la parte trattenuta non usata torna al taker

Due regole mantengono puliti gli order book: il valore di quotazione di un ordine deve essere di almeno 2.500.000 unità atomiche (0,025 dell'asset di quotazione), e un taker non viene mai abbinato a un proprio ordine già presente nel book.

La commissione taker

Solo il taker paga una commissione di scambio: exchange_taker_fee_bps, 10 punti base (0,1 %) su mainnet, prelevata dall'asset che il taker riceve (la base per un acquisto, la quotazione per una vendita) e pagata al produttore del blocco. Nell'esempio sopra, 0,3 dei 300 token ricevuti vanno al produttore. L'aliquota è un parametro della catena che può andare da 1 a 100 punti base. I maker non pagano alcuna commissione di scambio, e il creatore del mercato non riceve alcuna quota.

La commissione taker è distinta dalla commissione della transazione. Le commissioni di PlaceOrder e CancelOrder sono normali commissioni, che vanno alla lotteria coinbase. Quando il produttore del blocco non è ancora maturo (vedi maturità e guadagni), anche la sua commissione taker va alla lotteria coinbase.

Annullamento e scadenza

CancelOrder (tipo 23) permette al maker, e solo al maker, di ritirare un ordine presente nel book; ciò che resta della parte trattenuta torna indietro. Un ordine nel book con una scadenza scade all'inizio di un blocco, in base al timestamp del blocco precedente.

Il canone del mercato

Un mercato occupa lo stato della catena, quindi paga un canone come qualsiasi altra cosa che lo occupa:

  • il costo di creazione di 50 ZBC è un deposito che prepaga 12 periodi di canone; ogni periodo di 172.800 blocchi (30 giorni) ne preleva un dodicesimo, circa 4,17 ZBC, verso il pool di longevità;
  • ogni PlaceOrder e CancelOrder aggiunge al deposito il 20 % della propria commissione, oltre alla commissione, fino a un deposito di 24 periodi, così sono gli ordini stessi a mantenere finanziato un mercato attivo;
  • un mercato che non riesce a pagare un periodo, o uno dei cui asset è scaduto, viene eliminato: i suoi ordini nel book vengono rimborsati ai rispettivi maker, il resto del deposito va al pool di longevità e la coppia può essere riaperta in seguito.
Una bancarella di mercato con un deposito per il canone di 12 caselle alla creazione; ogni ordine aggiunge il 20 % della propria commissione; ogni 30 giorni una casella va al pool di longevità; quando il deposito si esaurisce il mercato chiude e gli ordini nel book vengono rimborsati
Una bancarella di mercato con un deposito per il canone di 12 caselle alla creazione; ogni ordine aggiunge il 20 % della propria commissione; ogni 30 giorni una casella va al pool di longevità; quando il deposito si esaurisce il mercato chiude e gli ordini nel book vengono rimborsati

ZooBC non ha pool di automated market maker: ogni scambio avviene tra ordini piazzati da persone. Per uno scambio singolo tra due asset qualsiasi, compresi i token con meno di 8 decimali, vedi offerte di swap.

Vedi anche