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.
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 :
Actuellement, Uniswap V4 prend en charge quatre groupes de rappels Hook, chaque groupe contient une paire de rappels :
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
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 :
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.
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 :
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 :
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.
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!