Heim > web3.0 > Hauptteil

Von Uniswap V4 zum nativen Artela-Protokoll, der fortgeschrittenen Reise der DeFi Hooks-Revolution

WBOY
Freigeben: 2024-04-30 16:40:02
nach vorne
1135 Leute haben es durchsucht

Was sind Hooks? Hooks, also Hook-Programmierung, sind ein Programmiermodell, das es Entwicklern ermöglicht, Hooks, bei denen es sich um vordefinierte Funktionen oder Codeblöcke handelt, zu verwenden, um Entwicklern die Ausführung des Ausführungspfads eines Systems, einer Anwendung oder einer Bibliothek zu ermöglichen. Fügen Sie benutzerdefinierten Code ein, ohne den Originalcode zu ändern. Hooks werden häufig in vielen Programmierumgebungen und Frameworks verwendet, beispielsweise in Betriebssystemen, Frameworks und Bibliotheken, Webentwicklung und Plug-in-Systemen.

Durch die Verwendung von Hooks können Entwickler die Skalierbarkeit und Anpassbarkeit des Programms erhöhen, ohne den Originalcode bei jeder Änderung oder Erweiterungsanforderung ändern zu müssen, was dazu beiträgt, den Code sauber und stabil zu halten. Hooks stellen eine elegante Implementierungsmethode für Softwareerweiterungen dar und sind ein sehr nützliches Programmiermodell im Softwaredesign.

Insbesondere wird AOP (Aspektorientierte Programmierung) oft mit der Hook-Programmierung verglichen. AOP ist ein modulares Programmierparadigma, das übergreifende Anliegen umsetzt und dessen Ziel nicht darin besteht, die Hauptfunktionalität ohne Geschäftslogik zu verbessern oder zu modifizieren. Ich werde AOP hier nicht im Detail erläutern. Sie können sich AOP einfach als eine Abstraktion der Hook-Programmierung auf höherer Ebene vorstellen.

Uniswap V4: Hooks Revolution

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅Im Juni 2023 kündigte Uniswap einen Entwurf des Uniswap V4-Whitepapers an und veröffentlichte ihn. Ein wichtiges Merkmal von Uniswap V4 ist die Einführung von Hooks.

Tatsächlich werden Hooks in Web2-Finanzsystemen häufig verwendet, da diese Systeme normalerweise ein hohes Maß an Anpassung und Skalierbarkeit erfordern. Benutzerdefinierte Szenarien, beispielsweise bei der Verarbeitung von Transaktionen, verwenden Hooks, um vor und nach der Transaktionsausführung zusätzliche Verifizierungslogik einzufügen, z. B. Sekundärverifizierung, Risikokontrollerkennung und Strategien zur Bekämpfung der Geldwäsche (AML). Zu den Skalierbarkeitsszenarien gehört die Integration mit externen APIs oder Microservices über Hooks, um neue Funktionen im Finanzsystem zu erweitern, wie z. B. Identitätsauthentifizierungsdienste, Wechselkursumrechnung, Zahlungsgateways usw. Aber durch die Einführung von Hooks in DeFi hat Uniswap einen Präzedenzfall geschaffen.

Uniswap V4 Hooks ist im Wesentlichen ein externer Vertrag, der von Entwicklern erstellt und definiert wird. Wenn der Liquiditätspool erstellt wird, können Sie einen Hook-Vertrag binden. Anschließend ruft der Liquiditätspool den zuvor gebundenen Hook-Vertrag auf, um bestimmte Vorgänge in verschiedenen Phasen des Lebenszyklus auszuführen, was ein hohes Maß an Anpassung ermöglicht. Entwickler können auf der Grundlage der Hooks von Uniswap personalisiertere Handelsszenarien abdecken und DApps mit umfangreicheren Funktionen erstellen, wie zum Beispiel:

Dynamische Gebühren: Über Hooks können Liquiditätspools Gebühren dynamisch an die Marktvolatilität oder andere Eingabeparameter anpassen, um sich besser an den Markt anzupassen Bedingungen;
  • On-Chain-Limit-Orders: Hooks können Limit-Orders in der Kette erstellen und ausführen, sodass Benutzer zu bestimmten Preisen handeln können.
  • Time-Weighted Average Market Maker (TWAMM): Verwenden Sie den Hooks-Mechanismus, um einen Liquiditätspool zu erstellen Dies unterstützt die TWAMM-Strategie, die Transaktionen großer Aufträge gleichmäßig über einen Zeitraum zu verteilen.
  • Derzeit unterstützt Uniswap V4 vier Gruppen von Hook-Callbacks, jede Gruppe enthält ein Callback-Paar:

beforeInitialize/afterInitialize: Initialisieren Sie den Liquiditätspool;
  • beforeModifyPosition/afterModifyPosition: Liquidität hinzufügen/reduzieren/entfernen;
  • before Tauschen/ afterSwap: Austausch;
  • beforeDonate/afterDonate: Spende (eine neue Funktion, die von Uniswap V4 eingeführt wurde und Liquiditätsanbietern im Transaktionsbereich Tipps gibt).
  • Das Bild unten zeigt den im Whitepaper gezeigten Prozess des BeforeSwap/AfterSwap-Hooks. Sie können sehen, dass vor und nach der Ausführung des Swaps zunächst geprüft wird, ob der entsprechende Hook des Liquiditätspools die entsprechende Flagge aktiviert hat. Wenn es aktiviert ist, wird der Hook aufgerufen. Die entsprechende Funktion des Vertrags.

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅Diese Hooks können vor Beginn und nach Ende der Transaktion ausgeführt werden, wodurch ähnliche Funktionen wie On-Chain-Preisaufträge erreicht werden. Der Benutzer gibt eine Limit-Order für den Hook-Vertrag auf und verwendet dann ein benutzerdefiniertes oder verwaltetes Oracle im AfterSwap-Callback, um zu bestimmen, ob der Preis das Limit erreicht. Wenn dies nicht der Fall ist, wird die Transaktion ausgeführt abgesagt werden.

Uniswap V4 bindet die Liquidität durch Hooks tief in die Entwicklung von DApp selbst ein, verbessert die DApp-Funktionen und verbessert gleichzeitig den Netzwerkeffekt von Uniswap, wodurch es zur zugrunde liegenden Infrastruktur des gesamten DeFi-Ökosystems wird.

Sicherheitsprobleme von Uniswap V4 Hooks

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅Das BlockSec-Team hat die Sicherheitsrisiken des Hooks-Mechanismus in Uniswap V4 untersucht. Zusätzlich zu der Tatsache, dass der Hook-Vertrag selbst bösartig ist, sind auch harmlose Hook-Verträge äußerst anfällig Schwachstellen. Das BlockSec-Team analysierte das Awesome Uniswap v4 Hooks-Repository (Commit-Hash 3a0a444922f26605ec27a41929f3ced924af6075) und stellte fest, dass mehr als 30 % der Projekte im Repository anfällig waren. Diese Schwachstellen entstehen hauptsächlich durch Risikointeraktionen zwischen Hook, PoolManager und externen Dritten und können hauptsächlich in zwei Kategorien unterteilt werden:

  • Zugriffskontrollprobleme: Das Hauptproblem sind die Rückruffunktionen in Uniswap V4. Diese Funktionen sollten nur von PoolManager aufgerufen werden und können nicht von anderen Adressen (einschließlich EOA und Verträgen) aufgerufen werden. Wenn beispielsweise Belohnungen über Poolschlüssel verteilt werden, kann es sein, dass Belohnungen fälschlicherweise beansprucht werden, wenn die entsprechende Funktion von jedem Konto aufgerufen werden kann. Daher ist es von entscheidender Bedeutung, einen starken Zugriffskontrollmechanismus für Hooks einzurichten, insbesondere da sie von anderen Parteien als dem Pool selbst aufgerufen werden können.
  • Problem bei der Eingabevalidierung: Aufgrund einiger anfälliger Hook-Implementierungen , einschließlich der bekannten Wiedereintrittsangriffe. Die häufigste Situation besteht darin, dass in einigen wichtigen Hook-Funktionen nicht vertrauenswürdige externe Verträge aufgerufen werden. Um diese anfälligen Hooks anzugreifen, kann der Angreifer einen böswilligen Geldpool für seine eigenen gefälschten Token registrieren und dann den Hook aufrufen, um Geld zum Pool hinzuzufügen .Pool führt Operationen aus. Bei der Interaktion mit dem Pool kapert die bösartige Token-Logik den Kontrollfluss, um unerwünschtes Verhalten auszulösen.

Auch wenn die erforderliche Zugriffskontrolle auf sensible externe/öffentliche Funktionen ordnungsgemäß implementiert und Eingabeparameter überprüft werden, was die Sicherheitsrisiken im Zusammenhang mit den beiden oben genannten Hook-Typen verringert, kann die Vertragsschwachstelle selbst nicht vollständig vermieden werden, insbesondere wenn der Hook Bei der Implementierung als aktualisierbarer Vertrag können auch ähnliche Probleme wie die UUPSUpgradeable-Schwachstelle von OpenZeppelin auftreten.

Der Grund dafür ist, dass die Hook-Programmierung die Komplexität intelligenter Verträge erhöht und dadurch den Angriffsvektor erhöht. Für gewöhnliche Smart Contracts wird OpenZeppelin über eine Reihe von Best-Practice-Bibliotheken verfügen, um darauf basierende Verträge sicher zu machen, aber es fügt den Entwicklern im Wesentlichen „sichere Nutzungsbeschränkungen“ hinzu. Im Vergleich zu gewöhnlichen Verträgen erfordern Hook-Verträge strengere „Sicherheitsbeschränkungen für die Nutzung“. Damit die Hook-Programmierung weit verbreitet ist, ist daher ein umfassendes Framework erforderlich: eine sichere Ausführungsumgebung, ein für Hook geeignetes Programmierparadigma und strengere Nutzungsbeschränkungen.

Artela-Aspekt: ​​Unterstützung der Hook-Programmierung auf Protokollebene

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅

Uniswap V4-Hooks werden auch durch die Einschränkungen von Smart Contracts verursacht Hook-Programmierlösungen? Artela Aspect gibt uns die Antwort!

Artela ist ein hoch skalierbares und leistungsstarkes EVM-kompatibles Layer-1-Blockchain-Netzwerk, das für Entwickler entwickelt wurde, um modulare, funktionsreiche, skalierbare und anpassbare Anwendungen zu erstellen. Artela definiert ein neues programmierbares Modul als native Erweiterung namens Aspect, die AOP auf innovative Weise in das Blockchain-Netzwerk einführt. Aspect muss den Verbindungspunkt angeben, d : Transaktionsüberprüfung;

    Pre Execute: vor der Ausführung;
  • Post Execute: nach der Ausführung;
  • Block Finalize: der Block ist abgeschlossen.
  • Aspect unterstützt derzeit nur Typescripts, deren Code in WebAssembly (WASM)-Bytecode kompiliert und im Artela-Netzwerk bereitgestellt wird. Nachdem der Aspekt bereitgestellt wurde, kann der Eigentümer des Smart Contracts den Vertrag an den Aspekt binden. Der Eigentümer des Smart Contracts bedeutet, dass seine externe Kontoadresse (EOA) die Prüfung „isOwner(address) returns (bool)“ des Smart Contracts bestehen kann.
  • Nachfolgende Transaktionen, die den Smart Contract aufrufen, werden dann von Aspect verarbeitet, wie in der folgenden Abbildung dargestellt:

Artela Aspects hat als Hooks-Implementierung auf Protokollebene sehr große Vorteile im Vergleich zu Uniswap V4 Hooks:

Erstens ist Artela Aspects durch die Verwendung von WASM zur Ausführung seines Codes um mehrere Größenordnungen höher als die von EVM. 从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅

Zweitens kann Artela Aspects den gesamten Transaktionslebenszyklus einbinden, nicht nur die Kernlogik von DeFi Erstellen Sie eine DApp mit umfangreicheren Funktionen.

Am wichtigsten ist auch, dass Artela Aspects unabhängig in einer sicheren Sandbox-Umgebung ausgeführt wird. Diese Isolation stellt sicher, dass die Ausführung von Aspects die Sicherheit der Vertragsausführung nicht beeinträchtigt.

Die Isolation von Artela Aspects begrenzt die gegenseitigen Aufrufe zwischen dem Hook-Vertrag als normalem Vertrag und anderen externen Verträgen und löst so die Schwachstellen der Uniswap V4 Hooks-Zugriffskontrolle und Eingabeüberprüfung. Bei DeFi-Verträgen wie Uniswap können Sie ein schnelleres, stärkeres und sichereres Hook-Erlebnis genießen, indem Sie es auf Artela bereitstellen.

Zusammenfassung

Als wichtiger Teilnehmer und Marktführer in der DeFi-Branche hat Uniswap eine entscheidende Rolle bei der Förderung des Branchenfortschritts und der Verbesserung der Funktionen gespielt, die diesmal zweifellos die Entwicklung von DEX vorantreiben werden durch Nachfolger.

Aber Uniswap V4 Hooks ist durch die Einschränkungen des Smart-Vertrags selbst eingeschränkt, egal wie solide das Protokolldesign ist und wie perfekt die Tool-Bibliothek ist, es kann grundsätzlich keine gegenseitigen Aufrufe zwischen dem Hook-Vertrag und anderen externen Verträgen verhindern Schwachstellen.

Als leistungsstarkes EVM-kompatibles Layer-1-Blockchain-Netzwerk hat Artela Aspect so konzipiert, dass es vom Beginn des Protokolls an unabhängig in WASM läuft, um die Hooks-Programmierung nativ zu unterstützen, was die Sicherheit erheblich verbessert. Dies bietet eine fortschrittliche Lösung für DeFi-Protokolle, die Sicherheit als lebenswichtig betrachten.

Das obige ist der detaillierte Inhalt vonVon Uniswap V4 zum nativen Artela-Protokoll, der fortgeschrittenen Reise der DeFi Hooks-Revolution. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:panewslab.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage