Tinyman AMM V2.0-Protokoll

Nov 25 2022
Gestern haben wir eine neue Version des Tinyman AMM-Protokolls angekündigt, die im Januar 2023 erscheinen soll. In diesem Blogbeitrag möchten wir einen Überblick über das neue Protokoll geben und die nächsten Schritte erläutern.
Tinyman AMM v2.0-Protokoll

Gestern haben wir eine neue Version des Tinyman AMM-Protokolls angekündigt, die im Januar 2023 erscheinen soll. In diesem Blogbeitrag möchten wir einen Überblick über das neue Protokoll geben und die nächsten Schritte erläutern. Wir stellen diese Details frühzeitig vor dem Start bereit, um den Benutzern und den Ökosystemprojekten genügend Zeit zu geben, sich mit dem neuen Protokoll vertraut zu machen und sich auf die Migration vorzubereiten.

Seit der Einführung des Tinyman AMM im Oktober 2021 wurden viele Verbesserungen am Algorand-Protokoll vorgenommen, die es Anwendungen ermöglichen, komplexere und interessantere Dinge zu tun, während gleichzeitig die Sicherheit verbessert und einige der Reibungspunkte beseitigt werden. In den letzten 6 Monaten haben wir daran gearbeitet, eine neue Implementierung des Tinyman AMM zu entwerfen, zu bauen und zu testen, die diese Verbesserungen nutzt.

Einige Highlights dieses neuen Protokolls sind:

  • Dynamische Berechnung der Ergebnisse, um die Notwendigkeit von Einlösungen zu beseitigen
  • Flexibles Hinzufügen und Entfernen von Liquidität
  • Flash-Darlehen & Flash-Swaps
  • Dynamische Gebühreneinstellungen
  • Vollständige Zusammensetzbarkeit und Interoperabilität
  • Zusätzliche Sicherheitsprüfungen
  • Verbesserte Lesbarkeit des Vertrages

Tinyman AMM V2 ist genehmigungsfrei

Tinyman AMM V2 ist unveränderlich (nicht aktualisierbar)

Tinyman AMM V2 hat keine Admin-Schlüssel, um Aktivitäten anzuhalten oder Pools zu leeren

Tinyman AMM V2 ist transparent und Open Source

Tinyman AMM V2 ist geprüft

Tinyman AMM V2 ist immer noch lächerlich schnell und billig zu bedienen

Keine Einlösung mehr

Eine der wichtigsten Verbesserungen des Algorand-Protokolls im vergangenen Jahr war die Einführung von Inner Transactions. Diese ermöglichen es Verträgen, Transaktionen programmgesteuert zu erstellen. Dadurch kann Tinyman Swap-Outputs dynamisch berechnen und eine Transaktion für den vollen Output-Betrag ausgeben. Die Verträge stellen dennoch sicher, dass der erwartete Mindestbetrag eingeht.

Dies beseitigt eine Hauptquelle für Reibung und Verwirrung und führt sofort zu einer besseren Benutzererfahrung.

Keine App-Opt-Ins mehr

Jetzt, da wir keine Einlösungen mehr unterstützen müssen, müssen wir auch nicht mehr pro Benutzerstatus in der Kette speichern. Dadurch können wir die Anforderung entfernen, sich für die Tinyman-Vertrags-App anzumelden. Dies wird einige Mindestanforderungen an das Gleichgewicht von Tinyman-Benutzern entlasten und eine weitere Reibungsquelle beseitigen.

Asset Opt-ins sind weiterhin erforderlich, aber wir können sie jetzt mit Swaps und anderen Vorgängen gruppieren, sodass Benutzer sie nicht separat unterschreiben müssen. Dies beschleunigt den Prozess und reduziert die Schritte für den Austausch.

Flexibleres Liquiditätsmanagement

Wir haben festgestellt, dass ein sehr häufiges Muster unter Benutzern, die Pooler werden möchten, darin bestand, einen Vermögenswert gegen einen anderen auszutauschen und dann einen gleichen Betrag von beiden in den Pool einzuzahlen. Wir haben eine Funktion hinzugefügt, die diesen Schritt auf Protokollebene automatisiert, sodass ein Benutzer einem Pool mit nur einem der Pool-Assets in einem einzigen Vorgang Liquidität hinzufügen kann. Es ist auch flexibel, sodass der Benutzer alles hinzufügen kann, was er von jedem Vermögenswert zur Verfügung hat, und der Pool wird die Dinge ausgleichen und die richtige Menge an Pool-Token für den kombinierten Wert ausgeben.

Flexibles Liquiditätsmanagement auf Tinyman v2

Es ist wichtig zu verstehen, dass der Benutzer bei der Verwendung dieser Technik immer noch beiden Assets ausgesetzt ist. Der implizite interne Austausch ist nur eine Benutzerfreundlichkeitsfunktion. Es ist auch wichtig zu verstehen, dass diese Funktion am besten für kleine Pooler geeignet ist. Es muss noch einige Pooler mit erheblicher Liquidität in beiden Vermögenswerten geben, um überhaupt einen ausgewogenen Pool zu schaffen.

Diese Funktion stellt auch sicher, dass die gesamte Liquidität des Benutzers im LP-Token korrekt verbucht wird, selbst wenn er Liquidität in einem falschen Verhältnis bereitstellt. Dies verbessert die Sicherheit für neue Pooler in Zeiten hoher Volatilität.

Das Protokoll unterstützt jetzt auch das Entfernen von Liquidität in nur einem Vermögenswert. Dies ist das Gegenteil des obigen Falls, bei dem ein impliziter interner Swap stattfindet, bevor das Geld als ausgewählter Vermögenswert an den Benutzer zurückgegeben wird.

Diese beiden Funktionen ermöglichen es uns, die Benutzererfahrung zu verbessern, indem wir allgemeine Abläufe vereinfachen. Sie legen jedoch auch die Grundlage für viel komplexere Interaktionen zwischen Verträgen.

Zusammensetzbarkeit und Interoperabilität

Auch hier haben wir die neuesten Verbesserungen des Algorand-Protokolls genutzt, um das V2-Protokoll so zu gestalten, dass es vollständig zusammensetzbar und interoperabel ist. Dies bedeutet, dass Tinyman V2-Transaktionen in denselben atomaren Gruppen wie andere Transaktionen platziert werden können und dass Tinyman V2 von anderen Verträgen aus aufgerufen werden kann.

Dies ermöglicht uns und anderen, Funktionen auf dem Protokoll für Atomic Multihop Swaps, Limit Orders, Metapools und vieles mehr aufzubauen. Diese Funktionen werden dazu beitragen, die Benutzererfahrung für Swapper zu verbessern, während sie gleichzeitig mehr Volumen in Richtung Tinyman-Pools treiben und mehr Gebühren für Pooler generieren.

Flash-Darlehen & Swaps

Eine Funktion, die sich diese Zusammensetzbarkeit zunutze macht, sind Flash-Darlehen. Wir haben jetzt Unterstützung dafür in das Protokoll integriert, sodass Benutzer einen Kredit ohne Sicherheiten aus einem Pool aufnehmen können, solange sie ihn innerhalb derselben Transaktionsgruppe zurückzahlen. Dies mag wie eine nutzlose Funktion erscheinen, aber dank der Interoperabilität des Protokolls und des sich entwickelnden Algorand-DeFi-Raums wird es viele Möglichkeiten geben, innerhalb eines einzigen Blocks Gewinne zu erzielen. Dies ist eine komplexe Funktion und nur für die Verwendung durch Personen mit detaillierten Kenntnissen der DeFi-Protokolle und -Strategien gedacht und wird daher nicht in die Web-Benutzeroberfläche aufgenommen. Die Einbeziehung dieser Funktion wird von unserer Kernphilosophie angetrieben, jedem unabhängig von seinem Vermögen Finanzinstrumente zur Verfügung zu stellen.

Flash-Swaps und -Darlehen sind für das Protokoll (in finanzieller Hinsicht) risikofrei und bieten eine zusätzliche Einnahmequelle für Pooler.

Anpassbare Gebühren

Tinyman AMM V1 hat eine feste Swap-Gebühr von 30 Basispunkten, die 5:1 zwischen Poolern und dem Protokoll aufgeteilt wird. Dies hat den Benutzern bisher gute Dienste geleistet, aber es gibt Fälle, in denen andere Gebührenoptionen besser geeignet wären. Bei gekoppelten/stabilen Vermögenswerten würde eine niedrigere Gebühr, die weniger Preisauswirkungen verursacht, Swaps zugute kommen. Das erhöhte Volumen aufgrund niedrigerer Gebühren sollte auch den Poolern zugute kommen. Anstatt die Liquidität über mehrere Pools für verschiedene Gebührenstufen derselben Vermögenswertpaare zu fragmentieren, ermöglicht das V2-Protokoll die Anpassung der Gebühren eines Pools im Laufe der Zeit. Alle Pools beginnen mit den Standardeinstellungen (wie V1), aber der Gebührensatz kann vom Gebührensetzer-Konto innerhalb der zulässigen Grenzen geändert werden.

Anpassbare Gebühren für Tinyman v2

Die Absicht dabei ist, dass der Fee Setter zunächst ein Konto sein wird, das vom Tinyman-Kernteam kontrolliert wird, und die Gebühren nur für stabile/gebundene Paare angepasst werden. Später beabsichtigen wir, eine Funktion einzuführen, die es den Poolern ermöglicht, gemeinsam über die Gebühren für ihren Pool zu entscheiden. Letztendlich beabsichtigen wir, dass alle Gebühren vom Tinyman DAO kontrolliert werden können, wenn es existiert. Das Protokoll ist in dieser Hinsicht flexibel gestaltet, sodass die Verantwortung für die Gebührenfestsetzung und -einziehung an intelligente Verträge oder externe Konten delegiert und bei Bedarf widerrufen werden kann. Dadurch können sich die Gebührenregeln und -mechanismen im Laufe der Zeit ändern, ohne andere Aspekte des Protokolls zu beeinträchtigen. Weitere Einzelheiten zu den Richtlinien zu Gebührenänderungen werden vor dem Start bereitgestellt.

Ein sichereres, transparentes Protokoll

Bei jedem Protokoll gibt es Designannahmen und inhärente technische Einschränkungen. Wir haben diese zuvor für V1 dokumentiert und Sicherheitsvorkehrungen in die Benutzeroberfläche eingefügt, um zu verhindern, dass Benutzer das Protokoll auf unerwartete Weise verwenden. Mit Tinyman V2 konnten wir noch einen Schritt weiter gehen und einige davon auf Protokollebene durchsetzen.

Tinyman-Comic Ch#1

Es gibt eine Reihe mathematischer/logischer Invarianten, die im Protokoll gelten sollten. In Tinyman V2 werden diese nach jeder Operation explizit überprüft, um sicherzustellen, dass auch bei sehr unerwartetem Verhalten die Pools nicht an Wert verlieren können.

Das Protokoll kann nur dann sicher sein, wenn es von mehreren unabhängigen Personen leicht gelesen, verstanden und überprüft werden kann. Um in dieser Hinsicht zu helfen, haben wir in einer Reihe von Bereichen gearbeitet:

  • Lesbarer Vertragsquellcode – Wir haben eine neue Sprache für Algorand entwickelt, Tealisch , die es uns ermöglicht, unsere Logik und Absichten auf hohem Niveau klar auszudrücken und gleichzeitig zu lesbarem Teal auf niedrigem Niveau zu kompilieren. Fergal Walsh (Tinyman CTO) wird auf der Decipher 2022 über Tealish und seine Verwendung für V2 sprechen .
  • Tinyman erfindet Tealish
  • Überprüfbare Prüfungen – Die Protokollspezifikationen und Verträge wurden auf mehreren Ebenen analysiert und geprüft, um zu versuchen, viele verschiedene Arten von Problemen zu identifizieren. Dies umfasst die Analyse und Modellierung der Spezifikationen, des Teal-Quellcodes und des generierten Teal-Codes, der letztendlich auf dem AVM ausgeführt wird. Wir haben mit den Auditoren zusammengearbeitet, um den Auditprozess transparenter als üblich zu gestalten. Dazu werden wir in den kommenden Wochen einen weiteren Blog-Beitrag mit Verweisen auf die Berichte und alle unterstützenden Materialien veröffentlichen.
  • Bug Bounty – Wir haben mit der Algorand Foundation und Immunefi zusammengearbeitet, um ein Bug-Bounty-Programm mit Belohnungen von bis zu 250.000 USD für kritische Probleme zu erstellen. Dieses Programm ist sofort live und wird nach dem Start von Mainnet aktiv bleiben.
  • Öffentliche Open-Source-Verträge und -Spezifikationen – Wir haben die Quellverträge, das generierte Teal und den endgültigen Bytecode zusammen mit dem Entwurfsdokument und der Spezifikation des Protokolls veröffentlicht. Auf diese Weise kann jeder die Protokolldetails überprüfen, um sicherzustellen, dass die Implementierung seinen Erwartungen entspricht.

Wir werden regelmäßig gefragt, warum es keinen Big Red Button für Tinyman gibt, um die Verträge zu pausieren, wenn etwas schief geht. Diese Frage wurde nach dem unglücklichen Vorfall im Januar stärker aufgeworfen. Beim Entwerfen von V2 haben wir uns viele Gedanken über diese Frage gemacht. Können wir eine Pausenfunktion implementieren? Wie würde es funktionieren? Wer kann es kontrollieren? Wer ist für den Aufruf zuständig? Was passiert nach der Pause? Wir werden in einem zukünftigen Beitrag zu Sicherheitsfragen auf weitere Details eingehen, aber wir kamen letztendlich zu dem gleichen Schluss, den wir beim Entwerfen von V1 hatten; Es gibt keinen sicheren und nützlichen Pausenmechanismus, der die Kernwerte von Tinyman und DeFi im Allgemeinen nicht gefährden würde. Ein Pausenmechanismus ohne aktualisierbare Verträge ist nicht sehr nützlich, und aktualisierbare Verträge sind die andere Seite einer Grenze, die wir nicht überschreiten wollen. Aktualisierbare Verträge würden es dem Tinyman-Team (oder einem Angreifer) ermöglichen, die Regeln des Protokolls zu ändern und möglicherweise die Liquidität zu übernehmen. Der Hauptzweck von DeFi besteht darin, solche Möglichkeiten zu vermeiden.

Ihre Mittel, Ihre Entscheidung

Wir als Team sind begeistert von dem neuen Protokoll und waren damit beschäftigt, eine neue und verbesserte Benutzeroberfläche darum herum zu entwickeln. Wir glauben, dass die Benutzer insgesamt eine viel bessere Erfahrung mit dem neuen Protokoll haben werden, aber letztendlich ist es Ihre Entscheidung als Benutzer des Protokolls. Als Sie Ihre Gelder in V1 platziert haben, haben Sie zugestimmt, dass sie an die Regeln und die Logik der V1-Verträge gebunden sind. Wir können diese Regeln nicht ändern, um Ihre Liquidität auf V2 zu portieren. Es muss Ihre Entscheidung sein. Wir ermutigen alle Pooler auf V1, die Einzelheiten des Protokolls und des unabhängigen Prüfberichts zu lesen und selbst zu entscheiden, ob sie ihre Liquidität auf V2 migrieren möchten. Das V1-Protokoll wird für die Ewigkeit im Algorand Mainnet weiterleben, und wir werden auf absehbare Zeit weiterhin bestehende Pools in der Web-Benutzeroberfläche unterstützen.

Tinyman kündigt AMM v2-Protokoll an

Nächste Schritte

Wir hoffen, Sie sind genauso gespannt wie wir auf V2. Dies ist jedoch nur der Anfang! Wir haben auch viele UI-Verbesserungen, die mit dem V2-Protokoll eingeführt werden sollen. Darauf werden wir in den kommenden Wochen in weiteren Blogbeiträgen eingehen. Nach dem Start wird es zusätzliche Verbesserungen und Funktionen geben, die auf der Grundlage des V2-Protokolls aufbauen.

Wir werden vor dem Start auch zusätzliche Posts zum Migrationsplan haben.

In der Zwischenzeit empfehlen wir Ihnen, sich mit den Einzelheiten des Protokolls vertraut zu machen und in unseren Community-Bereichen Fragen zu stellen.

Verweise

V2-Protokolldokumentation und -spezifikation

V2-Vertragsrepository

V2-Vertragsauditbericht

Tealisches Repo

Immunefi Bug Bounty Programm (Link muss hinzugefügt werden)