Maison  >  Article  >  De Uniswap V4 au protocole natif Artela, le parcours avancé de la révolution DeFi Hooks

De Uniswap V4 au protocole natif Artela, le parcours avancé de la révolution DeFi Hooks

WBOY
WBOYavant
2024-04-30 16:40:021121parcourir

Que sont les Hooks

Les Hooks, c'est-à-dire la programmation Hook, sont un modèle de programmation qui permet aux développeurs d'utiliser des Hooks, qui sont des fonctions ou des blocs de code prédéfinis, pour permettre aux développeurs d'exécuter le chemin d'exécution d'un système, d'une application ou d'une bibliothèque. Insérez-y du code personnalisé sans modifier le code d'origine. Les hooks sont souvent utilisés dans de nombreux environnements et frameworks de programmation, tels que les systèmes d'exploitation, les frameworks et les bibliothèques, le développement Web et les systèmes de plug-ins.

En utilisant Hooks, les développeurs peuvent augmenter l'évolutivité et la personnalisation du programme sans avoir à modifier le code d'origine pour chaque changement ou exigence d'expansion, ce qui permet de garder le code propre et stable. Les hooks fournissent une méthode d’implémentation élégante pour l’extension logicielle et constituent un modèle de programmation très utile dans la conception de logiciels.

En particulier, l'AOP (Aspect-Oriented Programming) est souvent comparée à la programmation Hook. L'AOP est un paradigme de programmation modulaire qui met en œuvre des préoccupations transversales, et l'objectif n'est pas de changer la fonctionnalité principale d'amélioration ou de modification sans logique métier. Je ne développerai pas AOP en détail ici. Vous pouvez simplement considérer AOP comme une abstraction de niveau supérieur de la programmation HooK.

Uniswap V4 : Hooks Revolution

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

En juin 2023, Uniswap a annoncé et rendu public une version préliminaire du livre blanc Uniswap V4. Une caractéristique importante d'Uniswap V4 est l'introduction de Hooks.

En fait, les Hooks ont été largement utilisés dans les systèmes financiers Web2, car ces systèmes nécessitent généralement un haut degré de personnalisation et d'évolutivité. Les scénarios personnalisés, tels que lors du traitement des transactions, utilisent des Hooks pour insérer une logique de vérification supplémentaire avant et après l'exécution de la transaction, telle qu'une vérification secondaire, une détection du contrôle des risques et des stratégies de lutte contre le blanchiment d'argent (AML). Les scénarios d'évolutivité incluent l'intégration d'API externes ou de microservices via des Hooks pour étendre de nouvelles fonctions dans le système financier, telles que les services d'authentification d'identité, la conversion de taux de change, les passerelles de paiement, etc. Mais en introduisant Hooks dans DeFi, Uniswap a créé un précédent.

Uniswap V4 Hooks est essentiellement un contrat externe créé et défini par les développeurs. Lorsque le pool de liquidité est créé, vous pouvez choisir de lier un contrat Hook. Ensuite, le pool de liquidité appellera le contrat Hook précédemment lié pour effectuer des opérations spécifiées à différentes étapes du cycle de vie, offrant ainsi un haut degré de personnalisation. Les développeurs peuvent répondre à des scénarios de trading plus personnalisés basés sur les Hooks d'Uniswap et créer des DApp avec des fonctions plus riches, telles que :

  • Frais dynamiques : grâce aux Hooks, les pools de liquidité peuvent ajuster dynamiquement les frais en fonction de la volatilité du marché ou d'autres paramètres d'entrée, pour mieux s'adapter au marché. conditions ;
  • Ordres limités en chaîne : les Hooks peuvent créer et exécuter des ordres limités sur la chaîne, permettant aux utilisateurs de négocier à des prix spécifiés
  • Market Maker moyen pondéré dans le temps (TWAMM) : utilisez le mécanisme Hooks pour créer un pool de liquidités ; qui prend en charge la stratégie TWAMM visant à disperser uniformément les transactions de commandes importantes sur une période de temps.

Actuellement, Uniswap V4 prend en charge quatre groupes de rappels Hook, chaque groupe contient une paire de rappels :

  • beforeInitialize/afterInitialize : initialiser le pool de liquidité
  • beforeModifyPosition/afterModifyPosition : ajouter/réduire/supprimer de la liquidité ; / afterSwap : échange ;
  • beforeDonate/afterDonate : don (une nouvelle fonctionnalité introduite par Uniswap V4, qui indique aux fournisseurs de liquidités dans la plage de transaction).
  • L'image ci-dessous est le processus du Hook beforeSwap/afterSwap montré dans le livre blanc. Vous pouvez voir qu'avant et après l'exécution du swap, il vérifiera d'abord si le Hook correspondant du pool de liquidité a l'indicateur correspondant activé. S'il est activé, le Hook sera appelé La fonction correspondante du contrat.

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅Ces Hooks peuvent être exécutés avant le début et après la fin de la transaction, réalisant ainsi des fonctions similaires aux ordres de prix en chaîne. L'utilisateur passe un ordre limité sur le contrat Hook, puis utilise un oracle personnalisé ou géré dans le rappel afterSwap pour déterminer si le prix atteint la limite. Si tel est le cas, la transaction sera exécutée. être annulé.

Uniswap V4 lie profondément la liquidité au développement de DApp lui-même via Hooks, améliorant les fonctions de DApp tout en améliorant également l'effet réseau d'Uniswap, ce qui en fait l'infrastructure sous-jacente de l'ensemble de l'écosystème DeFi.

Problèmes de sécurité des Hooks d'Uniswap V4

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅L'équipe BlockSec a exploré les risques de sécurité du mécanisme Hooks dans Uniswap V4. En plus du fait que le contrat Hook lui-même est malveillant, les contrats Hook bénins sont également extrêmement sujets à des risques. vulnérabilités. L'équipe BlockSec a analysé le référentiel Awesome Uniswap v4 Hooks (hash de validation 3a0a444922f26605ec27a41929f3ced924af6075) et a constaté que plus de 30 % des projets du référentiel étaient vulnérables. Ces vulnérabilités proviennent principalement d'interactions à risque entre Hook, PoolManager et des tiers externes, et peuvent être principalement divisées en deux catégories :

  • Problèmes de contrôle d'accès : La principale préoccupation concerne les fonctions de rappel dans Uniswap V4. Ces fonctions ne doivent être appelées que par PoolManager et ne peuvent pas être appelées par d'autres adresses (y compris EOA et contrats). Par exemple, dans le cas où les récompenses sont distribuées par clés de pool, les récompenses peuvent être réclamées de manière incorrecte si la fonction correspondante peut être appelée par n'importe quel compte. Par conséquent, il est crucial d'établir un mécanisme de contrôle d'accès solide pour les Hooks, d'autant plus qu'ils peuvent être appelés par d'autres parties que le pool lui-même.
  • Problème de validation des entrées : en raison de certaines implémentations vulnérables des Hooks. Différents types d'attaques résultant d'une validation d'entrée incorrecte ; , y compris les attaques de réentrée bien connues. La situation la plus courante est que des contrats externes non fiables sont appelés dans certaines fonctions clés du Hook. Afin d'attaquer ces Hooks vulnérables, l'attaquant peut enregistrer un pool de fonds malveillant pour ses propres faux jetons, puis appeler le Hook pour ajouter des fonds au pool. . Le pool effectue des opérations. Lors de l’interaction avec le pool, la logique du jeton malveillant détourne le flux de contrôle afin de se livrer à un comportement indésirable.

Même si le contrôle d'accès nécessaire aux fonctions externes/publiques sensibles est correctement mis en œuvre et que les paramètres d'entrée sont vérifiés, ce qui réduit les risques de sécurité liés aux deux types de Hooks ci-dessus, la vulnérabilité du contrat elle-même ne peut être complètement évitée, surtout si le Hook S'il est implémenté sous forme de contrat évolutif, vous pouvez également rencontrer des problèmes similaires à la vulnérabilité UUPSUpgradeable d'OpenZeppelin.

La raison en est que la programmation Hook augmentera la complexité des contrats intelligents, augmentant ainsi le vecteur d'attaque. Pour les contrats intelligents ordinaires, OpenZeppelin disposera d'une série de bibliothèques de bonnes pratiques pour sécuriser les contrats développés sur cette base, mais cela ajoute essentiellement des « contraintes d'utilisation sûres » aux développeurs. Par rapport aux contrats ordinaires, les contrats Hook exigent des « contraintes d'utilisation de sécurité » plus strictes. Par conséquent, pour que la programmation Hook soit largement utilisée, un cadre complet est nécessaire : un environnement d’exécution sûr, un paradigme de programmation adapté à Hook et des contraintes d’utilisation plus strictes.

Aspect Artela : Prise en charge de la programmation Hook au niveau du protocole

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

Les Hooks Uniswap V4 sont implémentés via des contrats intelligents. Ses problèmes de sécurité sont également causés par les limitations des contrats intelligents. Des solutions de programmation Hook ? Artela Aspect nous donne la réponse !

Artela est un réseau blockchain de couche 1 compatible EVM hautement évolutif et hautes performances, conçu pour permettre aux développeurs de créer des applications modulaires, riches en fonctionnalités, évolutives et personnalisables. Artela définit un nouveau module programmable comme une extension native appelée Aspect, qui introduit de manière innovante AOP dans le réseau blockchain. Aspect doit spécifier le point de connexion, c'est-à-dire l'emplacement où Aspect est exécuté dans tout le cycle de vie du traitement des transactions, similaire au rappel de Hook. Les points de connexion incluent :

  • Block Init : initialisation du bloc
  • Vérification de la transaction ; : vérification de la transaction ;
  • Pre Execute : avant l'exécution ;
  • Post Execute : après l'exécution
  • Block Finalize : le bloc est finalisé.

Aspect ne prend actuellement en charge que les Typescripts, dont le code est compilé en bytecode WebAssembly (WASM) et déployé sur le réseau Artela. Une fois l'Aspect déployé, le propriétaire du contrat intelligent peut lier le contrat à l'Aspect. Le propriétaire du contrat intelligent signifie que l'adresse de son compte externe (EOA) peut passer la vérification des retours (bool) du contrat intelligent isOwner(address).

Les transactions ultérieures qui appellent le contrat intelligent seront ensuite traitées par Aspect, comme le montre la figure ci-dessous :

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

Artela Aspects, en tant qu'implémentation de Hooks au niveau du protocole, présente de très gros avantages par rapport aux Hooks Uniswap V4 :

Tout d'abord, Artela Aspects En utilisant WASM pour exécuter son code, l'efficacité d'exécution est de plusieurs ordres de grandeur supérieure à celle d'EVM ;

Deuxièmement, Artela Aspects peut s'adapter à l'ensemble du cycle de vie des transactions, pas seulement à la logique de base de DeFi ; construire un DApp avec des fonctions plus riches ;

Enfin, c'est aussi le plus important, Artela Aspects fonctionne de manière indépendante dans un environnement sandbox sécurisé. Cette isolation garantit que l'exécution d'Aspects n'affectera pas la sécurité de l'exécution du contrat.

L'isolement d'Artela Aspects limite les appels mutuels entre le contrat Hook en tant que contrat normal et d'autres contrats externes, résolvant ainsi les problèmes du contrôle d'accès et de la vérification des entrées d'Uniswap V4 Hooks. Pour les contrats DeFi comme Uniswap, vous pouvez profiter d'une expérience Hook plus rapide, plus solide et plus sûre en la déployant sur Artela.

Résumé

En tant qu'acteur et leader important de l'industrie DeFi, Uniswap a joué un rôle essentiel dans la promotion du progrès de l'industrie et l'amélioration des fonctions. Les Hooks introduits dans Uniswap V4 cette fois dirigeront sans aucun doute le développement de DEX. par les successeurs.

Mais Uniswap V4 Hooks est limité par les limites du contrat intelligent lui-même. Quelle que soit la solidité de la conception du protocole et la perfection de la bibliothèque d'outils, il ne peut pas fondamentalement empêcher les appels mutuels entre le contrat Hook et d'autres contrats de sécurité externes. vulnérabilités.

En tant que réseau blockchain de couche 1 compatible EVM hautes performances, Artela a conçu Aspect pour qu'il s'exécute indépendamment dans WASM dès le début du protocole afin de prendre en charge nativement la programmation Hooks, ce qui améliore considérablement la sécurité. Cela fournit une solution avancée pour les protocoles DeFi qui considèrent la sécurité comme la vie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer