Blockchain Terra: l’ automated market maker Terra Swap | ITA

0xstepit
10 min readOct 12, 2021

--

The first Automated Market Maker (AMM) protocol on the Terra blockchain.

Introduzione

In questa guida parleremo di un protocollo con il quale tutti gli utenti che hanno sperimentato con gli strumenti della blockchain di Terra hanno usato, consapevoli o no, e il suo nome è Terra Swap. Attraverso questo protocollo è possibile fare trading con tutti gli asset nativi di Terra e i token CW20. Il CW20 è una specifica per token fungibili basata su ComsWasm, una piattaforma di smart contract dell’ecosistema Cosmos.

Token fungibile: sono quei token il cui valore non dipende da una caratteristica propria della moneta, ma ognuna vale esattamente come le altre. Un esempio di token fungibile è l’ euro o BTC. Essendo fungibili, è possibile scambiare un BTC per un altro BTC senza vedere il nostro patrimonio aumentare o diminuire.

Per chi ancora non lo sapesse è stata votata ed approvata poco fa la proposta di integrazione dell’ecosistema Terra con l’ecosistema Cosmos. Già, il 100% dei votanti ha votato a favore..ed io sono stato uno di quelli 😃.

Fare trading è uno degli aspetti più importanti per una blockchain che vuole offrire una valida alternativa ai servizi finanziari odierni e, ancora più importante, un protocollo affidabile è necessario se si vuole offrire una valida alternativa agli altri servizi di finanza decentralizzata. In questa guida andremo ad approfondire il principale protocollo di trading nel mondo Terra, sia da un punto di vista teorico che operativo.

Terra Swap

Terra Swap è un Automated Market Maker (AMM) molto simile in funzionamento alle prime versioni di Uniswap. Se avete utilizzato Anchor, Mirror, ApolloDAO o uno degli altri fantastici protocolli su Terra avete sicuramente ricorso a Terra Swap per fare uno scambio di token.

Uniswap è l’ AMM attualmente più famoso al mondo e la logica di questo protocollo è stata proposta dall’inventore di Ethereum, Vitalik Buterin, in un post di Reddit.

Ma cos’è un AMM? Per farla in breve è un sistema automatizzato che permette di costruire un mercato decentralizzato, senza che vi sia fiducia fra gli utenti. Con mercato si intende un luogo dove è possibile comprare o vendere qualcosa, in questo caso specifico le crypto. Il sistema è automatizzato poiché il rapporto fra gli utenti, e la gestione dei fondi, è controllato da uno o più smart contracts. Essendo basato su degli algoritmi, molto spesso resi opensource su github, non vi è bisogno che gli utenti che comprano o vendono si fidino gli uni degli altri, devono solo fidarsi o verificare l’algoritmo che gestisce le transazioni.

Nel grafico di sotto ho riportato il valore della liquidità gestita da questo protocollo. Nel giro di meno di un anno è passato dall’avere circa 100 milioni di dollari di liquidità ad averne 1,3 miliardi!

https://alpac4.com/TerraSwapDashboard/

La crescita di Terra Swap è stata davvero velocissima e uno dei principali motivi è proprio perché tutti i protocolli portanti dell’ecosistema Terra ne fanno uso.

Prima di poter vedere come utilizzare questo strumento dobbiamo capire ad un livello di dettaglio maggiore che cos’é e come funziona un AMM. Non preoccupatevi, non andremo troppo a fondo nella sua descrizione in questa guida, ma metteremo alla luce le sue caratteristiche principali così da poter usare in modo consapevole Terra Swap.

Automated Market Maker

Abbiamo già detto che è un protocollo per la costruzione di un mercato monetario, ma cosa vuol dire di preciso? Questo tipo di sistemi sono in grado di gestire pool di liquidità attraverso degli smart contracts. Con pool di liquidità si intende un bacino di monete con le quali è possibile fare trading, e quindi comprare e vendere. Questo concetto è molto importante poiché stiamo considerando un sistema di DeFi (finanza decentralizzata) ed è necessario un protocollo che permetta di raggruppare in un unico luogo la liquidità di tutte le persone che vogliono contribuire. Il motivo è abbastanza ovvio, se ho bisogno di comprare 100€ di LUNA è davvero scomodo andare a comprarne 10€ da un utente, 20€ da un altro, e così via (questo sarebbe il procedimento in un sistema peer-to-peer senza un protocollo di gestione comune). Abbiamo quindi bisogno di uno strumento che permetta di raccogliere la liquidità proveniente da tante persone e di metterla in un bacino dal quale chiunque, senza nessuna discriminazione, può operare.

Fra gli AMM più semplici vi è appunto quello utilizzato da Uniswap fino alle versione V2, chiamato constant function market makers (CFMMs). In un CFMMs, il prezzo di due assets viene definito da una funzione matematica molto semplice:

dove x rappresenta la quantità del token X e y la quantità del token Y. La k è una quantità costante, chiamata invariante, la quale impone che il prodotto fra la liquidità dei due asset nella pool non cambi. Se x aumenta allora y dovrà diminuire e viceversa, è un semplice vincolo matematico imposto dall’avere il prodotto di due quantità fissato. Facciamo un esempio:

Nell’ipotesi che non vi siano fee di scambio (più avanti ne parleremo), immaginiamo che qualcuno voglia scambiare 10 X con Y. Per farlo, questo utente depositerà 10 X nella pool e riceverà una certa quantità di Y. Andiamo a vedere la liquidità di X e Y dopo aver eseguito questo trade:

Questo vuole dire che depositando 10 X nella pool, l’utente riceverà:

Ma un momento, quando noi vogliamo comprare qualcosa ci interessa il prezzo, non il numero. Il prezzo di acquisto del token Y viene definito in modo implicito dal numero di token X che vengono inseriti nella pool.

Questa era una breve descrizione di come funziona un constant product AMM ma che ci permetterà di operare in modo consapevole sulla maggior parte di questi sulle varie chain. Possiamo ora andare a concentrarci sul motivo per il quale state leggendo questo post: Terra Swap.

Partecipanti

E’ possibile interagire con questo protocollo in due modi: o come trader o come fornitori di liquidità (liquidity provider).

Il trader è colui che utilizza Terra Swap per scambiare due monete, ad e esempio UST per LUNA. Possiamo dire che questi sono gli utenti che utilizzano il mercato offerto da Terra Swap.

Il liquidity provider invece è colui che fornisce al protocollo UST e LUNA da mettere nella pool. Loro, sono i costruttori del mercato. Si, queste sono le persone che mettendo assieme le loro crypto in un unico bacino e ci permettono di inserire 200 monete di X per prendere delle monete di Y come abbiamo visto nell’esempio dell’ AMM a prodotto costante.
Queste persone sono obbligate a mettere nella pool lo stesso corrispettivo in dollari delle due crypto. Ad esempio, per diventare liquidity provider dovrò fornire a Terra Swap 100$ di UST e 100$ di LUNA. Perché non è possibile fornire quantità diverse? Beh, perché abbiamo visto prima che se nella pool aumenta o diminuisce il rapporto della liquidità di una crypto rispetto a un altra ne si modifica anche il prezzo. Fornendo il 50% di dollari di una e il 50% di dollari dell’ altra aumentiamo la liquidità del protocollo senza modificare il prezzo dei due asset. Questo è normale, stiamo costruendo il mercato non stiamo facendo dei trade!

Quando forniamo la coppia UST e LUNA riceviamo in cambio dei token, chiamati LP token, i quali rappresentano la nostra quota di crypto all’interno della pool a cui stiamo fornendo liquidità. Come faremo se no a sapere quante monete abbiamo all’interno della pool condivisa? Prima abbiamo preso come esempio la coppia (UST, LUNA) ma vi saranno tante altre coppie (UST, MIR), (MIR, LUNA), … e per ognuna di queste vi sarà una pool apposita.

A questo punto uno potrebbe chiedersi il perché uno dovrebbe spostare le crypto dal proprio wallet per metterle all’interno di una pool. Quale potrà essere la risposta se non che si viene ricompensarti per farlo? 😏
Quando abbiamo descritto come funziona un AMM abbiamo detto che mettendo 200 X nella pool riceviamo, secondo la formula del prodotto costante, il corrispettivo valore di Y. In realtà non è così lineare, quando depositiamo 200 X, da questi vengono tolte delle fee, e poi viene fatto il conto di quanti Y si deve ricevere. Le fee trattenute vengono ridistribuite all’interno della pool ai liquidity provider in base alla percentuale di LP detenuti. In questo modo ci sarà un incentivo alle persone che, oltre a partecipare per poter creare un sistema peer-to-peer di finanza decentralizzata, vogliono anche veder fruttare i propri fondi.

Le fee per ogni trade su Terra Swap sono dello 0.3%.

Gli LPs sono dei token che vengono coniati (mintati) nel momento in cui contribuiamo alla pool, e distrutti (o bruciati) quando si vuole prelevare la propria quota di token dalla pool.

Swap

Per sperimentare con l’utilizzo di Terra Swap vi consiglio di cambiare la rete del vostro wallet in testnet e poi collegarlo alla web app. L’utilizzo di questo AMM è molto semplice, una volta collegati vi troverete davanti alla schermata di swap. Con swap si intende proprio lo scambio di una crypto per un’altra. Una cosa interessante è che dal menù a tendina affianco a Fee è possibile decidere di pagare le commissioni anche con un’altra crypto che avete nel vostro wallet. Dall’ingranaggio in alto a destra è possibile impostare la quantità di slippage che siete disposti ad accettare. Ad esempio, se voglio comprare LUNA che sta a 10$ e il valore dello slippage è dello 1% vuol dire che, se da quanto chiediamo di fare la transazione, il prezzo di LUNA rimane inferiore di 10.1$ allora accettiamo lo scambio, altrimenti no. L’utilizzo di un parametro di slippage è necessario a causa della volatilità continua del mercato.

Liquidty provider

Per diventare LP è molto semplice, basta cliccare sulla tab Provide e fornire e fornire un pari valore di due crypto. Nell’esempio della foto sono stati forniti 10 LUNA, il cui prezzo al momento della transazione era di 36,2$, e 362$ di UST, esattamente 10x362. In cambio della liquidità fornita sono stati coniati, e poi trasferiti sul nostro wallet 0,639819 token LPs.

Ritirare

Per ritirare la nostra liquidità dalla pool, più le fee ricevute, dobbiamo andare nella tab Withdraw. A questo punto scegliamo il numero di LPs che vogliamo bruciare e ci verrà indicata la quantità dei due token che ci verrà restituita.

Per l’esempio riportato la posizione di LP è stata creata e subito dopo chiusa. In questo breve arco di tempo nessuno ha fatto trade con la pool e quindi il numero di LUNA e UST depositati e ritirati è uguale. Tenete a mente che non sempre è così, anzi, quasi sempre ritirerete meno di una crypto e più di un’altra proprio a causa dei trade che vengono fatti.

Ma come facciamo sapere quanto guadagnamo dalle fee della pool in cui vogliamo contribuire? Terra Swap attualmente non fornisce questa informazione. Dal loro profilo di twitter sembra che stiano lavorando al back-end della piattaforma per poi passare alla parte di front-end. Visto il successo di Terra e dell’importanza di questo protocollo mi aspetto grandi sorprese dal team di Terra Swap!

Per avere una stima delle fee, calcolata come media mobile delle fee entrate nella pool nei precedenti 7 giorni, possiamo usare un’altra web app sviluppata da Alpha Defi. Attualmente il rendimento dalle fee, per aver fornito liquidità alla pool LUNA/bLUNA, è dell’8%. Non male come valore visto che il rendimento da staking è di circa la metà.

https://app.alphadefi.fund/terra-pool-aprs

Governance

Attualmente questo protocollo non possiede un token di governance e non vi sono notizie a riguardo. Tuttavia, non sono pochi i casi di protocolli senza un token che da un giorno all’altro decidono di farlo e ne airdroppano agli utilizzatore un cospicuo numero. Ovviamente l’airdrop viene fatto retroattivo per i soli utenti che hanno utilizzato il protocollo prima di sapere di questa pioggia di denaro. Già, pioggia di denaro! Pensate che recentemente un protocollo su Ethereum, dYdX, ha regalato ai suoi utilizzatori fino 100.000$! Who knows, magari vedremo qualcosa di simile anche per Terrs Swap. 🤞

Lasciando perdere quest’ ultima notizia altamente speculativa, per tutti gli appassionati del mondo Terra credo sia importante sapere cosa succede dietro la semplice approvazione di una transazione con un click.

Siamo arrivati a 3 articoli, credo che ormai non esista più una strada per tornare indietro. L’ecosistema è in continua evoluzione ed è troppo bello sperimentare e approfondire ogni dettaglio di questi sistemi. Spero che anche questo articolo vi sia piaciuto, e se volete farmelo sapere fate un bel applauso 👏

A presto con futuri aggiornamenti 🚀.

--

--