Protocollo Tinyman AMM V2.0

Nov 25 2022
Ieri abbiamo annunciato una nuova versione del protocollo Tinyman AMM in arrivo nel gennaio 2023. In questo post sul blog, vorremmo fornire una panoramica del nuovo protocollo e spiegare i passaggi successivi.
Protocollo Tinyman AMM v2.0

Ieri abbiamo annunciato una nuova versione del protocollo Tinyman AMM in arrivo nel gennaio 2023. In questo post sul blog, vorremmo fornire una panoramica del nuovo protocollo e spiegare i passaggi successivi. Stiamo fornendo questi dettagli prima del lancio per dare agli utenti e ai progetti dell'ecosistema tutto il tempo necessario per familiarizzare con il nuovo protocollo e prepararsi alla migrazione.

Dal lancio di Tinyman AMM nell'ottobre 2021 ci sono stati molti miglioramenti al protocollo Algorand che consentono alle applicazioni di fare cose più complesse e interessanti, migliorando anche la sicurezza e rimuovendo alcuni dei punti di attrito. Negli ultimi 6 mesi, abbiamo lavorato alla progettazione, costruzione e test di una nuova implementazione di Tinyman AMM che tragga vantaggio da questi miglioramenti.

Alcuni punti salienti di questo nuovo protocollo includono:

  • Calcolo dinamico delle uscite per eliminare la necessità di riscatti
  • Aggiunta e rimozione flessibili di liquidità
  • Prestiti flash e swap flash
  • Impostazioni tariffarie dinamiche
  • Piena componibilità e interoperabilità
  • Ulteriori controlli di sicurezza
  • Migliore leggibilità del contratto

Tinyman AMM V2 è senza autorizzazione

Tinyman AMM V2 è immutabile (non aggiornabile)

Tinyman AMM V2 non ha chiavi di amministrazione per sospendere l'attività o svuotare i pool

Tinyman AMM V2 è trasparente e open source

Tinyman AMM V2 è controllato

Tinyman AMM V2 è ancora incredibilmente veloce ed economico da usare

Niente più riscatti

Uno dei miglioramenti più importanti apportati al protocollo Algorand nell'ultimo anno è stata l'introduzione delle transazioni interne. Questi consentono ai contratti di creare transazioni in modo programmatico. Ciò consente a Tinyman di calcolare dinamicamente gli output di swap ed emettere una transazione per l'intero importo di output. I contratti assicurano ancora in modo sicuro che venga ricevuto l'importo minimo previsto.

Ciò rimuove una delle principali fonti di attrito e confusione e si tradurrà immediatamente in una migliore esperienza utente.

Niente più opt-in per le app

Ora che non abbiamo più bisogno di supportare i riscatti, non abbiamo nemmeno bisogno di archiviare per stato utente on-chain. Questo ci consente di rimuovere il requisito di opt-in per l'app del contratto Tinyman. Ciò libererà alcuni requisiti minimi di equilibrio degli utenti di Tinyman e rimuoverà un'altra fonte di attrito.

Gli Asset Opt-in sono ancora richiesti, ma ora siamo in grado di raggrupparli con scambi e altre operazioni in modo che gli utenti non debbano firmarli separatamente. Ciò accelererà il processo e ridurrà i passaggi necessari per gli scambi.

Gestione della liquidità più flessibile

Abbiamo notato che uno schema molto comune tra gli utenti che desiderano diventare pooler era quello di scambiare un asset con un altro e quindi depositare una quantità uguale di entrambi nel pool. Abbiamo aggiunto una funzionalità che automatizza questo passaggio a livello di protocollo in modo che un utente possa aggiungere liquidità a un pool con solo uno degli asset del pool in un'unica operazione. È anche flessibile, quindi l'utente può aggiungere tutto ciò che ha a disposizione di ogni risorsa e il pool bilancerà le cose ed emetterà la quantità corretta di token del pool per il valore combinato.

Gestione flessibile della liquidità su Tinyman v2

È fondamentale capire che l'utente ha ancora un'esposizione a entrambe le risorse quando utilizza questa tecnica. Lo scambio interno implicito è solo una caratteristica utile per l'utente. È anche importante capire che questa funzione è più adatta per i piccoli pooler. Devono ancora esserci alcuni pooler con liquidità significativa in entrambe le attività per creare un pool bilanciato in primo luogo.

Questa funzione garantisce inoltre che tutta la liquidità dell'utente nel token LP sia contabilizzata correttamente, anche se forniscono liquidità con un rapporto errato. Ciò migliora la sicurezza per i nuovi pooler durante i periodi di elevata volatilità.

Il protocollo ora supporta anche la rimozione della liquidità in un solo asset. Questo è l'inverso del caso precedente, in cui si verifica uno scambio interno implicito prima di restituire i fondi all'utente come asset selezionato.

Queste due funzionalità ci consentono di migliorare l'esperienza dell'utente semplificando i flussi comuni. Tuttavia, gettano anche le basi per interazioni contratto-contratto molto più complesse.

Componibilità e interoperabilità

Ancora una volta abbiamo sfruttato gli ultimi miglioramenti del protocollo Algorand per progettare il protocollo V2 in modo che sia completamente componibile e interoperabile. Ciò significa che le transazioni di Tinyman V2 possono essere inserite negli stessi gruppi atomici di altre transazioni e che Tinyman V2 può essere chiamato da altri contratti.

Ciò consente a noi e ad altri di creare funzionalità in cima al protocollo per scambi multihop atomici, ordini limite, metapool e molto altro. Queste funzionalità contribuiranno a migliorare l'esperienza utente per gli swapper, generando al contempo maggiori volumi verso i pool di Tinyman e generando più commissioni per i pooler.

Prestiti Flash & Swap

Una caratteristica che sfrutta questa componibilità è Flash Loans. Ora abbiamo il supporto per questo integrato nel protocollo in modo che gli utenti possano prendere un prestito collaterale zero da un pool purché lo rimborsino all'interno dello stesso gruppo di transazioni. Questa può sembrare una funzionalità inutile, ma grazie alla natura interoperabile del protocollo e allo sviluppo dello spazio Algorand DeFi ci saranno molte opportunità di realizzare profitti all'interno di un singolo blocco. Questa è una funzionalità complessa e destinata esclusivamente all'uso da parte di persone con una conoscenza dettagliata dei protocolli e delle strategie DeFi e come tale non sarà inclusa nell'interfaccia utente web. L'inclusione di questa funzione è guidata dalla nostra filosofia di base di fornire strumenti finanziari a tutti, indipendentemente dalla loro ricchezza.

I flash swap e i prestiti sono privi di rischio per il protocollo (in senso finanziario) e forniscono un'ulteriore fonte di entrate per i pooler.

Commissioni regolabili

Tinyman AMM V1 ha una commissione di swap fissa di 30 punti base, suddivisa 5:1 tra i pooler e il protocollo. Questo ha servito bene gli utenti fino ad ora, ma ci sono casi in cui altre opzioni di pagamento sarebbero più adatte. Per le attività ancorate/stabili, una commissione inferiore che provochi un minore impatto sui prezzi andrebbe a vantaggio degli swapper. L'aumento del volume dovuto a commissioni più basse dovrebbe anche avvantaggiare i pooler. Piuttosto che frammentare la liquidità su più pool per diversi livelli di commissioni delle stesse coppie di asset, il protocollo V2 consente di adeguare le commissioni di un pool nel tempo. Tutti i pool inizieranno con i valori predefiniti (come V1) ma il tasso di commissione può essere modificato dal conto Fee Setter entro i limiti consentiti.

Commissioni regolabili su Tinyman v2

L'intenzione qui è che il Fee Setter sarà inizialmente un account controllato dal core team di Tinyman e le commissioni verranno adeguate solo per coppie stabili/ancorate. Successivamente intendiamo introdurre una funzionalità per consentire ai pooler di decidere collettivamente le tariffe per il loro pool. In definitiva intendiamo che tutte le commissioni siano controllabili dal Tinyman DAO quando esiste. Il protocollo è progettato per essere flessibile a questo proposito, in modo che la responsabilità per la fissazione e la riscossione delle commissioni possa essere delegata a contratti intelligenti o conti esterni e revocabile se necessario. Ciò consente alle regole e ai meccanismi relativi alle tariffe di cambiare nel tempo senza influire su altri aspetti del protocollo. Ulteriori dettagli saranno forniti prima del lancio sulle politiche relative alle modifiche alle commissioni.

Un protocollo più sicuro e trasparente

Con qualsiasi protocollo, ci sono presupposti di progettazione e limitazioni tecniche intrinseche. Li abbiamo documentati in precedenza per la V1 e inserito misure di sicurezza nell'interfaccia utente per impedire agli utenti di utilizzare il protocollo in modi imprevisti. Con Tinyman V2 siamo stati in grado di fare un ulteriore passo avanti e applicare alcuni di questi a livello di protocollo.

Tinyman Comic Ch # 1

Ci sono un certo numero di invarianti matematici/logici che dovrebbero valere nel protocollo. In Tinyman V2 questi vengono controllati esplicitamente dopo ogni operazione per garantire che anche con un comportamento molto inaspettato i pool non possano perdere valore.

Il protocollo può essere sicuro solo se può essere facilmente letto, compreso e rivisto da più persone indipendenti. Per aiutare in tal senso, abbiamo lavorato in una serie di aree:

  • Codice sorgente del contratto leggibile: abbiamo sviluppato un nuovo linguaggio per Algorand, Tealish , che ci consente di esprimere chiaramente la nostra logica e le nostre intenzioni ad alto livello durante la compilazione in Teal leggibile di basso livello. Fergal Walsh (Tinyman CTO) parlerà di Tealish e di come è stato utilizzato per V2 a Decipher 2022 .
  • Tinyman inventa Tealish
  • Verifiche verificabili: le specifiche del protocollo e i contratti sono stati analizzati e verificati a più livelli per tentare di identificare diversi tipi di problemi. Ciò include l'analisi e la modellazione delle specifiche, del codice sorgente Tealish e del codice Teal generato che alla fine viene eseguito sull'AVM. Abbiamo collaborato con i revisori per rendere il processo di audit più trasparente del solito. Nelle prossime settimane pubblicheremo un altro post sul blog con riferimenti alle relazioni e tutto il materiale di supporto.
  • Bug Bounty — Abbiamo collaborato con Algorand Foundation e Immunefi per creare un programma di bug bounty con ricompense fino a 250.000 USD per problemi critici. Questo programma è attivo immediatamente e rimarrà attivo dopo il lancio di Mainnet.
  • Contratti pubblici e specifiche open source — Abbiamo pubblicato i contratti sorgente, generato Teal e il bytecode finale insieme al documento di progettazione e alle specifiche del protocollo. Ciò consente a chiunque di rivedere i dettagli del protocollo per assicurarsi che la sua implementazione corrisponda alle proprie aspettative.

Ci viene chiesto regolarmente perché Tinyman non dispone di Big Red Button per mettere in pausa i contratti se qualcosa va storto. Questa domanda è stata sollevata maggiormente dopo lo sfortunato incidente di gennaio. Durante la progettazione di V2 abbiamo riflettuto molto su questa domanda. Possiamo implementare una funzionalità di pausa? Come funzionerebbe? Chi può controllarlo? Chi è responsabile di chiamarlo? Cosa succede dopo la pausa? Entreremo in ulteriori dettagli su questo in un futuro post sui problemi di sicurezza, ma alla fine siamo giunti alla stessa conclusione che abbiamo avuto durante la progettazione di V1; non esiste un meccanismo di pausa sicuro e utile che non comprometta i valori fondamentali di Tinyman e della DeFi in generale. Un meccanismo di pausa senza contratti aggiornabili non è molto utile ei contratti aggiornabili sono l'altra faccia di una linea che non siamo disposti a superare. I contratti aggiornabili consentirebbero al team di Tinyman (o a un attaccante) di modificare le regole del protocollo e potenzialmente di prendere in custodia la liquidità. Lo scopo principale della DeFi è evitare tali possibilità.

I tuoi fondi, la tua decisione

Noi come team siamo entusiasti del nuovo protocollo e siamo stati impegnati a creare una nuova e migliorata interfaccia utente attorno ad esso. Riteniamo che gli utenti avranno un'esperienza complessiva molto migliore con il nuovo protocollo, ma alla fine spetta a te decidere come utente del protocollo. Quando hai collocato i tuoi fondi in V1 hai accettato che sarebbero stati vincolati dalle regole e dalla logica dei contratti V1. In base alla progettazione, non possiamo modificare queste regole per portare la tua liquidità su V2. Deve essere una tua decisione. Incoraggiamo tutti i pooler su V1 a leggere i dettagli del protocollo e il rapporto di audit indipendente e decidere autonomamente se desiderano migrare la propria liquidità su V2. Il protocollo V1 continuerà a vivere su Algorand Mainnet per l'eternità e continueremo a supportare i pool esistenti nell'interfaccia utente web per il prossimo futuro.

Tinyman annuncia il protocollo AMM v2

Prossimi passi

Ci auguriamo che tu sia entusiasta quanto noi di V2. Questo è solo l'inizio però! Abbiamo anche molti miglioramenti dell'interfaccia utente da lanciare con il protocollo V2. Li esamineremo in ulteriori post del blog nelle prossime settimane. Dopo il lancio, ci saranno ulteriori miglioramenti e funzionalità basati sulle basi fornite dal protocollo V2.

Avremo anche post aggiuntivi sul piano di migrazione prima del lancio.

Nel frattempo, ti suggeriamo di familiarizzare con i dettagli del protocollo e di porre domande nei nostri spazi comunitari.

Riferimenti

Documentazione e specifiche del protocollo V2

Repository dei contratti V2

Rapporto di verifica dei contratti V2

Repo Tealish

Programma Immunefi Bug Bounty (Link da aggiungere)