
Héritage et innovation de la conception du modèle AMM dans les transactions de NFT
TechFlow SélectionTechFlow Sélection

Héritage et innovation de la conception du modèle AMM dans les transactions de NFT
Comment concevoir une DEX depuis zéro ?
Article : @Buidler DAO
Auteur : @Joseph Xu
Note de l’auteur
Au cours des deux dernières années, les algorithmes de modèles AMM validés par le marché ont rarement été mis à jour. Le cœur du problème AMM est progressivement revenu de la conception d’un algorithme efficace à l’essence même des marchés financiers : la liquidité. Aujourd’hui, les actifs NFT font face aux mêmes défis, notamment une pénurie chronique de liquidité. Pourtant, aucun DEX efficace n’est apparu sur le marché NFT capable de véritablement résoudre les problèmes d’appariement des ordres et de découverte des prix en centralisant la liquidité. C’est pourquoi nous allons partir du modèle AMM DEX pour partager comment, lors de la conception du protocole Midaswap, nous avons puisé inspiration et idées parmi les solutions AMM existantes, tout en innovant pour répondre aux besoins spécifiques et aux difficultés uniques du marché NFT.
— Joseph
Depuis le troisième trimestre, le marché NFT a connu des fluctuations violentes, entraînant une chute significative des principaux NFT « blue-chip ». En mettant de côté les actions des projets ou des émetteurs, la liquidité reste le problème le plus crucial dans le marché NFT. Actuellement, sur les chaînes compatibles EVM, on peut considérer globalement les NFT comme un produit dérivé de l’ETH.

Par ailleurs, que vous ayez ou non participé aux transactions NFT, tout le monde a sans doute remarqué le succès fulgurant de blur.io. En matière de solution de liquidité, Blur semble avoir remis une excellente copie, typique d’un exchange centralisé ou agrégateur. Il détient désormais la plus grande part des liquidités acheteuses sur ce marché, et réussit à s’imposer rapidement malgré la position dominante d’OpenSea depuis de nombreuses années. On peut dire que Blur a parfaitement exploité la solution centralisée de liquidité. Toutefois, tant pour les développeurs d’applications décentralisées que pour les écosystèmes des différentes blockchains, nous pensons que la centralisation ne constitue qu’une partie du marché des transactions. Nous aspirons à construire notre propre exchange NFT sur la chaîne, un DEX NFT. C’est pourquoi nous souhaitons explorer aujourd’hui les questions suivantes :
-
Quel schéma de liquidité adopter pour construire un exchange NFT décentralisé ?
-
En concevant un AMM NFT décentralisé, quelles solutions AMM des DEX existants peuvent être utiles ?
-
Quelles différences fondamentales y a-t-il entre ERC721 et ERC20 en tant qu’actifs distincts, et comment cela influence-t-il leur conception de modèle AMM ?
Nous aborderons ces questions ensemble aujourd’hui, tout en partageant le cheminement de réflexion qui a mené à la conception de notre produit, Midaswap.
Comment concevoir un DEX depuis zéro
Commençons par une question assez abstraite : quand on conçoit un DEX, quels dilemmes doit-on affronter, quelles décisions faut-il prendre ?

Tout d’abord, vous le savez probablement, choisir une courbe AMM est la première décision clé à prendre pour tout concepteur AMM. Effectivement, x+y=k ou x·y=k, ou encore le modèle plus complexe de Balancer avec ses pools multi-devises, tous relèvent des CFMM (Constant Function Market Makers). Ici, x et y, ainsi que b dans la formule de Balancer, représentent les soldes des actifs, ou leur offre, au sein du marché ou du pool de liquidité. Ces modèles fixent les prix selon des relations proportionnelles ou autres entre les quantités disponibles. Ainsi, le choix d'une courbe dépend fortement du type d'actif cible que le protocole espère attirer. Par exemple, pour les échanges de stablecoins, Curve V2 choisit une fonction mixte : proche de la somme constante autour de l’équilibre, et se rapprochant du produit constant (comme Uniswap v3) loin de ce point. Il n’existe donc pas de courbe AMM parfaite, mais plutôt une recherche constante de celle qui convient le mieux à un marché donné.
Ensuite vient une deuxième question : comment souhaitez-vous organiser la liquidité ? Deux options s’offrent à vous : une distribution uniforme sur toute la plage de prix, ou une distribution limitée à un intervalle spécifique défini par le fournisseur de liquidité (LP). C’est précisément la différence entre Uni V2 et Uni V3. Uni V2 adopte un modèle simple, distribuant les deux jetons sur toute la plage selon xy=k. Mais cela conduit à une faible efficacité du capital aux extrémités de la courbe. Uni V3 apporte une innovation : il permet aux LP de fournir de la liquidité dans un intervalle choisi (« range order »). Sa courbe AMM n’est donc plus simplement xy=k, mais résulte de la superposition de multiples segments xy=k. Ce choix soulève une autre question : souhaitez-vous placer la liquidité horizontalement ou verticalement ? Cette distinction n’est pas encore intuitive ; nous y reviendrons plus tard.
La troisième question, la plus importante, concerne la manière dont vous incitez vos LP. Les fournisseurs de liquidité sont les acteurs clés d’un DEX. Sans LP, pas de profondeur de marché, ni d’expérience utilisateur satisfaisante. Tous les DEX doivent donc se demander comment attirer les LP. La plupart utilisent les frais de transaction comme principal levier. Certains nouveaux protocoles ajoutent des mécanismes combinatoires : mise en gage de liquidité, utilisation des tokens de liquidité dans d’autres protocoles, etc. Par exemple, Paraspace permet aux LP d’Uniswap d’emprunter pour créer des positions à effet de levier. Toutes ces innovations visent à rendre le pool de liquidité plus attractif. Comme dit précédemment, les LP sont essentiels au bon fonctionnement du système. Sans mécanisme efficace pour les attirer, la dynamique positive ne peut s’enclencher.
Vient ensuite la quatrième question : comment facturer les traders ? Sur ce point, les DEX existants sont relativement homogènes : le taux de frais est généralement fixé par le créateur du pool. Uniswap ou Joe proposent plusieurs niveaux de frais. Mentionnons que Joe V2 introduit des frais dynamiques, une évolution également adoptée par Uni V4 via des « hooks ». Ces frais dynamiques représentent une avancée notable car ils créent un système de rétroaction négative stabilisant le marché et peuvent même compenser partiellement les pertes dues à l’impermanence des LP. Bien que nous n’approfondissions pas ici, cette dimension doit être prise en compte par tout concepteur AMM.
Enfin, il faut déterminer le type de jeton représentatif de la liquidité (LP Token). Plusieurs approches coexistent : Uniswap V2 utilise ERC20, V3 opte pour ERC721, et Joe V2 choisit ERC1155. Le format du LP Token découle directement des quatre choix précédents. La manière dont la liquidité est distribuée et quantifiée dans le protocole détermine sa forme finale. Par exemple, dans Uniswap V2, la liquidité est uniformément répartie, donc deux LP ayant la même proportion d’actifs dans le pool sont considérés comme équivalents — leurs LP Tokens sont fongibles. En revanche, Uniswap V3 introduit les « range orders », redéfinissant l’utilité de la liquidité : seule la liquidité active dans la plage de prix courante contribue réellement au marché. Chaque position LP doit donc être encapsulée de façon non fongible via un token ERC721, une solution jusqu’ici jugée optimale. Quant à Uni V4, sauf changement radical par rapport à V3, le recours à ERC721 semble inévitable.
Après avoir franchi ces cinq étapes cruciales, le cadre général d’un protocole AMM est posé. Ce processus mental aide à structurer la réflexion. Une fois ces points clarifiés, on peut enfin entrer dans les détails techniques du modèle AMM.
Le triangle difficile de l’AMM NFT

Jusqu’ici, nous avons discuté de la conception d’AMM DEX pour actifs ERC20, comme Uniswap, Curve ou Balancer. Notre sujet d’aujourd’hui est l’AMM NFT, où un côté du pair est un NFT ERC721, et l’autre un jeton fongible (ERC20 ou ETH). Lorsque ces deux types d’actifs sont placés dans un même pool AMM, des contradictions fondamentales apparaissent.
Premièrement, les marchés NFT traditionnels reposent sur un modèle « bid-ask », similaire à un carnet d’ordres. Dans un tel système, si la liquidité d’un côté fait défaut, la vitesse d’exécution est très faible. Ainsi, les marchés NFT manquent d’outils de market-making efficaces et de liquidité acheteuse. Depuis longtemps, on critique l’absence de valeur intrinsèque des NFT, et leur liquidité acheteuse est extrêmement limitée sur toutes les blockchains. Ce manque sévère de rotation empêche toute bonne liquidité. Si l’on tente d’introduire un AMM NFT tel quel dans un DEX existant, sans modification, on risque fortement de voir une pénurie de liquidité du côté ETH ou ERC20. Voilà le premier obstacle.
Deuxièmement, un problème concret : les NFT sont échangés unitairement. En raison de leur nature non fongible, aucun détenteur de NFT ne souhaite vendre 10 % de son NFT. Cela n’a pas de sens du point de vue de l’actif lui-même. Cela pose un défi : nos DEX AMM traditionnels permettent une divisibilité infinie au niveau de la précision du jeton (ex. 18 décimales), rendant la courbe de prix quasi continue. Or, la liquidité NFT est discontinue, ponctuelle, ce qui crée de grands écarts. Comment relier ces points avec une courbe cohérente ? C’est une question majeure.
D’un autre côté, puisque les ID de token sont échangés entièrement, le seuil d’entrée pour les petits investisseurs est élevé. Un utilisateur peut acheter 100 USDT d’ETH s’il ne peut pas se payer un ETH complet. Mais s’il veut acheter un NFT à 1 ETH, il ne peut pas dépenser 100 USDT pour acquérir une fraction. Des protocoles ont proposé la fragmentation des NFT. C’est une solution simple, mais elle soulève un troisième aspect du triangle difficile : un NFT fragmenté conserve-t-il ses propriétés commerciales d’origine ?
Lorsqu’un ensemble NFT est émis, la rareté d’un NFT ou d’un groupe est déterminée par les métadonnées. Cette rareté influe directement sur l’espérance de prix du détenteur. Or, la fragmentation traite tous les NFT du pool de manière identique, car impossible de distinguer quelle fraction provient d’un NFT rare.
Voilà donc les trois douleurs fondamentales auxquelles tout protocole NFT décentralisé doit faire face. Sans compromis judicieux entre ces trois aspects, la conception d’un AMM NFT devient extrêmement difficile.
Les solutions existantes sur le marché NFT AMM

Examinons maintenant les solutions matures déjà présentes sur le marché NFT AMM. Par exemple, NFTX fragmente sans distinction les NFT en jetons ERC20, puis utilise des pools SushiSwap pour former des paires d’échange. Cette approche contournait brutalement le conflit de précision des jetons, mais ignorait complètement les différences subjectives de rareté perçue par les détenteurs et les traders, ainsi que leurs attentes de prix. Les NFT rares ne peuvent pas trouver une juste valorisation dans ce modèle AMM.
Un autre projet, Sudoswap, est le premier DEX natif NFT à s’inspirer de l’AMM. Pourquoi « s’inspirer » ? Car le rôle des participants diffère de l’AMM classique. Présentons brièvement Sudoswap : chaque fournisseur de liquidité devient le contrepartie des traders. Le LP conçoit sa propre courbe de bonding selon ses préférences. Chaque LP possède son propre pool de liquidité, pouvant être unilatéral ou bilatéral. Un pool bilatéral permet d’acheter ou de vendre des NFT, avec liquidité des deux côtés. Un pool unilatéral consiste à ne fournir que de l’ETH (comme un ordre d’achat) ou uniquement des NFT (comme un ordre de vente).
Dans ce cas, le rôle du LP est atténué : il devient une forme alternative de trader, bénéficiant de fonctions transactionnelles personnalisées. Mais deux problèmes surgissent. Premièrement, chaque LP ayant son propre pool, la liquidité n’est pas agrégée. Or, comme mentionné, le manque de liquidité acheteuse est le principal problème du marché NFT. Diviser davantage la liquidité va à l’encontre de l’objectif initial de l’AMM : agréger la liquidité dans un marché unique pour améliorer la profondeur et découvrir un prix reflétant l’humeur du marché. Chaque pool est isolé, sans interaction. Deuxièmement, au sein d’un seul pool, la rareté des NFT est supposée identique. Un LP qui fournit 3 NFT dans son pool ne les valorise pas individuellement. S’il détient 3 NFT de raretés différentes avec des prix espérés variés, il devra créer autant de pools.
Ces deux projets sont parmi les plus matures du marché NFT AMM. Ils résolvent partiellement les trois problèmes évoqués, mais comportent des compromis, négligeant ou sacrifiant certaines dimensions. La question est donc : existe-t-il un modèle NFT capable de mieux résoudre ces tensions, ou du moins de les équilibrer de façon acceptable ?
Les courbes de bonding (Bonding Curves)

Présentons maintenant en détail les courbes de bonding, base de notre discussion ultérieure. Une courbe de bonding est une série de fonctions mathématiques destinées à la découverte des prix. Elle relie la quantité disponible d’un actif à son prix. Sur les deux graphiques, la gauche montre une courbe linéaire, la droite une exponentielle. Les points verts représentent la position des jetons fongibles (ERC20) dans le pool, les rouges celle des NFT (ERC721). Dans le cas linéaire, au prix le plus bas (début de la courbe), les deux premiers points correspondent à la liquidité FT (ERC20), tandis que les trois points supérieurs contiennent la liquidité NFT. Quand un trader achète un NFT, le point rouge central devient vert : chaque achat augmente le prix d’une valeur constante, chaque vente le diminue. Même logique pour la courbe exponentielle, où la différence devient un ratio.
Sudoswap mérite d’être salué pour avoir introduit les courbes de bonding dans les échanges NFT, offrant ainsi une grande liberté aux market-makers. Toutefois, comme indiqué, ses pools de liquidité sont isolés, privant la courbe de bonding de sa capacité à refléter l’état global du marché. Impossible, depuis un seul pool, de comprendre l’avancement des transactions. Le prix indicatif (inDEX Price) ne représente pas les caractéristiques du marché NFT global, tombant dans une vision partielle, « à travers un trou de serrure ».
Inspirations tirées des DEX existants
Face à ces défis et aux modèles existants, nous cherchons un AMM NFT capable de surmonter ces obstacles. Pour cela, nous retournons vers les DEX ERC20 dominants pour y puiser inspiration.
Nous avons d’abord étudié Uniswap V3, qui nous a inspiré : les LP peuvent fournir de la liquidité dans un intervalle de prix défini, similaire à Sudoswap où chaque LP fixe sa propre courbe de bonding. Cela nous a amené à imaginer que les LP puissent librement placer leur liquidité selon une courbe personnalisée dans un même pool. Pour cela, un jeton LP non fongible (ERC721) serait nécessaire afin de distinguer chaque position, chacune étant unique.
Nous avons ensuite analysé Joe V2, une évolution de Uni V3. Il permet aux LP de personnaliser leur courbe, de choisir la densité de liquidité, d’opter pour une distribution ponctuelle ou continue dans leur intervalle, et introduit un « Liquidity Book » permettant des échanges microscopiques semblables à un carnet d’ordres. C’est une approche moderne de distribution de liquidité.

Ces deux DEX ERC20 nous ont fourni quatre idées clés. La leçon principale est : ne pas ignorer les différences entre les ID des NFT ; permettre aux LP d’avoir des attentes variables pour leur liquidité. En outre, il ne faut pas diviser la liquidité dans des pools privés, mais plutôt agréger la liquidité acheteuse. Seule une liquidité agrégée peut offrir aux traders une meilleure expérience, des glissements réduits et des transactions rapides. En cas de liquidité insuffisante ou fragmentée, l’expérience de vente d’un NFT devient désastreuse.
Conception de l’AMM Midaswap
À ce stade, nous pouvons repenser la conception de notre propre AMM NFT. Avant cela, abordons un sujet légèrement tangent : si vous avez lu à propos d’Uniswap V3, vous connaissez le système de « Tick ». Un Tick est une fonction exponentielle basée sur 1,0001 : chaque incrément de Tick multiplie le prix par 1,0001. Ainsi, Tick et prix sont en correspondance biunivoque. Pourquoi ce design ? Tous les DEX disposent d’un système de mesure des prix, car il faut extraire une échelle efficace parmi une infinité de valeurs possibles. La liquidité n’est fournie que sur ces ticks prédéfinis ; celle entre deux ticks est ignorée.
Une autre approche courante est le « Liquidity Bin ». Un bin, comme une boîte, représente la profondeur de liquidité à un prix donné. Imaginons : je suis LP et je fournis 1000 USDC à 1000 USDC/ETH. J’ajoute donc une hauteur de 1000 à ce bin. Un second LP ajoute 2000, portant la hauteur totale à 3000.
Pourquoi mentionner cela ? Le système de Tick convient bien à l’incitation de liquidité de Uni V3. En revanche, le bin, en tant que structure verticale, paraît plus adapté à la liquidité discontinue des NFT. On peut assimiler un NFT à une petite boîte placée sur un bin à un certain prix. Chaque fois qu’un détenteur de NFT ou un LP ajoute un NFT à ce prix, on empile une nouvelle boîte.
Pourquoi simplement copier un DEX ERC20 ne suffit-il pas ? Car les NFT présentent des différences de rareté entre leurs ID, source d’attentes de valeur intrinsèques, contrairement aux ERC20. Dans un pool ERC20, deux traders ne peuvent pas échanger à des prix différents au même moment. Pour construire un marché NFT composite, il faut combiner le modèle d’appariement des carnets d’ordres des exchanges centralisés et la méthode d’agrégation de liquidité des modèles AMM DEX.
D’où notre proposition : réintroduire deux concepts clés des marchés NFT centralisés : l’Offre maximale (Best Offer) et le Prix plancher (Floor Price). L’Offre maximale est le prix d’achat le plus haut actuel pour un NFT de la collection, tandis que le Prix plancher est le prix de vente le plus bas. Ces deux prix forment une ligne de démarcation :

-
Au-dessus du Floor Price, nous utilisons un schéma de Bonding Curve pour offrir aux traders une expérience similaire au carnet d’ordres. Par exemple, un LP choisit de fournir de la liquidité NFT entre 3 et 5 ETH. Ces NFT seront répartis selon sa courbe de bonding sur cet intervalle. À tout moment, un trader peut sélectionner le NFT souhaité. Chaque transaction ajuste le prix selon la courbe définie par le LP.
-
Le modèle AMM s’applique en dessous et au niveau du Best Offer. Les LP fournissant de la liquidité FT agissent comme ceux offrant des ordres d’achat sur Blur, donc de manière fongible. Leurs liquidités, placées dans des intervalles désirés, sont considérées comme équivalentes et agrégées au même prix. Cette agrégation améliore considérablement l’efficacité du capital et l’expérience de vente des NFT.
Cette conception de marché NFT permet de trouver un compromis équilibré face aux trois difficultés évoquées. Sans ignorer les spécificités des ID NFT, elle offre une bonne profondeur de liquidité et des glissements réduits. À nos yeux, c’est la meilleure solution possible sans trahir les besoins natifs du marché NFT. Soulignons aussi que le Best Offer et le Floor Price, indicateurs clés, permettent à notre marché de fournir un oracle sur chaîne, assurant une découverte de prix interne, sans dépendre d’un marché externe. Enfin, un marché NFT purement on-chain ouvre de vastes possibilités de composable dans DeFi : les LP Token peuvent servir de collatéral pour des prêts à effet de levier, notre oracle peut alimenter d’autres systèmes de cotation. Voilà pourquoi un AMM NFT performant, répondant aux besoins des traders et des LP, est si urgent.
Bienvenue dans la communauté officielle TechFlow
Groupe Telegram :https://t.me/TechFlowDaily
Compte Twitter officiel :https://x.com/TechFlowPost
Compte Twitter anglais :https://x.com/BlockFlow_News














