Tempo di lettura: 6 min
Automated Market Maker
Cominciamo con una definizione e qualche spaventoso termine complesso, che diventerà chiaro una volta letto questo articolo.
Balancer è un Market-Maker n-dimensionale automatizzato che si basa sul protocollo di Uniswap (su Ethereum).
Balancer permette a chiunque di creare o di aggiungere liquidità a pool configurabili, guadagnando sulle commissioni di trading.
Queste commissioni provengono dallo scambio di token (swapping) e allorquando qualcuno dovesse andarsene dal pool (exit).
Il mistero delle superfici n-dimensionali che si legge negli articoli su Balancer si riflette semplicemente nella possibilità di combinare fino a 16 differenti token in un singolo pool.
Questo fa di Balancer un sistema più dinamico e flessibile rispetto a uno con soltanto due token come Uniswap.
Le “dimensioni” sono il numero di token.
Quando gli utenti scambiano i token all’interno di un pool, l’algoritmo mantiene il rapporto tra i loro valori costante, da dove il nome “Balancer”.
Cerchiamo di capire come fa l’algoritmo a mantenere questo rapporto costante, assumendo il ruolo di un classico market maker.
Superfici generalizzate
Ti trovi in uno spazio tridimensionale, il tuo ufficio.
Il pavimento è la superficie inserita in questo spazio, definita con l’essere all’altezza 0.
Questo è un esempio di una superficie definita da una limitazione (constraint).
Può suonare stupido, ma è così che suona la matematica quando l’esempio è troppo semplice.
Un altro esempio.
La tua scrivania è una superficie, definita dalle sue dimensioni e dall’altezza a cui essa si trova.
Queste tre misure sono ciò che determina la speciale parte bidimensionale (la scrivania) del tuo ufficio tridimensionale.
Una linea nel piano può essere vista come una superficie monodimensionale.
(Mi spiace, un po’ di algebra ci tocca.)
Ricordi il piano cartesiano? Con le due dimensioni, x e y?
Chiamiamo con l l’insieme dei punti del piano che soddisfano la seguente limitazione:
x · y = 1
Questo significa che l è costituita da tutti punti con coordinate (x, y), il quale prodotto è uguale a 1.
Per esempio, x=2 e y= 0.5, oppure x=10 e y= 0.1, infatti
10 · 0.1 = 1
Se disegnamo questi punti sul piano cartesiano, otteniamo una linea, detta un’iperbole.
Le iperboli sono bellissime: se x cresce, y deve diminuire per mantenere l’equilibrio.
Se ti viene alla mente la storia della domanda e l’offerta, è normale.
Si tratta del principio che sta alla base del cosiddetto Mercato a prodotto costante (Constant Product Market), tipo Uniswap.
La caratteristica di Balancer è quella di applicare il principio dell’iperbole a più token, generalizzandolo. Una linea, una superficie, poi uno spazio tridimensionale, fino ad arrivare alle ipersuperfici.
Da oggi in poi il termine di ipersuperficie non ti spaventerà più.
Appena si pone una restrizione a uno spazio di qualsiasi dimensione, si ottiene una ipersuperficie.
Le diverse variabili (che potrebbero essere il prezzo dei token) vengono limitate e formano una superficie.
Sul White Paper di Balancer si legge:
We are aware of one decentralized (read: non-custodial) solution that shares all the fundamental characteristics Balancer was designed to have: Uniswap. This approach was first described by V. Buterin and generalized by Alan Lu. We independently arrived at the same surface definition by starting with the requirement that any trade must maintain a constant proportion of value in each asset of the portfolio.
Senza perdersi in tecnicità (ci sarà tempo per farlo nei prossimi articoli) vediamo di chiarificare.
Ritorna all’esempio dell’iperbole e tienilo a mente, mentre leggi il seguente passaggio (dovresti aver bisogno di leggerlo almeno tre volte, altrimenti questo articolo è troppo semplice per te).
( … ) We will prove that this surface implies a spot price at each point such that, no matter what exchanges are carried out, the share of value of each token in the Pool remains constant.
Quindi, tornando all’iperbole, immaginiamo di avere 100 x-tokens e 100 y-tokens. Abbiamo:
x · y = 100 · 100 = 10’000
Ora diciamo che vuoi scambiare 50 x-tokens per qualche y.
Semplificando, possiamo descrivere la dinamica come segue.
Il prodotto x · y deve rimanere costante a 10’000, quindi bisogna aggiungere 100 y-tokens alla pool.
Infatti, così facendo ci saranno 50x e 200y, e si ottiene:
x · y = 50 · 200 = 10’000
Riassumendo, hai scambiato 100y per 50x.
Se ora vuoi scambiare 25x, corrisponderanno a 200y, infatti:
x · y = 25 · 400 = 10’000
Il loro prezzo è aumentato!
Chiaramente c’è molto di più da dire (fino a sedici variabili e dinamiche molto più complesse), ma questo esempio dovrebbe darti un’idea della logica sottostante al meccanismo che attualizza i prezzi.
Liquidity mining
Se hai dei token da parte, puoi partecipare a un pool e mettere a disposizione la tua liquidità.
Quando gli users scambieranno token, seguendo i prezzi di mercato, genereranno delle commissioni, le quali verrano distribuite ai miners.
Quindi, una Pool di Balancer è un Market-Maker automatizzato con delle particolari proprietà che gli permettono di fungere da portafogli auto-bilanciante e sensore di prezzi.
Inoltre, Balancer inverte il concetto di fondo indicizzato.
Invece di pagare commissioni a un manager di portafogli per mantenerlo bilanciato, puoi guadagnare commissioni dai traders mentre loro pensano a ribilanciarti il portafogli.
In data 30/04/2021, sulla pagina di Balancer vediamo che le due Pool col maggiore Market cap sono composte come segue:
In entrambe i casi ci sono soltanto due token nella Pool, ma con pesi differenti associati.
Anche le commissioni di swap sono diverse e influenzeranno le scelte dei Liquidity Provider e dei Traders.
Per chi desiderasse creare la propria Pool, ci sono molti dettagli da tenere in considerazione ed è consigliabile chiedere aiuto, sebbene i processi stiano diventando sempre più facili da comprendere.
Da poco vi è una versione V2 di Balancer, che permette di trattare con 16 tokens anziché 8 in una singola Pool.
È anche possibile creare delle Smart Pools, nelle quali si possono modificare diversi parametri, come il peso attribuito ai coins, le commissioni e aggiungere/rimuovere tokens dalla Pool.
Notiamo che la possibilità di modificare parametri in una Pool durante il trading richiede un certo grado di fiducia in chi l’ha creata (oltre ai rischi inerenti agli Smart Contracts).
Più variabilità richiede più fiducia e quindi non sempre è un vantaggio.
Sommario
Balancer offre un potente mezzo per creare liquidità, lanciare un token sul mercato e fare del trading.
Balancer è un Market Maker automatizzato, basato sulla generalizzazione dell’idea che sta dietro a Uniswap.
Balancer offre più flessibilità e permette di avere fino a 16 tokens nella stessa Pool.
Referenze
- https://balancer.finance/whitepaper/
- https://boxmining.com/balancer/
- https://web.stanford.edu/~guillean/talks/defi-2020.pdf