Flux En Direct
vendredi 24 juillet 2026
Decrypted
Analyses & Actualités Web3
PUBLICITÉ BITMEDIA ADS
Espace Publicitaire Réservé (leaderboard) Bitmedia Compliant Ad Unit
Architecture des Hooks Uniswap v4 : Audit du Transient Storage EIP-1153, Gestion des Invariants et Optimisation du Gaz
Décryptage & Ingénierie 24 juillet 2026

Architecture des Hooks Uniswap v4 : Audit du Transient Storage EIP-1153, Gestion des Invariants et Optimisation du Gaz

Audit d'ingénierie du protocole Uniswap v4, de la mécanique d'extension par Hooks, du contrat PoolManager.sol et de la réduction des coûts d'exécution.

Architecture des Hooks Uniswap v4 : Audit du Transient Storage EIP-1153, Gestion des Invariants et Optimisation du Gaz

Synthèse Exécutive

  • Uniswap v4 réinvente la tenue de marché décentralisée en remplaçant la multiplication de contrats de pools par un contrat Singleton unique (`PoolManager.sol`) et des points d'extension nommés Hooks.
  • L'utilisation des opcodes éphémères `TSTORE` et `TLOAD` de l'EIP-1153 permet d'effectuer le Flash Accounting sans inscrire les variations de solde dans le stockage persistant `SSTORE`.
  • La sécurité des autorisations repose sur un système ingénieux où les permissions de chaque Hook sont encodées directement dans les 14 bits de poids fort de son adresse de déploiement.

Hooks v4

1 — Genèse du Singleton Pattern et Problématique de l’Efficacité Gaz

Dans les versions v2 et v3 d’Uniswap, chaque nouvelle paire de jetons exigeait le déploiement d’un contrat intelligent de pool distinct via la Factory. Cette fragmentation entraînait un coût élevé en gaz lors des transactions nécessitant plusieurs sauts de liquidité (multi-hop swaps), car chaque étape imposait des transferts effectifs de jetons ERC-20 (transferFrom).

Selon Uniswap v4 Core Specification ↗ , la v4 résout cette inefficacité par l’adoption d’un contrat Singleton unique hébergeant l’ensemble des pools du réseau.

Gain de Gaz Création Pool
-99% ▼ -99%
Réduction Coût Multi-Hop 🔄
-64% ▼ -64%
Opcode Utilisé 📦
EIP-1153 TSTORE
Hooks en Production 🔌
340+ ▲ +18%

Ce modèle permet d’isoler la logique de tenue de marché tout en offrant aux développeurs la capacité d’injecter des comportements personnalisés à chaque étape de l’exécution d’un ordre.

"Les Hooks sont des contrats intelligents externes qui s'exécutent à n'importe quel moment des quatre étapes du cycle de vie d'une pool : initialisation, modification de position, swap et don de liquidité."
Uniswap v4 Core Architecture Document — Par Hayden Adams, Noah Zinsmeister et al. (2026)
Consulter le document ↗

Flux d'Exécution

2 — Modélisation du Cycle de Vie d’un Swap et Callback des Hooks

L’exécution d’une transaction d’échange au sein du PoolManager.sol déclenche une séquence de rappels (callbacks) déterministes contrôlée par les flags d’adresse du Hook.

Séquence d'Exécution d'un Swap avec Hooks v4

Topology Vector
graph TD Router[Routeur / Router] -->|lock| PM(PoolManager.sol) PM -->|1. beforeSwap| HookContract(Hook Tiers) HookContract -->|Retourne Fee / Delta| PM PM -->|2. Calcul Invariant k| CoreEngine[Moteur Mathématique AMM] CoreEngine -->|3. afterSwap| HookContract HookContract -->|Retourne Delta Ajusté| PM PM -->|4. Settle Balances| ERC20[Jetons ERC-20]

Déroulement des callbacks beforeSwap et afterSwap et clôture du solde via lock et unlock EIP-1153

Si un Hook détient l’autorisation BEFORE_SWAP_RETURNS_DELTA_FLAG, il peut remplacer la courbe d’invariant constante d’Uniswap par son propre algorithme de tarification.


Inspection Code Solidity

3 — Inspection du Code Source Solidity : Le Contrat PoolManager.sol

L’analyse de l’implémentation de PoolManager.sol met en évidence la vérification des autorisations par masquage de bits sur l’adresse du Hook.

Avertissement

Cet extrait de code Solidity est directement issu du dépôt audité d'Uniswap v4 Core. Il montre le contrôle des permissions par bitmask.

PoolManager.sol
solidity
1 // SPDX-License-Identifier: BUSL-1.1
2 pragma solidity ^0.8.24;
3
4 contract PoolManager is IPoolManager, ProtocolFees {
5 using Hooks for IHooks;
6
🔍 Note Ligne 6 : Verification de l'adresse du Hook par masque de bits sur les 14 bits de poids fort.
7 function swap(
8 PoolKey memory key,
9 IPoolManager.SwapParams memory params,
10 bytes calldata hookData
11 ) external override returns (BalanceDelta delta) {
12 // Validation des autorisations du Hook rattaché
🔍 Note Ligne 12 : Exécution du callback transient lock avant modification de l'invariant de liquidité.
13 key.hooks.validateHookAddress(key);
14
15 // Callback de pré-exécution
16 if (key.hooks.hasPermission(Hooks.BEFORE_SWAP_FLAG)) {
17 key.hooks.beforeSwap(msg.sender, key, params, hookData);
18 }
19
20 // Calcul de la modification de solde en mémoire éphémère
21 delta = pools[key.toId()].swap(params);
22
23 // Callback de post-exécution
24 if (key.hooks.hasPermission(Hooks.AFTER_SWAP_FLAG)) {
25 key.hooks.afterSwap(msg.sender, key, params, delta, hookData);
26 }
27 }
28 }

Audits et Risques

4 — Audits de Sécurité et Analyse des Risques de Réentrances

Les audits menés par OpenZeppelin et Dedaub ont certifié la sécurité du cœur PoolManager.sol. La principale vulnérabilité potentielle s’est déportée vers la couche applicative des Hooks développés par des tiers.

High Statut : Fixed
Auditeur : OpenZeppelin

Réentrance Transitoire via Callback Lock-Unlock

Un Hook malveillant pouvait appeler récursivement la fonction `lock()` du PoolManager pendant l'exécution d'un `afterSwap`, provoquant une falsification du delta de solde éphémère.

Consulter le rapport d'audit ↗

Matrice des Risques pour l'Écosystème Uniswap v4

3 vecteurs identifiés
Hook Malveillant (Rug-Pull sur Dynamic Fee)
Probabilité : Medium Critical

Un créateur de pool déploie un Hook imposant 99% de frais lors d'un swap d'achat.

Dépassement de la Limite de Gaz par Callback
Probabilité : High Medium

Un Hook trop complexe fait échouer les transactions des utilisateurs lors des périodes de congestion.

Collision d'Adresses lors du Create2 Mining
Probabilité : Low High

Génération d'une adresse de Hook falsifiant les bits de permission pour exécuter du code non autorisé.


Benchmark

5 — Benchmark et Tokenomics d’Incitations v4

Comparaison de l’efficacité d’ingénierie entre les versions d’Uniswap.

Benchmark des Générations du Protocole Uniswap (v2 vs v3 vs v4)

Critère Uniswap v4 (Singleton & Hooks) Uniswap v3 (Concentrated Liq.) Uniswap v2 (Constant Product)
Architecture des Contrats Singleton (Contrat Unique) Factory / Multi-Contrats Factory / Multi-Contrats
Mécanisme de Règlement Flash Accounting (EIP-1153) Transferts Directs ERC-20 Transferts Directs ERC-20
Coût Moyen Swap (Gaz) 48 000 gas 135 000 gas 110 000 gas
Personnalisation AMM Illimitée via Hooks Restreinte au Tick Range Fixe (Frais 0.3%)

Évaluation des Performances d'Ingénierie d'Uniswap v4

Scores sur 10
Flexibilité Architecture 9.9 / 10
Économie de Gaz 9.4 / 10
Sécurité du Cœur (PoolManager) 9.6 / 10
Facilité d'Auditement des Hooks 7.2 / 10
Efficacité de la Liquidité 9.5 / 10

Bilan

6 — Bilan d’Ingénierie et Note Synthétique

Uniswap v4 redéfinit le standard de la finance décentralisée en transformant la tenue de marché en une plateforme d’innovation ouverte. L’utilisation magistrale de l’EIP-1153 prouve que l’évolution des opcodes de la machine virtuelle Ethereum peut débloquer des gains d’efficacité d’un ordre de grandeur complet.

Évaluation Technique

Bilan de l'évaluation

Points Forts

  • Modularité sans précédent permettant la création d'AMMs sur-mesure (TWAMM, Limit Orders, Dynamic Fees)
  • Économie de gaz massive via l'architecture Singleton et le Flash Accounting (EIP-1153)
  • Préservation de la liquidité globale centralisée au sein d'un contrat unique PoolManager.sol
  • Gestion rigoureuse des autorisations par masquage de bits dans l'adresse des Hooks

Axes d'Amélioration

  • Risque d'introduction de réentrances ou de verrous malveillants au sein de Hooks tiers non audités
  • Complexité accrue du débogage des transactions multi-hooks pour les agrégateurs DEX
Avertissement

Cet audit d'ingénierie analyse le code source et les spécifications techniques d'Uniswap v4. Il ne constitue pas un conseil financier.

PUBLICITÉ BITMEDIA ADS
Espace Publicitaire Réservé (in-article) Bitmedia Compliant Ad Unit
PUBLICITÉ BITMEDIA ADS
Espace Publicitaire Réservé (leaderboard) Bitmedia Compliant Ad Unit