Netzwerkbearbeitungsgebühr

Wenn wir über das Singleton-Modell sprechen, müssen wir zunächst verstehen, welche Probleme der Singleton löst. Das Problem sind Netzwerkgebühren. Es ist nicht nötig, zu tief in die Opcode-Preistabelle einzusteigen, um zwischen Anrufdaten und Speicher zu unterscheiden. Wir müssen uns nur an eine Tatsache erinnern: Vertragsübergreifende Anrufe sind teuer, und das Schreiben von Daten ist teuer. Wenn wir beispielsweise die Uniswap v2-Routing-Transaktion von Benutzer->A->B->C beobachten, auf wie viele Verträge müssen wir zugreifen? Für Benutzer, die nur den Austausch von A-C abschließen möchten, lassen Sie uns gemeinsam rechnen:

  1. Router-Vertrag

  2. Wenn das Vermögen von Benutzer A reduziert und geändert wird, muss er sich im A-Token-Vertrag registrieren und den neuen Saldo schreiben.

  3. Rufen Sie PaarA->B auf

  4. Um die B-Vermögenswerte von PaarA->B an die Benutzeradresse des Benutzers zu übertragen, müssen Sie die Übertragung im B-Token-Vertrag registrieren und den neuen Saldo schreiben.

  5. Die B-Vermögenswerte des Paars B-C erhöhen sich und die Vermögenswerte des Benutzers verringern sich zum B-Token-Vertrag, um sich zu registrieren.

  6. Rufpaar B ->C

  7. Bei Paar B ->C verringern sich die C-Vermögenswerte und die B-Vermögenswerte erhöhen sich

Zusätzlich zum Router-Anruf, der die Einlösungsinformationen weitergibt, gibt es sechs weitere Anrufe: zwei Paaranrufe und vier Token-Abrechnungen. Was der Singleton lösen muss, sind diese sechs Aufrufe. Gibt es eine Chance, dass wir es reduzieren können?

Pool ist keine Adresse mehr

Als wir uns in Version 2 und Version 3 befanden, war der Pool ein intelligenter Vertrag, der durch einen Fabrikvertrag erstellt wurde. Es enthält Liquiditätsdaten und Schnittstellen, die für Transaktionen verantwortlich sind. In v4 werden mehrere Pools unter dem Poolmanager gespeichert. Wenn wir einen neuen Pool erstellen, erstellen wir keinen neuen Smart Contract, sondern fügen dem Pool-Manager einige weitere Daten hinzu.

Nach der traditionellen Sichtweise der Softwareentwicklung ist ein solches Design stark gekoppelt und es ist nicht gut, alle Codefunktionen in eine Datei/einen Smart Contract zu packen. Aber bei einem skrupellosen Benzinpreisprogramm kann dies eine Menge Benzin einsparen, was eine gute Idee ist.

Dabei gibt es jedoch ein offensichtliches Problem: Ursprünglich verwaltete ein Pool zwei Vermögenswerte, jetzt verwaltet jedoch ein Pool-Manager unzählige Vermögenswerte. Wie kann ich herausfinden, zu welchem ​​Pool die 10 A-Tokens in meinem Konto gehören? Dies hängt auch mit der nächsten Frage zusammen.

Vom Nassmarkt zum Casino

Kehren wir zum Problem der 7 Aufrufe zurück. Wir haben nur erklärt, warum der Singleton den Call of Pair lösen kann. Im V2-V3-Modus ähnelt es eher dem Kauf von Lebensmitteln auf dem Nassmarkt. Bei jedem Tausch müssen wir sowohl Geld als auch Waren bezahlen. Gehen Sie dann zum nächsten Stand, an dem verschiedene Gerichte verkauft werden. Beim ERC20 von Ethereum erfordert die Abwicklung von Geld und Waren jedoch die Zahlung einer Bearbeitungsgebühr.

Eine andere Möglichkeit, mehrere Stände in unserem wirklichen Leben zu verwalten, sind Casino-Chips. Die Art und Weise, wie einzelne Benutzer Geld verlieren oder verdienen, ist dem Kellner, der die Börse leitet, egal. Gewinne und Verluste in der Mitte sind nicht erforderlich zur Übertragung von Vermögenswerten an das Bankensystem gemeldet werden müssen. Im v2 v3-Marktmodell haben wir eth dafür bezahlt, jede Abrechnung in die Blockchain zu schreiben, was natürlich teuer war. Natürlich ist dies keine neue Lösung. Dies ist die CEX-Lösung, mit der wir vertraut sind.

Aber im Vergleich zu CEX hat eine Smart-Contract-Chip-Liquidationslösung zusätzliche Vorteile: Wenn wir etwas extrem sind, wenn wir am A-Stand 10 U-Chips gewinnen, das Casino aber auf dem Weg zur Rezeption zur Liquidation bankrott geht, dann Our Geld ist weg. nicht dein Schlüssel, nicht dein Geld. Aber Dex ist anders. Sie werden zum Flash, und viele Tauschvorgänge werden in der Struktur einer On-Chain-Transaktion durchgeführt. Sie können die Einzahlung, den Umtausch von Chips, den Ausstieg und die Ausstiegsabwicklung in Lichtgeschwindigkeit durchführen . Der Rückwärts-Single-Thread-Schutz von EVM ermöglicht Ihnen eine immer schnellere Ausführung. Natürlich ist unsere Sorge nicht notwendig. Der wichtigere Vorteil ist, dass diese Transaktion mit anderen DeFi-Transaktionen verknüpft werden kann. Ring.

Wir haben grundsätzlich erklärt, wie der Singleton das Problem von 7 Aufrufen löst. Wie Chips abgerechnet werden und warum immer noch alle über die doppelte Buchführung sprechen, muss dieser Teil im Code ausführlich besprochen werden. Lassen wir es vorerst überspringen. Sehen wir uns die Uniswap v4-Routing-Transaktion von Benutzer->A->B->C an:

  1. Router anrufen

  2. Außen sucht Poolmanager

  3. Chips einlösen

  4. Gehen Sie zum Poolmanager, um den internen Standort des Pools zu ermitteln

  5. Handel

  6. Wiederholen Sie Schritt 2/3 zweimal

  7. Chips einlösen

Wie viele Verträge haben wir dieses Mal gekündigt? 4. Router, Poolmanager, TokenA, Token C. Wir verwenden den Pool-Manager, um zwei zusätzliche Paaraufrufe und zwei Token-B-Accounting zu vermeiden.

HAKEN

Ein Pool hat die folgenden acht Punkte (v4-core/contracts/interfaces/IHooks.sol):

  • vorInitialisierung / nachInitialisierung (vor/nach der Initialisierung des Status eines Pools).

  • beforeModifyPosition / afterModifyPosition (Der Hook, der vor/nach der Änderung einer Position aufgerufen wird)

  • beforeSwap / afterSwap (Der Hook, der vor/nach einem Swap aufgerufen wird)

  • beforeDonate / afterDonate (Der Hook, der vor/nach der Spende aufgerufen wird)

An diesen 8 Punkten kann der Pool-Ersteller seinen eigenen Code einfügen. Beachten Sie, dass Benutzer die Zeit und Methode, die sie voraussichtlich verwenden werden, unter den durch den Hook angegebenen Verhaltensweisen registrieren können. Wenn er durch andere ausgelöst wird, beispielsweise durch die Transaktionen anderer Benutzer, können Benutzer den Code passiv ausführen. Beachten Sie, dass das Recht zur Hook-Definition beim Pool-Ersteller liegt, nicht beim Pool-Benutzer. Natürlich können Benutzer mit ihren Füßen abstimmen, um das auszuwählen, was ihnen gefällt.

Hier habe ich bewusst eine sehr abstrakte statt einer sehr spezifischen Beschreibung verwendet, da eine zu spezifische Beschreibung die Vorstellungskraft einschränken würde. Wir werden in Kürze konkrete Beispiele nennen.

Nachdem wir den Code weiter studiert haben, müssen wir auf die folgenden Punkte achten:

  1. Um einen Pool zu erstellen, müssen Sie einen Hook angeben.

  2. Es gibt keine Möglichkeit, den Hook später zu ändern. Pool- und Hakenbindung. Natürlich kann der Haken auch ein aufrüstbarer Vertrag sein.

  3. Wenn Sie einen Haken herstellen möchten, der Ihren Anforderungen entspricht, müssen Sie einen neuen Pool bauen

  4. Der einzige Unterschied besteht im Hook. Das gleiche Handelspaar kann mehrere Pools haben.

Der Beamte nannte mehrere Beispiele, von denen der Haken der aktuellen Preisordnung für das Lernen aussagekräftiger ist. Tatsächlich müssen Sie sich den Code nicht ansehen:

So verwalten Sie die Benutzerregistrierung:

  • Bestellung aufgeben

  • töten

  • zurückziehen

Verwaltungszeit:

  • Afterswap: Nach dem Auslösen prüfen, ob ausführbare Limit-Orders und Fill-Orders vorhanden sind.

Darum geht es bei Hooks mit begrenzter Bestellung.

Wir glauben, dass Hook nur eine Geschäftsbeschreibungsidee ist. Wenn das Geschäft, das Sie betreiben möchten, in die Registrierung des Benutzerverhaltens und das passive Auslösen des Verhaltens zu einem bestimmten Zeitpunkt unterteilt werden kann, kann Ihr Unternehmen auf Uniswap v4 migriert werden. Es kann sich um eine Limit-Order handeln, es kann sich um eine zeitgewichtete AMM handeln.

Aus dieser Perspektive können wir das Geschäft vollständig abwickeln und können uns nicht auf Transaktionsszenarien beschränken. Kredite, Optionen, Stablecoins und NFTs können alle mithilfe von Hooks rekonstruiert werden. Swap kümmert sich um das sofortige Geschäft und ModifyPosition um das intertemporale Geschäft. Was getauscht und was verändert wird, ist eigentlich nicht so wichtig.

Hier erfinde ich als Beispiel einen Hook: Die Funktion besteht darin, den Hook zu verwenden, um mein Vermögen zu behalten und nicht in Eile zu sein, die Uniswap-Plattform mit niedrigen Gebühren zu verlassen.

1. Benutzerregistrierung verwalten

  • Mint/Burn wird einseitige Liquidität aufbauen und Vermögenswerte in Form von LP hinterlegen

2. Management-Timing

  • Schaffen Sie einen enormen Front-Running-Vorteil vor dem Zeitpunkt des Austauschs oder nutzen Sie hohe dynamische Gebühren, um normale Benutzer am Umtausch zu hindern

Dann kommen keine Händler in meinen Pool. Es handelt sich um einen statischen Fondspool. Meine Vermögenswerte werden vorübergehend in Form von LP gespeichert und ich kann sie später zur Verarbeitung in anderen Transaktionen abheben. Die Anzahl der Liquidationen wurde reduziert.

Das Geschäft mit Hooks umzuschreiben, ist eine eindeutige Richtung. Um langfristige Wettbewerbsvorteile zu sichern, wird auch die Zuschussförderung der Uni deutlich stärker ausfallen.

Es gibt bereits einige Projekte, die auf den Start von Version 4 warten. Beispielsweise wird das folgende Kreditprotokoll zusammen mit Uniswap v4 eingeführt.

Was ist Uniswap v4?

Für Version 4 führen wir blind zwei Vergleiche durch:

Uni v4 und Layer 2:

• Gleicher Punkt:

  1. Vorteil: niedrige Bearbeitungsgebühren

  2. eth ökologische Verträglichkeit

• Unterschied:

  1. Die v4-Projektseite muss es mithilfe von Hooks neu schreiben

  2. Betreten Sie die Umgebung mit niedrigen Gebühren in einer Transaktion und kehren Sie dann zum ETH-Mainnet zurück, um andere Mainnet-Dienste aufzurufen

  3. Keine Cross-Chain-Brücke erforderlich

Uni v4 und Cloud Exchange:

• Gleicher Punkt:

  1. Eröffnen Sie gemeinsam einen Pool und teilen Sie eine kostengünstige Umgebung

  2. Geteilte Liquidität

• Unterschied:

  1. v4 schränkt die Geschäftsarten nicht ein, nicht unbedingt den Austausch

  2. Die gemeinsame Liquidität von v4 muss an einen guten Routing-Anbieter ausgelagert werden

  3. v4 kein Zugriff

Wir glauben, dass Uniswap v4 aus Plattformperspektive definiert werden sollte. Wenn unter dem Druck der ETH-Bearbeitungsgebühren ein kritischer Punkt erreicht wird, ist v4 möglicherweise eine bessere Lösung als Schicht 2, und mehr Finanzdienstleistungen werden aktiv oder passiv vom Hauptnetzwerk auf die Uniswap-v4-Plattform migrieren. Insbesondere Finanzdienstleistungen sind relativ unkompliziert, stellen jedoch höhere Sicherheitsanforderungen und können schnell aus dem ETH-Hauptnetzwerk zurückgezogen werden, um den Notfallbedarf des ETH-Hauptnetzwerks zu lindern. Aus dieser Perspektive hat Uniswap den Dex-Krieg bereits gewonnen. Die Konkurrenten von v4 sind Konkurrenten auf Plattformebene wie Cex Cloud Exchange und Matic.

Wie hoch sind die Kosten?

  1. Liquiditäts-Tokens: Es gibt keine Liquiditäts-Tokens mehr. Mit anderen Worten, diese Rechnungseinheit kann nicht vom Umfang von Uniswap getrennt werden, und das Projektteam muss das Problem im Uniswap v4-Ökosystem lösen.

  2. Liquiditätsfragmentierung: V3 verfügt über drei verschiedene Gebührenpools für ein Asset-Paar, während V4 völlig anders ist, was höhere Verwaltungsanforderungen an Router und Hersteller stellt. Die Lösung hierfür hängt neben den Marktspielen auch davon ab, ob die Uniswap-Community über einige standardisierte Lösungen, U (uniswap) RC, verfügen kann.