Définition
CFMM : définition
Un CFMM (Constant Function Market Maker) est un type de teneur de marché automatisé dont les prix découlent d'une formule que les réserves du pool doivent respecter à chaque échange, comme le produit constant x × y = k.
Thème : DeFi (finance décentralisée)
Le principe d'un CFMM est simple : un pool contient deux actifs ou plus, et une fonction de ses réserves, appelée invariant, doit garder la même valeur avant et après chaque swap, hors frais. Si un trader retire une partie de l'actif A, il doit ajouter suffisamment d'actif B pour que l'invariant soit respecté. Le prix n'est donc pas fixé par un carnet d'ordres : il résulte mécaniquement de l'état des réserves. Plus un échange est gros par rapport à la taille du pool, plus il déplace le prix, ce qui crée du slippage.
Il existe plusieurs familles. Le produit constant (x × y = k), popularisé par Uniswap, offre de la liquidité à tous les prix mais avec un glissement important sur les gros volumes. La somme constante (x + y = k) donne un prix fixe, mais le pool peut être entièrement vidé de l'un des actifs. Les courbes stableswap, introduites par Curve, combinent les deux approches pour des actifs censés valoir à peu près la même chose, comme deux stablecoins. Balancer a généralisé le modèle avec des moyennes géométriques pondérées sur plusieurs actifs.
Les frais prélevés sur chaque échange restent dans le pool et rémunèrent les fournisseurs de liquidité. Comme l'invariant ignore le prix pratiqué sur les autres marchés, ce sont les arbitragistes qui réalignent le prix du pool chaque fois que le cours extérieur bouge. Ce mécanisme rend les CFMM autonomes et toujours disponibles, mais il transfère une partie de la valeur des fournisseurs de liquidité vers ces arbitragistes.
Un exemple concret
Imaginons un pool à produit constant contenant 10 ETH et 20 000 USDC, soit k = 200 000. Bob veut acheter 1 ETH. Après l'échange, il ne doit rester que 9 ETH ; pour conserver k, le pool doit contenir environ 22 222 USDC. Bob doit donc déposer environ 2 222 USDC, hors frais, alors que le prix affiché avant l'échange était de 2 000 USDC par ETH. La différence illustre l'impact de prix propre à un CFMM.
Les risques à connaître
Pour les fournisseurs de liquidité, le principal piège est la perte impermanente : les arbitrages successifs peuvent rendre un dépôt moins rentable qu'une simple détention des deux actifs. Pour les traders, un pool peu profond entraîne un fort slippage, et les transactions visibles dans la mempool peuvent subir des attaques sandwich. Une formule mal choisie pour un actif donné peut aussi rendre le pool inefficace.
Questions fréquentes sur CFMM
Quelle est la différence entre un CFMM et un AMM ?
AMM désigne tout teneur de marché automatisé. Un CFMM est un AMM particulier dont les prix découlent d'un invariant mathématique sur les réserves. La plupart des AMM de la DeFi sont des CFMM, mais certains s'appuient par exemple sur des prix d'oracle.
Pourquoi le prix change-t-il pendant mon swap sur un CFMM ?
Chaque unité achetée modifie les réserves du pool, et donc le prix défini par la formule. Plus votre ordre est grand par rapport à la liquidité disponible, plus le prix moyen obtenu s'éloigne du prix affiché.