Cosa sono le Liquidity Bootstrapping Pool (LBP)?

0xstepit
Terra Network Italia
8 min readDec 28, 2021

F**ck the bots — White Whale

Introduzione

Alla costruzione di un nuovo mercato in finanza decentralizzata, e quindi di una nuova pool di liquidità, il primo fornitore di liquidità è quello che decide il prezzo a cui un certo asset viene venduto in quel mercato. Per non complicare le cose consideriamo una pool con un token generico e USD.

Il primo LP decide il prezzo del token poiché una pool di liquidità si basa su un modello matematico in cui il valore complessivo dei due token nella pool deve essere uguale. Di conseguenza il prezzo del token è stabilito dal rapporto fra la sua quantità e quella di stablecoin nella pool. ⚖

Un mercato basato su questa tipologia di modello si chiama Constant Product Market Maker (CPMM) e per ottenere questo risultato lega la quantità dei due token fra di loro attraverso una semplice equazione: x*y = k. Dove x e y sono i bilanci dei due token e k è una costante.

Questo meccanismo, utilizzato per il listing di un nuovo token dove non si ha un’idea del suo reale valore, porta a delle problematiche abbastanza visibili.

Quello che è successo al rilascio del token KUJI, di Kujira, e di molti altri come ad esempio APOLLO di ApolloDAO, è che i bot cominciano ad acquistare freneticamente i token nel momento in cui la pool diventa attiva. Questo causa inevitabilmente l’aumento vertiginoso del prezzo del token che viene successivamente dumpato per portarsi a casa un profitto.

In una Liquidity Bootstrapping Pool (LBP) 🌊 si fa utilizzo di pesi, o più semplicemente funzioni matematiche, che vengono moltiplicati per le quantità dei due token al fine di modificarne il vero valore. L’idea è quella di far partire il token da un prezzo molto alto e di ridurlo mano a mano nel tempo così da disincentivare gli acquisti in apertura del mercato.

E’ sempre bello quando si acquista/possiede qualcosa che aumenta di valore, chiaro direte. 😅 Il problema sorge però quando il principale obiettivo non è l’arricchimento personale ma qualcosa di più grande. Prendendo come soggetto un protocollo di DeFi, questo, come primo interesse, non far aumentare alle stelle il valore del proprio token di governance per poi dumparlo (si spera). L’obiettivo primario di una DAO (Decentralized Autonomous Organization) sana, che punta a una governance realmente decentralizzata, è che il proprio token di governance venga distribuito nel modo più equo e diffuso possibile. Riuscendo a mantenere un prezzo basso nelle fasi iniziali, eliminando quindi l’effetto dei bot, si riesce ad ottenere un risultato il più possibile vicino a quello appena descritto. O per lo meno, si riesce a dare a tutti la possibilità di partecipare senza vedersi negata la possibilità a causa di manipolazioni del mercato.

Vediamo quindi di approfondire questa modalità di immissione del mercato di un nuovo token così da saper come comportarci nel caso volessimo partecipare a una sale di questo tipo. 🤘🏻

Dinamica LBP

In una pool di liquidità a prodotto costante, quella di Uniswap per intenderci, il prezzo a cui i due token vengono scambiati dipende dalla quantità di ognuno dei due presente nella pool stessa. Per fare degli esempi, se avessimo nella pool 10 USD e 10 LUNA allora 1 LUNA varrebbe quanto 1 USD, se invece avessimo 10 USD e 30 LUNA allora LUNA sarebbe tradato a circa 33 centesimi. Se volete approfondire questo discorso, e più in generale quello degli AMM, vi lascio il link a un’altra guida che ho scritto (chi non la legge compra al top 😛):

Abbiamo quindi capito che il rapporto del bilancio dei due token è il fattore che determina il prezzo di uno rispetto all’altro. Una pool di bootstrapping per la liquidità iniziale è basata sull’ utilizzo di pesi che vanno a modificare virtualmente il bilancio dei due token nella pool. Ho scritto virtualmente perché il bilancio che viene usato per calcolare i prezzi non è quello vero ma uno appunto modificato. Immaginiamo la situazione di prima in cui abbiamo 10 LUNA e 10 UST ma dividiamo il loro bilancio per 0.95 e 0.05, i pesi. Quello che otteniamo, utilizzando la formula di Balancer:

è un prezzo per LUNA pari a (10/0.05)/(10/0.95) = 19 USD invece di 1!

Nell’equazione w indica i pesi utilizzati, questi vengono fatti variare allo scorrere del tempo in una LBP. Un esempio semplice, ma non l’unico, è quello di farli variare linearmente come nell’immagine sotto:

Questo vuol dire che all’istante zero LUNA viene diviso per 0.05 e USD per 0.95, all’ istante uno LUNA viene diviso per 0.06 e USD per 0.94 e così via.

Il motivo dell’utilizzo dei pesi in questo modo è legato principalmente a 2 fattori:

  • Potendo imporre un prezzo del token iniziale alto, i bot che fanno da front-runner (coloro che cercano di acquistare subito), saranno disincentivati dall’acquistarlo subito. I pesi, creando una pressione sul prezzo, lo porteranno a diminuire costantemente.
  • Chi distribuisce il token a un certo prezzo dovrà farlo creando una pool bilanciata per evitare situazioni di arbitraggio. Se la quantità di token da distribuire è elevata questo richiederà una gran quantità di USD da investire nella pool prima di avviarla.

Pool bilanciata: il prezzo dei due token nella pool è uguale al loro prezzo in altri mercati.

Le due situazioni sopra descritte si applicano in due casi diversi, il primo per la scoperta del prezzo di un token, il secondo per la distribuzione del maggior numero possibile di token dato un certo capitale iniziale.

Un altro vantaggio di questo di pool è che permette la “scoperta” del vero valori di un token in maniera molto più naturale attraverso una vendita prolungata su più giorni.

Analisi di una LBP

Per meglio comprendere il funzionamento di questo meccanismo ho creato un codicino in Python così da poter simulare l’andamento della curva al variare di alcuni parametri e/o dinamiche di mercato. Potete trovare la repository sul mio profilo github (prima o poi prometto che lo sistemerò..).

Il grafico sotto rappresenta il prezzo di un token in una pool bilanciata con stessa quantità dei due asset in assenza di trade. Si, è banale lo so, però è giusto partire dalle cose semplici.

Prima di vedere qualche bel grafico da analizzare che non sia una retta da dobbiamo fissare alcuni parametri necessari per una lbp. Nel seguito assumeremo una pool composta da un token qualsiasi e USD, come nelle applicazioni di bootstrapping di un nuovo token. I parametri utilizzati saranno:

  • Bilancio token: 1.000.000.
  • Bilancio USD: 1.000.000.
  • Peso iniziale token: 0.05.
  • Peso iniziale USD: 0.95 = 1–0.05.
  • Step di update dei pesi: 72.

L’ultimo parametro simula un aggiornamento dei pesi ogni ora per 72 ore, quindi 3 giorni. Vediamo il grafico del token in questa situazione senza nessun intervento nel mercato:

Come possiamo vedere, il prezzo, al posto di partire unitario come sarebbe dovuto essere, parte da un valore molto alto. Questo, a causa della variazione dei pesi sul bilancio di USD e del token, diminuisce piano piano nel tempo. All’istante iniziale vale 19 USD, l’ora successiva scende a 15,9412 e così via.

Assumiamo adesso che vi siano dei front-runner che acquistano all’istante iniziale, a prescindere dal prezzo, 533.000 USD del token. Nel caso in cui non vi fossero i pesi, quello che succederebbe sarebbe questo:

Il prezzo schizza in alto e poi rimane costante poiché non vengono più effettuati acquisiti nella simulazione. Questo non è buono. Un utente, e quindi non un boot o front-runner, non è in grado di acquistare nell’esatto istante in cui apre una pool. Questo causa quindi una cattiva distribuzione dei token e, generalmente, un successivo dump del prezzo. Nell’esempio sopra il prezzo è aumentato istantaneamente del 272.61%.

Andiamo adesso ad aggiungere i pesi mantenendo i bilanci della pool e gli USD depositati all’inizio uguali. Quello che otteniamo è un grafico del tutto diverso:

Il picco iniziale, che ora solo del 25%, viene nel tempo attenuato a causa della variazione dei pesi. In questo caso i bot non sono assolutamente favoriti dal meccanismo di vendita, anzi, perderebbero un sacco di soldi!

Combinando fra di loro front-runner e utenti che acquistano a particolari valori di prezzo si ottiene una curva di questo tipo:

Uno degli ultimi token che sono stati lanciati utilizzando questo particolare tipo di curva per la vendita iniziale è stato $WHALE della dApp White Whale. Come potete vedere dall’immagine ci sono stati 4 livelli a cui gli utenti hanno acquistato il token. In tutti i casi la forza dei pesi ha portato il prezzo a diminuire dopo un suo iniziale aumento causato dall’acquisto.

Un aspetto che vorrei sottolineare però, è che questo tipo di vendita iniziale non fa si che il prezzo di un token crolli inesorabilmente verso lo zero. Se il prezzo raggiunge un livello che gli utenti reputano corretto allora la forza di acquisto permetterà di contrastare la sua discesa.

Un esempio è quello della vendita del token PERP, nonché primo token ad essere stato lanciato utilizzando questa strategia.

Conclusione

In questo piccolo articolo abbia cercato di analizzare il funzionamento di un particolare tipo di pool inventato da Balancer. Il suo funzionamento è molto simile a quello di Uniswap ma con l’aggiunta di pesi ai bilanci dei token al fine di modificarne virtualmente il prezzo. Questo meccanismo garantisce una migliore distribuzione dei token permettendo ad ogni utente di ottenere la sua fetta di mercato ad un prezzo onesto e non contaminato dai bot. Cos’è che ci insegna quindi tutto questo? Don’t ape in, meglio aspettare!

Come al solito ti ringrazio per essere arrivato fino in fondo a questo articolo e ti invito a lasciare un clap 👏 o un commento come supporto se dovesse esserti piaciuto.

Per qualsiasi dubbio o chiarimento ti invito a contattarmi attraverso i canali che puoi trovare nel banner finale.

A presto! 🚀

Telegram | Twitter | Instagram

Riferimenti

--

--