Protocole Tinyman AMM V2.0
Hier, nous avons annoncé une nouvelle version du protocole Tinyman AMM à venir en janvier 2023. Dans cet article de blog, nous aimerions donner un aperçu du nouveau protocole et expliquer les prochaines étapes. Nous fournissons ces détails tôt avant le lancement afin de donner suffisamment de temps aux utilisateurs et aux projets d'écosystème pour se familiariser avec le nouveau protocole et se préparer à la migration.
Depuis le lancement du Tinyman AMM en octobre 2021, de nombreuses améliorations ont été apportées au protocole Algorand qui permettent aux applications de faire des choses plus complexes et intéressantes tout en améliorant la sécurité et en supprimant certains des points de friction. Au cours des 6 derniers mois, nous avons travaillé sur la conception, la construction et le test d'une nouvelle implémentation du Tinyman AMM qui tire parti de ces améliorations.
Voici quelques points saillants de ce nouveau protocole :
- Calcul dynamique des sorties pour supprimer le besoin de rachats
- Ajout et retrait flexibles de liquidités
- Prêts flash et swaps flash
- Paramètres de frais dynamiques
- Composabilité et interopérabilité complètes
- Contrôles de sécurité supplémentaires
- Meilleure lisibilité du contrat
Tinyman AMM V2 est sans autorisation
Tinyman AMM V2 est immuable (non évolutif)
Tinyman AMM V2 n'a pas de clés d'administration pour suspendre l'activité ou vider les pools
Tinyman AMM V2 est transparent et open source
Tinyman AMM V2 est audité
Tinyman AMM V2 est toujours ridiculement rapide et bon marché à utiliser
Plus de rachats
L'une des améliorations les plus importantes apportées au protocole Algorand au cours de la dernière année a été l'introduction des transactions internes. Ceux-ci permettent aux contrats de créer des transactions par programmation. Cela permet à Tinyman de calculer dynamiquement les sorties d'échange et d'émettre une transaction pour le montant total de la sortie. Les contrats garantissent toujours en toute sécurité que le montant minimum attendu est reçu.
Cela supprime une source majeure de friction et de confusion et se traduira immédiatement par une meilleure expérience utilisateur.
Plus d'opt-ins d'application
Maintenant que nous n'avons plus besoin de prendre en charge les rachats, nous n'avons plus besoin de stocker par état d'utilisateur sur la chaîne. Cela nous permet de supprimer l'obligation de s'inscrire à l'application de contrat Tinyman. Cela libérera certaines exigences d'équilibre minimum des utilisateurs de Tinyman et supprimera une autre source de friction.
Les opt-ins d'actifs sont toujours requis, mais nous sommes désormais en mesure de les regrouper avec des swaps et d'autres opérations afin que les utilisateurs n'aient pas à signer séparément pour eux. Cela accélérera le processus et réduira les étapes nécessaires aux échanges.
Une gestion des liquidités plus flexible
Nous avons remarqué qu'un schéma très courant parmi les utilisateurs souhaitant devenir poolers consistait à échanger un actif contre un autre, puis à déposer un montant égal des deux dans le pool. Nous avons ajouté une fonctionnalité qui automatise cette étape au niveau du protocole afin qu'un utilisateur puisse ajouter des liquidités à un pool avec un seul des actifs du pool en une seule opération. Il est également flexible afin que l'utilisateur puisse ajouter tout ce dont il dispose de chaque actif et le pool équilibrera les choses et émettra le nombre correct de jetons de pool pour la valeur combinée.
Il est essentiel de comprendre que l'utilisateur est toujours exposé aux deux actifs lorsqu'il utilise cette technique. L'échange interne implicite n'est qu'une fonctionnalité pratique pour l'utilisateur. Il est également important de comprendre que cette fonctionnalité est la plus adaptée aux petits poolers. Il doit encore y avoir des poolers avec des liquidités importantes dans les deux actifs pour créer un pool équilibré en premier lieu.
Cette fonctionnalité garantit également que toutes les liquidités de l'utilisateur dans le jeton LP sont correctement comptabilisées, même s'ils fournissent des liquidités à un ratio incorrect. Cela améliore la sécurité des nouveaux poolers pendant les périodes de forte volatilité.
Le protocole prend désormais également en charge la suppression de la liquidité dans un seul actif. C'est l'inverse du cas ci-dessus, où un swap interne implicite se produit avant de restituer les fonds à l'utilisateur en tant qu'actif sélectionné.
Ces deux fonctionnalités nous permettent d'améliorer l'expérience utilisateur en simplifiant les flux courants. Cependant, ils jettent également les bases d'interactions contrat à contrat beaucoup plus complexes.
Composabilité et interopérabilité
Encore une fois, nous avons profité des dernières améliorations du protocole Algorand pour concevoir le protocole V2 afin qu'il soit entièrement composable et interopérable. Cela signifie que les transactions Tinyman V2 peuvent être placées dans les mêmes groupes atomiques que les autres transactions et que Tinyman V2 peut être appelée à partir d'autres contrats.
Cela nous permet, ainsi qu'à d'autres, de créer des fonctionnalités en plus du protocole pour les échanges atomiques multi-sauts, les ordres à cours limité, les métapools et bien plus encore. Ces fonctionnalités aideront à améliorer l'expérience utilisateur des swappers tout en générant plus de volume vers les pools Tinyman et en générant plus de frais pour les poolers.
Prêts Flash & Swaps
Les prêts Flash sont une fonctionnalité qui tire parti de cette composabilité. Nous avons maintenant un support pour cela intégré dans le protocole afin que les utilisateurs puissent contracter un prêt sans garantie auprès d'un pool tant qu'ils le remboursent dans le même groupe de transactions. Cela peut sembler une fonctionnalité inutile, mais grâce à la nature interopérable du protocole et au développement de l'espace Algorand DeFi, il y aura de nombreuses opportunités de réaliser des bénéfices dans un seul bloc. Il s'agit d'une fonctionnalité complexe et uniquement destinée à être utilisée par des personnes ayant une connaissance détaillée des protocoles et des stratégies DeFi et, en tant que telle, ne sera pas incluse dans l'interface utilisateur Web. L'inclusion de cette fonctionnalité est motivée par notre philosophie fondamentale qui consiste à fournir des outils financiers à tous, quelle que soit leur fortune.
Les flash swaps et les prêts sont sans risque pour le protocole (au sens financier) et constituent une source de revenus supplémentaire pour les poolers.
Frais ajustables
Tinyman AMM V1 a des frais de swap fixes de 30 points de base qui sont répartis 5:1 entre les poolers et le protocole. Cela a bien servi les utilisateurs jusqu'à présent, mais il existe des cas où d'autres options de frais seraient plus appropriées. Pour les actifs indexés/stables, des frais moins élevés qui ont un impact moindre sur les prix profiteraient aux swapeurs. L'augmentation du volume due à la baisse des frais devrait également profiter aux poolers. Plutôt que de fragmenter la liquidité entre plusieurs pools pour différents niveaux de frais des mêmes paires d'actifs, le protocole V2 permet d'ajuster les frais d'un pool au fil du temps. Tous les pools commenceront avec les valeurs par défaut (identiques à V1), mais le taux de frais peut être modifié par le compte Fee Setter dans les limites autorisées.
L'intention ici est que le Fee Setter sera initialement un compte contrôlé par l'équipe principale de Tinyman et les frais ne seront ajustés que pour les paires stables/indexées. Plus tard, nous avons l'intention d'introduire une fonctionnalité permettant aux poolers de décider collectivement des frais pour leur pool. En fin de compte, nous souhaitons que tous les frais soient contrôlables par le Tinyman DAO lorsqu'il existe. Le protocole est conçu pour être flexible à cet égard afin que la responsabilité de la fixation et de la collecte des frais puisse être déléguée à des contrats intelligents ou à des comptes externes et révocable si nécessaire. Cela permet aux règles et aux mécanismes concernant les frais de changer au fil du temps sans affecter les autres aspects du protocole. De plus amples détails seront fournis avant le lancement sur les politiques entourant les changements de frais.
Un protocole plus sûr et transparent
Avec tout protocole, il existe des hypothèses de conception et des limitations techniques inhérentes. Nous les avons précédemment documentés pour la V1 et avons mis des protections dans l'interface utilisateur pour empêcher les utilisateurs d'utiliser le protocole de manière inattendue. Avec Tinyman V2, nous avons pu aller plus loin et appliquer certaines d'entre elles au niveau du protocole.
Il existe un certain nombre d'invariants mathématiques/logiques qui devraient tenir dans le protocole. Dans Tinyman V2, ceux-ci sont explicitement vérifiés après chaque opération pour garantir que même avec un comportement très inattendu, les pools ne peuvent pas perdre de valeur.
Le protocole ne peut être sûr que s'il peut être facilement lu, compris et examiné par plusieurs personnes indépendantes. Pour vous aider à cet égard, nous avons travaillé dans un certain nombre de domaines :
- Code source de contrat lisible — Nous avons développé un nouveau langage pour Algorand, Tealish , qui nous permet d'exprimer clairement notre logique et nos intentions à un niveau élevé tout en compilant en Teal lisible de bas niveau. Fergal Walsh (Tinyman CTO) parlera de Tealish et de la façon dont il a été utilisé pour la V2 à Decipher 2022 .
- Audits auditables — Les spécifications du protocole et les contrats ont été analysés et audités à plusieurs niveaux pour tenter d'identifier de nombreux types de problèmes différents. Cela comprend l'analyse et la modélisation des spécifications, du code source Tealish et du code Teal généré qui s'exécute finalement sur l'AVM. Nous avons travaillé avec les auditeurs pour rendre le processus d'audit plus transparent que d'habitude. Nous publierons un autre article de blog à ce sujet dans les semaines à venir avec des références aux rapports et à tous les documents à l'appui.
- Bug Bounty — Nous avons travaillé avec la Fondation Algorand et Immunefi pour créer un programme de primes de bugs avec des récompenses allant jusqu'à 250 000 USD pour les problèmes critiques. Ce programme est en ligne immédiatement et restera actif après le lancement du Mainnet.
- Contrats publics et spécifications open source — Nous avons publié les contrats sources, généré Teal et le bytecode final ainsi que le document de conception et les spécifications du protocole. Cela permet à quiconque de revoir les détails du protocole pour s'assurer que sa mise en œuvre correspond à ses attentes.
On nous demande régulièrement pourquoi il n'y a pas de gros bouton rouge pour que Tinyman suspende les contrats en cas de problème. Cette question a été davantage soulevée à la suite du malheureux incident de janvier. Lors de la conception de la V2, nous avons beaucoup réfléchi à cette question. Pouvons-nous implémenter une fonctionnalité de pause ? Comment cela fonctionnerait-il ? Qui peut le contrôler ? Qui est responsable de l'appeler? Que se passe-t-il après la pause ? Nous entrerons dans plus de détails à ce sujet dans un prochain article sur les problèmes de sécurité, mais nous sommes finalement arrivés à la même conclusion que lors de la conception de la V1 ; il n'y a pas de mécanisme de pause sûr et utile qui ne compromettrait pas les valeurs fondamentales de Tinyman et DeFi en général. Un mécanisme de pause sans contrats évolutifs n'est pas très utile et les contrats évolutifs sont l'autre côté d'une ligne que nous ne sommes pas prêts à franchir. Des contrats évolutifs permettraient à l'équipe Tinyman (ou à un attaquant) de modifier les règles du protocole et potentiellement de prendre la garde de la liquidité. L'objectif principal de DeFi est d'éviter de telles possibilités.
Vos fonds, votre décision
En tant qu'équipe, nous sommes enthousiasmés par le nouveau protocole et avons été occupés à créer une nouvelle interface utilisateur améliorée autour de lui. Nous pensons que les utilisateurs auront une bien meilleure expérience globale sur le nouveau protocole, mais en fin de compte, c'est votre décision en tant qu'utilisateur du protocole. Lorsque vous avez placé vos fonds dans V1, vous avez convenu qu'ils seraient liés par les règles et la logique des contrats V1. De par leur conception, nous ne pouvons pas modifier ces règles pour transférer votre liquidité vers la V2. Cela doit être votre décision. Nous encourageons tous les poolers sur V1 à lire les détails du protocole et du rapport d'audit indépendant et à décider par eux-mêmes s'ils souhaitent migrer leur liquidité vers V2. Le protocole V1 continuera à vivre sur Algorand Mainnet pour l'éternité et nous continuerons à prendre en charge les pools existants dans l'interface utilisateur Web dans un avenir prévisible.
Prochaines étapes
Nous espérons que vous êtes aussi enthousiaste que nous à propos de la V2. Ce n'est pourtant que le début ! Nous avons également de nombreuses améliorations de l'interface utilisateur à lancer avec le protocole V2. Nous les passerons en revue dans d'autres articles de blog au cours des prochaines semaines. Après le lancement, il y aura des améliorations et des fonctionnalités supplémentaires basées sur la base fournie par le protocole V2.
Nous aurons également des publications supplémentaires sur le plan de migration avant le lancement.
En attendant, nous vous suggérons de vous familiariser avec les détails du protocole et de poser des questions dans nos espaces communautaires.
Les références
Documentation et spécifications du protocole V2
Référentiel des contrats V2
Rapport d'audit des contrats V2
Dépôt Tealish
Programme Immunefi Bug Bounty (Lien à ajouter)